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

2.8 KiB
Raw Blame History

tags, create time
tags create time
笔试
微派
Agent
AI
并发
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)来建模和执行调度
点击查看答案与解析

✅ 正确答案:B


详细解析

依赖关系图

graph LR
    A["Agent A"] --> B["Agent B"]
    A --> C["Agent C"]
    B --> C
    A --> D["Agent D"]

也可以更清晰地用执行顺序图展示:

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",则形成环 → 无法执行 → 必须在框架层面检测并报错。