Agent Engineering 课程阅读

在 GitHub 查看原文

本页目录

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 够了?(这就是面试常问的"你怎么权衡")


✅ 完成本课后,你应该能回答

  1. 单 Agent 在复杂任务下有什么局限?
  2. 多 Agent 的三种常见架构是什么?(主从/流水线/辩论)
  3. Agent 之间怎么通信?(本课用的是哪种方式)
  4. 规划者/执行者/审查者各负责什么?为什么要这样分?
  5. 多 Agent 的代价是什么?什么时候该用、什么时候不该用?