1. 学习主题

我要学习的内容: 如何设计一个多 Agent 系统用于研究

我为什么要学它:

我希望达到的程度:

了解基本概念

能向别人讲清楚

能用于面试回答

能写代码/做项目

能深入分析原理

2. 我当前的理解

在正式学习前,我认为它是什么:

  • 编排者-工作者模式,编排者者规划任务,工作者执行任务
  • 需要压缩上下文,工作者只看到和它相关的上下文,协调者看不到工作者的过程上下文内容

我已经知道的相关知识: 我目前不清楚的问题:

3. 第一轮学习记录

资料来源:

https://www.anthropic.com/engineering/multi-agent-research-system

书籍 / 博客 / 视频 / 论文 / 官方文档

核心概念提炼:

  1. 非多 Agent 系统的问题
    • 对于开放性研究问题,无法得出精确的步数,也无法硬编码具体的实现,通常需要边查边改计划
  2. 并行搜索
    • 搜索的本质是信息压缩,子智能体能够通过并行搜索来提升压缩效率
    • 子智能体运行在独立的窗口中,同时研究问题的不同方面,然后将关键的信息提供给主研究智能体
  3. 多智能体的代价
    • 烧 token 更快,单 agent 会使用 4 倍的 token,多 agent 会使用 15 倍的 token
    • 多个 Agent 共享同一份上下文通常不适用于多 Agent 系统,例如代码开发场景
  4. orchestrator-worker (编排者-工作者)架构
    • 用户提问后,先由一个 LeadResearcher 分析问题、制定研究策略,然后创建多个 SubAgent 并行搜索不同子问题
    • 每个子问题会独立调用搜索工具,边查边思考、边修正方向、最后再把结果返回给主 Agent
    • 主 Agent 汇总后,判断信息是否足够,如果不够,就继续排除新的 subAgent 或调整策略
    • 最后,系统把结果交给一个 CitationAgent,为报告补上引用位置。
  5. prompt 工程/tool 经验
    • 要像 agent 一样思考,在 Console 里面复现 prompt 和 tools,观察 agent 的工作方式
    • 教会 orchestrator 如何委派任务,需要提供给 subAgent 详细的指令,包括目标、输出格式、用哪些工具、边界
    • 按任务复杂程度控制 effort,Agent 自己不擅长判断改该投入多少资源,需要 prompt 显式指定:简单事实查询,1 个 Agent,3-10 次工具调用;中等任务,2-4 个子 Agent
    • 工具描述需要清晰明确
    • 让 Agent 帮忙修改 prompt 和 tool 描述。
    • 先宽搜,再窄搜,如果一开始就输入特别长、具体的查询,很有可能搜索不到东西
    • 把 thinking 过程用起来。主 Agent 用 extended thinking 做规划,子 Agent 在每轮工具调用后用 interleaved thinking 评估结果质量、找缺口、决定下一步。
    • 并行 tool calling
  6. 评估系统
    • 先从一个很小的评估集开始,例如 20 个真实查询
    • 然后再用 LLM-as-a-judge 做规模化评估,评分维度:事实正确性、引用准确性、完整性、来源质量、工具使用效率
    • 人工评测不可或缺
  7. 可靠性
    • Agent 有状态,错误会累积,工具调用错误会带偏整个研究路径,所以需要支持 durable execution、checkpoint
    • 调试困难,一般需要增加完整的 tracing,监控 agent 的决策模式和交互结构,但是不监控对话内容
    • 部署打断,发布新版本不能直接暴力切换,可能会打断运行中的任务,需要用 rainbow deployment,让新旧版本并存
    • 同步执行的瓶颈,主 Agent 需要同步等待子 Agent 执行完成。

关键术语:

  1. extended thinking
    • Claude 正式回答前,先生成一个 thinking 内容块,用来进行更强的内部推理,然后再生成最终的 text 回答。
  2. interleaved thinking
    • Claude 调用工具时,不只是先想一次再连续调工具,而是可以在每次工具调用之间思考

4. 用“小白能听懂的话”解释

假设我要把这个知识讲给一个完全不懂的人听。

一句话解释它是什么: (尽量不用专业术语)

它解决了什么问题: (这个知识存在的原因是什么)

它是怎么工作的: (按步骤写,像讲流程一样)

举一个最简单的例子: (最好是生活化类比 + 技术例子)

如果让我口头讲 1 分钟,我会怎么讲: (直接写成可说出口的话)

5. 找出“讲不清楚”的地方

我在哪些地方卡住了: 哪些概念我一解释就变模糊: 哪些地方只是“背会了”,但没有真正理解:

6. 回炉补缺

针对卡点,我重新查到的内容:

问题 1:

重新理解:

问题 2:

重新理解:

问题 3:

重新理解:

新的理解和原来有什么不同: (写出修正点)

7. 压缩成自己的知识表达

最终版通俗解释: (要求自己能不用资料直接讲清楚)

最终版技术解释: (适合面试 / 写作 / 项目说明)

核心公式 / 关键流程 / 重点机制:

最容易被问到的问题: 1. 2. 3. 4. 5.

对应回答:

Q1:

Q2:

Q3:

Q4:

Q5:

8. 输出检验

我是否能做到以下几点:

不看资料讲 3 分钟

用大白话解释清楚

解释它为什么出现

解释它和相近概念的区别

举出一个实际应用场景

回答常见追问

写出简单代码 / 例子 / 流程图

如果还不能,卡在哪:

9. 一页总结

主题:

一句话本质:

核心作用:

关键原理: 1. 2. 3.

常见误区:

面试中怎么说最合适: (写成一段完整答题模板)