Skip to content

Multi-Agent 设计问答 ​

Q:为什么用多 Agent 而不是单 Agent? ​

单 Agent 在复杂场景下会遇到三个问题:

  1. 上下文过长:所有任务信息塞进一个 Prompt,超出模型处理能力
  2. 职责不清:一个 Agent 既要分析数据又要调用工具又要审查风险,容易混乱
  3. 难以调试:出问题不知道是哪个环节出的

多 Agent 通过职责分离解决这些问题,让每个 Agent 专注于自己的任务。

Q:如何设计 Agent 间的通信? ​

我通过 LangGraph 的状态对象实现 Agent 间通信。每个 Agent 读取全局状态,完成任务后将结果写回状态。

这样做的好处:

  • Agent 之间不需要直接调用
  • 状态可以持久化和回溯
  • 调试时可以直接查看状态内容

Q:如何处理 Agent 失败? ​

我设计了三层处理:

  1. 重试:工具调用失败时自动重试
  2. 降级:某个 Agent 失败后走备选路径
  3. 终止:关键步骤失败时终止流程并报告错误

通过 Evaluator 检查执行结果,判断应该重试、降级还是终止。

Q:多 Agent 的调度策略是什么? ​

我采用 Supervisor 模式,由 Supervisor Agent 根据任务类型和当前状态决定调用哪个 Agent。

调度逻辑包括:

  • 根据意图选择首个执行 Agent
  • 根据上一步结果决定下一步
  • 并行执行无依赖的任务
  • 串行执行有依赖的任务