跳转至

Item 11: Share Sessions to Share Context Between Agents

多个 Agent 协作时,用同一个 Session 让它们自动共享上下文。

问题

分别调用各个 Agent,上下文断了:

translator = Agent(client=client, name="Translator", ...)
summarizer = Agent(client=client, name="Summarizer", ...)

# 上下文不共享
result1 = await translator.run("你好")
result2 = await summarizer.run("总结一下")  # 不知道翻译说了什么

解决方案

用同一个 Session:

# 创建一个 Session 给所有 Agent 共享
session = router.create_session()

# 翻译
trans_result = await translator.run("月光下的宁静湖面", session=session)

# 总结(能看到翻译的内容)
summary_result = await summarizer.run(
    f"基于翻译结果:{trans_result.text},进行情感总结",
    session=session
)

协作模式

模式 说明
Router + Workers 调度 Agent 分析请求,分配给专业 Worker
Sequential 多个 Agent 顺序执行,上一个输出作为下一个输入
Parallel 多个 Agent 并行处理不同部分

Things to Remember

  • Session 是 Agent 间的上下文纽带,用 agent.create_session() 创建
  • 共享 Session 时,所有 Agent 的消息历史自动累积
  • 一个 Agent 的输出可以作为另一个 Agent 的输入
  • Router Agent 分析请求,决定调用哪个 Worker