多 Agent 模式:主管、流水线、群体与辩论的取舍和终止条件
多 Agent 不是默认更聪明。它适合任务可分解、子任务需要不同工具/上下文、或需要并行探索的场景;不适合简单问答、强一致事务和延迟敏感流程。常见模式:主管(supervisor 分派、汇总)、流水线(固定阶段)、群体/交接(agent handoff)、辩论/评审(多视角投票)和黑板(共享状态)。
设计多 Agent 时,先定义角色边界、共享状态、通信协议、终止条件和失败策略。没有终止条件,Agent 会互相调用到超时/烧钱;没有共享状态,信息会在交接中丢失。
模式选择:
- 主管:一个协调者拆分任务、调用专家、汇总结果
- 流水线:检索 → 分析 → 写作 → 审核,阶段固定
- 群体/交接:按能力把对话转给下一个 Agent
- 辩论:多个 Agent 独立回答,再由评审/投票收敛
- 黑板:所有 Agent 读写共享状态,适合复杂协作
# LangGraph 主管模式(伪代码)
def supervisor(state):
return llm.invoke(
"根据任务选择下一个 agent:researcher/writer/reviewer,或 FINISH",
state["messages"],
)
graph.add_node("supervisor", supervisor)
graph.add_node("researcher", research_agent)
graph.add_node("writer", writer_agent)
graph.add_node("reviewer", reviewer_agent)
graph.add_conditional_edges("supervisor", route, {
"researcher": "researcher", "writer": "writer",
"reviewer": "reviewer", "FINISH": END,
})
终止与预算:
- 最大轮数/最大 token/最大成本
- 子任务完成条件(不是“感觉够了”)
- 超时、失败重试上限、人工接管
- 共享状态版本/锁,避免并发覆盖
合上页面,先回答,再展开对照。
小程序版
微信扫码,随时查命令