vault backup: 2026-05-16 14:15:58
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
---
|
||||
tags: [笔试, 微派, Agent, AI, 并发]
|
||||
create time: 2026-05-16 14:55
|
||||
---
|
||||
|
||||
# 05 - 单选题 3:Agent 依赖关系
|
||||
|
||||
## 题目
|
||||
|
||||
在一个多 Agent 协作系统中,存在以下依赖关系:
|
||||
- Agent B 需要调用 Agent A 的结果
|
||||
- Agent C 同时依赖于 Agent A 和 Agent B 的结果
|
||||
- Agent D 只依赖于 Agent A 的结果
|
||||
|
||||
下列说法**错误**的是:
|
||||
|
||||
| 选项 | 内容 |
|
||||
|------|------|
|
||||
| A | Agent A 可以最先执行,无需等待其他 Agent |
|
||||
| B | Agent C 可以在 Agent B 完成后立即执行,无需等待 Agent A |
|
||||
| C | Agent D 可以和 Agent B 并行执行 |
|
||||
| D | 该依赖关系可以用有向无环图(DAG)来建模和执行调度 |
|
||||
|
||||
<details>
|
||||
<summary>点击查看答案与解析</summary>
|
||||
|
||||
### ✅ 正确答案:**B**
|
||||
|
||||
---
|
||||
|
||||
### 详细解析
|
||||
|
||||
#### 依赖关系图
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
A["Agent A"] --> B["Agent B"]
|
||||
A --> C["Agent C"]
|
||||
B --> C
|
||||
A --> D["Agent D"]
|
||||
```
|
||||
|
||||
也可以更清晰地用执行顺序图展示:
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
subgraph Stage1["Stage 1"]
|
||||
A["Agent A"]
|
||||
end
|
||||
|
||||
subgraph Stage2["Stage 2 (并行)"]
|
||||
B["Agent B"]
|
||||
D["Agent D"]
|
||||
end
|
||||
|
||||
subgraph Stage3["Stage 3"]
|
||||
C["Agent C"]
|
||||
end
|
||||
|
||||
A --> B
|
||||
A --> D
|
||||
B --> C
|
||||
A -.->|"也依赖A"| C
|
||||
```
|
||||
|
||||
#### 逐项分析
|
||||
|
||||
| 选项 | 正误 | 原因 |
|
||||
|------|------|------|
|
||||
| A | ✅ 正确 | Agent A 没有任何前置依赖,可以最早执行 |
|
||||
| B | ❌ **错误(本题答案)** | Agent C 依赖于 A 和 B。虽然 B 完成了,但**还必须等 A**。实际上 A 在 B 之前就执行了,但从依赖角度,C 必须确认所有前置条件(A 和 B 都完成)才能开始 |
|
||||
| C | ✅ 正确 | Agent D 和 Agent B 都只依赖 A,A 完成后两者可以**并行执行** |
|
||||
| D | ✅ 正确 | 依赖关系是一个 DAG(没有循环),可以用拓扑排序确定执行顺序 |
|
||||
|
||||
#### DAG 调度执行流程
|
||||
|
||||
```
|
||||
时间线:
|
||||
───────────────────────────────→ t
|
||||
|
||||
t1: [✅ Agent A 执行中...]
|
||||
|
||||
t2: [⏳ Agent B 执行中] [⏳ Agent D 执行中]
|
||||
← 并行 (A已完成) ← 并行 (A已完成)
|
||||
|
||||
t3: [✅ Agent C 执行中]
|
||||
← B和A都已完成 ✓
|
||||
```
|
||||
|
||||
#### 核心知识点
|
||||
|
||||
1. **DAG(Directed Acyclic Graph)**: 有向无环图,是任务调度的基础模型
|
||||
2. **拓扑排序**: 对 DAG 进行线性排序,保证每个节点在其所有前驱之后出现
|
||||
3. **并行优化**: 互不依赖的任务可以并行执行以缩短总执行时间
|
||||
|
||||
> [!tip] 实际应用场景
|
||||
> 这种依赖模型广泛应用于: LangChain 的 LCEL Chain、Airflow DAG、GitHub Actions workflow、Kubeflow Pipelines。
|
||||
|
||||
> [!note] 如果改成循环依赖呢?
|
||||
> 若 "Agent A 也依赖 C",则形成环 → 无法执行 → 必须在框架层面检测并报错。
|
||||
|
||||
</details>
|
||||
Reference in New Issue
Block a user