Files
leetcode-go/笔试/微派 Test1/05-单选题3-Agent依赖.md
T

103 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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>