本页目录
L08 练习
改
code.py里的代码,运行python agent-lessons/08_multi_agent/code.py观察变化。
练习 1:观察三个 Agent 的分工
仔细看输出,回答: - 规划者的 system prompt 让它"只规划不执行"——它真的没调用工具吗? - 执行者是不是只管"按步骤调工具",没去操心步骤合不合理? - 审查者是不是在挑毛病,而不是自己重新执行?
思考:这种"关注点分离"和软件工程里的"模块化/单一职责"是不是一回事?每个 Agent 就像一个职责单一的模块。
练习 2:触发"审查打回重做"
设计一个容易出错的任务,看审查者会不会打回:
run_multi_agent(client, "帮我查北京、上海、广州、深圳四个城市的天气,找出最热和最冷的,算温差。")
观察:执行者可能漏掉某个城市或忘了算温差。审查者有没有发现并打回?打回后执行者有没有改进?
思考:这就是多 Agent 相比单 Agent 的优势——审查环节能发现并纠正执行者的遗漏。单 Agent 自己做的自己查,容易"灯下黑"。
练习 3:加一个"批评者"Agent(辩论模式)
参考 README 里的"对等辩论"架构,加一个和执行者意见相反的 Agent:
DEVILS_ADVOCATE_PROMPT = """你是"魔鬼代言人",专门质疑执行者的结论。
不管执行者说什么,你都要从相反角度提出质疑和风险。
输出:质疑点 + 可能的风险。"""
def devils_advocate(client, task, result):
resp = client.chat.completions.create(...)
return resp.choices[0].message.content
在流水线里,执行者产出后先让批评者质疑,再让审查者综合判断。
思考:辩论模式适合什么任务?(提示:决策类、评估类,而不是执行类)
练习 4:对比单 Agent 和多 Agent
用同一个任务,分别用单 Agent(L03 的 ReAct)和本课的 3-Agent 跑,对比:
| 维度 | 单 Agent | 3-Agent |
|---|---|---|
| 结果质量 | ? | ? |
| 耗时 | ? | ? |
| API 调用次数 | ? | ? |
| 可控性 | ? | ? |
思考:多 Agent 质量更好但成本翻倍。什么场景值得用多 Agent?什么场景单 Agent 够了?(这就是面试常问的"你怎么权衡")
✅ 完成本课后,你应该能回答
- 单 Agent 在复杂任务下有什么局限?
- 多 Agent 的三种常见架构是什么?(主从/流水线/辩论)
- Agent 之间怎么通信?(本课用的是哪种方式)
- 规划者/执行者/审查者各负责什么?为什么要这样分?
- 多 Agent 的代价是什么?什么时候该用、什么时候不该用?