搭建一个AI研究团队:我对Claude多智能体深度研究系统的思考与实践

最近工作里,我一直在研究和思考一个问题。

现在OpenAI、Gemini、Claude等大模型都推出了自己的DeepResearch功能,你给它一个主题,它能生成一份全面且有深度的分析报告。这背后到底是怎么实现的?

毕竟,我们应该都用过它们早期推出的"网页搜索"模式,那时的体验,最多能保证信息的实时性,但离"深度"和"洞察"还差得远。

很显然,DeepResearch并非只是"搜索 + 总结"那么简单。巧的是,Anthropic 这两天正好发了篇长文,详细讲解了他们内部是如何搭建这套深度研究系统的(How we built our multi-agent research system),这给我们提供了一次很好的学习机会。

今天的这篇文章我就来聊聊,Claude的这套深度研究系统到底牛在哪?以及,通过一个具体的业务场景去分析如何应用它的部分思路。

深度拆解 - Claude多智能体研究系统的核心思路

我们自己做研究时,其实很少一条道走到黑。更多时候是边看边想,根据新发现的线索,随时调整方向。Claude 这套系统的思路,我感觉就很像我们自己做研究的样子,它并不会预设一个固定的搜索路径,而是先由一个Lead Agent负责分析用户提出的研究问题,接着制定研究策略,并动态生成一系列子智能体以同时探索不同的方向。每个子智能体会以迭代的方式使用搜索工具收集信息,最后再由Lead Agent收集和整合这些信息作为结果返回。

说起来简单,但效果要足够好必然会涉及到很多的技术细节,从直观上来理解,我会提出以下三个问题:

  1. Lead Agent如何根据要研究的问题动态创建新的子智能体?
  2. 如何保障每个子智能体在搜索时能同时保证深度和广度?
  3. 如何保障搜索内容源的准确性?

先看第一个问题:Lead Agent是怎么派活的?

当它接收到用户的研究请求后,并不是直接去搜索,而是先通过大模型进行深入分析研究后将其拆解成多个逻辑独立、可以并行处理的子主题,例如,我们提出"分析AI对全球就业市场的影响"这个主题,Lead Agent可能会分解出以下子主题(每次提交研究后,都会先让你确认研究方向和规划):

  • 子主题1:"研究AI对北美地区蓝领工作的影响,重点关注制造业和物流业。"
  • 子主题2: "调研AI对欧洲金融和法律等白领工作岗位的取代和创造效应。"
  • 子主题3:"搜集亚洲新兴市场中,AI技能普及对薪资水平的实证数据。"
  • 子主题4:"总结主流经济学报告中,关于AI对未来十年就业市场结构性变化的预测。"

接下来,就涉及到子智能体的"动态"生成。针对每个子主题,Lead Agent会实时生成一个高度详细和结构化的指令提示 。这个提示就是子智能体的"灵魂"和"行动指南",它定义了子智能体的角色、目标、工具使用规则和输出格式以及明确的任务边界。文章中提到的"teaching the orchestrator how to delegate tasks with detailed descriptions''指的就是这个过程。

这里说的指令提示,其实就是给每个子智能体的任务描述,文章中提到,任务描述的细致度非常重要。他们一开始允许Lead Agent提供简单、简短的提示,例如"研究半导体短缺",但发现这种模糊的提示经常会导致子智能体对任务的理解错误,或执行了与其它子智能体完全相同的搜索。例如,一个子智能体探讨了2021年的汽车芯片危机,而另外两个子智能体重复调查当前2025年供应链的细节,并没有进行有效的分工。

接着,根据任务的复杂度,Lead Agent会同时启动多个通用的智能体模版的实例,并将刚刚生成的不同任务提示分别注入到这些通用实例中。这样,每个实例就拥有了自己独特的使命,成为了一个专注于特定领域的子智能体。

也就是说,文章中所谓的"动态创建",本质上是基于通用智能体模版的动态任务分配与配置。Lead Agent是"大脑",负责思考和拆解,子智能体是"手脚",负责执行被分配的高度具体的任务。

说完了"动态创建"子智能体的过程,我们再来看看子智能体在具体搜索时如何同时能保证深度和广度?

这其实是一个关于搜索策略的核心挑战,避免"浅尝辄止"或"钻牛角尖"。通过对文章介绍的各种策略的总结,它主要是结合了 "宏观并行化""微观迭代化" 来解决。

所谓宏观并行化,主要是解决搜索广度的问题。这其实是由Lead Agent在上一步进行问题分解时来保证。通过将一个大问题拆分成多个不同的方面(如上文例子中的不同地区、不同行业),并让多个子智能体同时从不同角度切入,系统自然就实现了搜索的广度,每个子智能体覆盖一个分支,所有子智能体合在一起就形成了一张大网,覆盖了问题的主要方面。

这里有一个关键点,有些内容并不是在公开的互联网中,而是在一些垂域产品内部,文章中举例Slack中有些独家内容通过通用的搜索接口无法获取。针对这个问题,系统绑定了一系列获取这些独家数据的MCP服务器(如果存在的话),根据需要会使用这些专用工具进行搜索获取数据。

而微观迭代,则聚焦于搜索的深度,它是在每个独立的子智能体内部实现的。子智能体并非只执行一次搜索就返回结果。它的行动逻辑被设计成一个迭代循环。从文章描述来看,一个子智能体的内部流程可能如下(没有涉及太具体的细节,只能结合大致的策略和个人经验进行猜测):

  • 初步搜索: 根据任务提示执行一个相对宽泛的初始搜索。
  • 综合与提炼: 分析第一轮的搜索结果,提炼出关键信息、核心实体或新的关键词。
  • 识别信息缺口: 判断哪些信息还不够充分,或者发现了新的、需要进一步探讨的子问题。
  • 深化搜索: 基于上一步的发现,构建一个或多个更具针对性的、更深入的搜索查询。
  • 循环与终止: 重复步骤2-4,直到任务提示中设定的深度要求被满足,或者在预设的迭代次数内没有更多有价值的新信息出现。

还是拿上述"分析AI对全球就业市场的影响"的任务举例,负责任务1(北美蓝领)的子智能体,第一轮搜"人工智能对美国制造业就业的影响",发现"协作机器人"和"预测性维护"是高频词。于是,它会启动第二轮迭代,分别针对这两个关键词进行更深入的搜索,寻找具体的案例、数据和影响分析报告,从而实现研究的深度。文章中提到的"子智能体作为智能过滤器"(subagents act as intelligent filters)"正体现了这一点。

总体来说,这套系统研究的广度靠"分而治之",还要注意分的合理,边界明确。深度则靠"刨根问底",这里要注意设定好刨的边界。

最后一个问题是如何保障搜索内容的准确性?毕竟信息源的可靠性是研究工作的生命线。

这一点其实挺难,因为互联网上的信息多且杂,很难判断真假。Claude的这套系统采用的是一种多层次、类似于学术研究中的 "同行评议" 的机制来提升准确性。具体有如下一些策略:

  1. 工具层面的源头限制

    最直接的方法是,在智能体使用的"搜索工具"层面进行优化。可以配置搜索API,使其优先返回来自权威机构、学术期刊、知名新闻媒体和官方网站的内容,同时降低来自论坛、博客或不可靠来源的权重。这相当于为智能体提供一个"高质量的图书馆",而不是让它在整个互联网上漫无目的地游荡。

  2. 子智能体层面的交叉验证

    在子智能体的任务提示中,可以明确加入验证指令 。文章中也举例进行了说明,例如,任务提示中可以包含这样的规则:"对于任何关键数据或结论,必须找到至少两个独立的、可靠的来源进行交叉验证。如果发现信息冲突,必须明确指出冲突点,并分别列出各方来源和论据。"这迫使子智能体不仅仅是信息的搬运工,更是初步的事实核查员

  3. Lead Agent层面的最终综合与审查

    这是最关键的一道防线。Lead Agent不仅仅是简单地拼接子智能体的报告。它的核心职责之一就是批判性地综合所有汇集上来的信息。当Lead Agent收到所有子智能体的报告后,它可以比较不同报告之间的结论。例如,子智能体2的报告中所"AI在欧洲金融业创造了大量新岗位",而子智能体4引用的报告预测"金融业将出现大规模失业"。Lead Agent会识别出这一明显冲突。在识别出冲突后,Lead Agent会动态生成一个新的"仲裁"子智能体,负责执行具体的仲裁任务。比如,针对以上的冲突,仲裁任务可能是:"报告A和报告B在AI对金融业就业影响的结论上存在显著差异。请专门针对此冲突进行调查,分析其原因(如统计口径不同、时间跨度差异、地区差异等),并给出一个更全面的、解释了该矛盾的结论"。

    这种机制模仿了人类专家的工作方式:"研究员们提交各自的发现,而主编或首席研究员负责发现并解决其中的矛盾,最终形成一个逻辑自洽的、可靠的最终报告。"

当然,除了以上三个问题外,文章中还涉及到整个深度研究系统的其它方面,比如如何保障系统的稳定性,因为在LLM驱动的智能体系统中,一个微小的错误就会累积成一个灾难性的影响,需要有发现机制和断点重来的手段。还有提供给子智能体的指令并非是一次性就能写好的,它是一个复杂的提示词工程,系统中设计了一套自动化的评估和优化提示词的方案。由于篇幅有限,关于这些方面的具体细节可以阅读原文(https://www.anthropic.com/engineering/built-multi-agent-research-system)。

了解了Claude这套系统的关键点后,我们再来看看如何在实际的场景中来应用。

实践出真知 - 结合实际业务场景的思考

我们先来假设一个业务场景。我可以通过一些公域平台(如小红书、B站、快手、抖音等)的开放平台接口获取它们独家的图文、视频数据,同时,针对视频内容,我已经实现了视频理解的能力(详见旧文《高效视频理解新路径:结合多模态与LLM的探索》)。现在我需要每次在CFM游戏新版本发布前去生成一份CFM游戏的版本报告,报告要求准确、深入且全面。应该如何实现?

很明显,以上的业务场景就是需要我们实现一个小型的深度研究系统,只不过它的数据源是各类公域平台中的内容。但如何保障报告内容的准确、深入和全面,我们可以借鉴Claude系统中的许多思路。

借鉴Anthropic的思想,我们首先要创建一个多智能体的分工团队。可以通过职责来进行划分:

  • Lead Agent: 这是总指挥,给它下达具体的要求,例如"生成一份关于CFM 5月版本更新的深度报告",它负责将目标拆解为初始任务(例如,"初步搜索'CFM 5月版本'相关内容"),并将任务分配给"研究员"。它还负责接收所有汇总信息,并决定是否需要开启新一轮的研究(递归),最后调用"报告撰写师"生成最终报告。

  • 平台研究员: 这是执行者,我们可以为上述的每个平台设立一个专门的研究员。它负责接收Lead Agent分配的关键词和平台,调用获取对应平台获取数据的接口,如果是视频内容则通过内容理解转换成文本内容,并将内容初步清洗后交给"分析师"。

  • 信息提取与分析师: 这是数据处理中心,也是实现递归搜索从而实现内容深度的关键。它接收来自各个平台研究员的原始内容,然后利用Gemini的理解能力,从中提取结构化的关键信息。最重要的是,它要提出新的,更具体的关键词,例如新的武器名为"M4A1-赛博纪元"、新地图名为"异域小镇HD"、玩家热议的bug"穿墙bug"等,从而进行递归搜索。

    当然搜索循环也需要设定边界条件,防止系统陷入无限循环,资源耗尽的情况。首先,我们可以在后台维护一个本次报告的知识图谱 ,每当分析师提出一个新实体(武器、地图、角色),就加入图谱。当新一轮搜索无法向图谱中添加任何新的、有意义的实体或者实体间的关联时,说明信息已经饱和,递归结束。

    除此之外,我们还可以设定其它维度的边界,比如常见的信息增益 。当Lead Agent发起新一轮搜索前,会先评估分析师新提取出的关键词。如果新一轮搜索返回的内容,经过分析师处理后,没有为最终报告提供显著的新信息(比如只是重复已知事实),那么这条递归路线就应该终止。我们可以设定一个量化指标,比如"新事实少于3个则停止"。

    同时,为了保证报告的全面性,我们可以平台交叉性搜索。比如在小红书上提取出的新的关键词,我们也可以在抖音上继续搜索。虽然成本更高,但是可以让报告更全面,在实际的工程化过程中,我们可以尽量并行化来提速。

  • 事实核查员: 它的职责相当重要,负责报告的准确性。借鉴Anthropic文章中的思路,首先,我们可以进行交叉验证。对于一个关键信息点(如某武器的上线日期),可以要求在至少2个以上不同平台的主流创作者内容中得到验证,才标记为"已核实"。

    我们还可以建立一个信源权重体系。官方账号发布的内容权重最高,应该视为"基准事实"。知名头部KOL的内容权重次之,普通用户内容权重最低。在信息出现矛盾时,以高权重信源为准。

    最后,我们还可以利用大模型来寻找矛盾。比如可以将从不同来源获取的关于同一个主题的描述,同时喂给Gemini,然后提问:"这两段描述是否存在矛盾?请指出。" AI 一般能很高效地发现细节上的不一致。

  • 报告撰写师: 顾名思义,它接收Lead Agent确认过的、经过事实核查的所有信息,按照预设的报告模版,撰写出一份逻辑清晰、内容详实的报告。

基于这套多智能架构,我们就可以开始执行完整的工作流。当然,还有不少细节点需要处理,比如如何保障工作流的稳定性,可观测能力、以及从错误中快速恢复的能力,这部分可以参考Anthropic博客原文中的诸多设计。

在信息提取与分析环节,我们也需要设计如何判断搜索结果与Query的相关性,避免引入过多的噪声,影响后续结果的准确性。关于这个问题,我们可以分层优化:

  • 强搜索指令: 这在很多平台上都支持,使用更精准的搜索词,例如使用引号"CFM 5月版本",而不是CFM 5月版本,或者组合关键词"CFM" + "新武器" + "赛博纪元"
  • 传统NLP算法初步筛选: 为了降低LLM的Token成本,同时提升工作流的效率,在拿到搜索结果列表(标题、简介、视频封面图)后,可以通过一些传统的OCR和NLP算法快速掉完全不相关的结果、当然可能存在误过滤的情况。可以通过记录和人工抽样检查这部分的比例。
  • LLM 内容核实: 对于初筛通过的内容,再通过大模型进行精确判断,例如Prompt示例:"以下文本是否在明确讨论《穿越火线手游》这款游戏中的具体内容?请回答'是'或'否',并说明理由。"这样可以有效排除掉玩家在玩 CFM 时聊到其它游戏等噪声。

最后,在人工审查之前,我们还可以设计一套基于AI的评估框架,让其对内容进行自我完善。例如,我们可以先手手动定义一份好报告需要关注的CheckList:

  • 内容覆盖面: 新武器、新地图、新模式、新角色/皮肤、福利活动、平衡性调整...
  • 内容深度: 是否包含数据分析、实战技巧、玩家正面/负面评价、BUG汇总...

在报告的初稿完成后,可以让大模型结合CheckList来审视报告的不足。例如可以设计的Prompt为: "你是一位资深的 CFM 游戏分析师。请根据以下'报告评估框架',评估这份你刚刚生成的'CFM 5月版本报告'。请逐项检查框架中的要点是否在报告中被覆盖,并评估每个要点的论述深度(1-5分,1=提及,5=深入分析)。最后,总结报告的优点以及缺失的关键信息。"

审查结束后,可以基于评估结果中的不足,提取出需要补充的搜索词, 并开启新一轮的补充研究,形成一个完美的闭环。

总结

以上,就是我将Anthropic博文中的思想应用到一个具体的业务场景中的大致思路,真正在落地的过程中,要实现一个相对不错的效果,还有无数的细节需要关注和打磨。

此外,CFM游戏的版本报告只是一个起点,基于这套方法论,我们应该可以创建一个更加泛化的小型深度研究系统,避免每次要研究一个新的主题时,都要重新搭建或改造系统。

希望读完文章的你也能有所收获,欢迎在评论区讨论。

相关推荐
yaocheng的ai分身1 天前
Claude:我们如何构建多智能体研究系统
claude
win4r3 天前
🚀颠覆传统编程!Claude Code+Zen MCP实现多AI协作开发!效率提升20倍!Claude+Gemini 2.5+O3打造专业编程开发团队自动调用
ai编程·claude·mcp
星际码仔5 天前
揭秘Claude系统提示词:这才是Artifacts的正确打开方式
ai编程·claude
饼干哥哥6 天前
「滴滴打人」APP上线:Claude 3分钟生成原型图,Cursor15分钟完成开发。产品经理要下线了?
claude·cursor
Captaincc7 天前
“不是 Cursor 不够强,是 Claude Code 太猛了” !Claude 创始人详解 Claude Code 如何改写编程方式
ai编程·claude·cursor
Captaincc7 天前
Anthropic切断Windsurf对Claude模型访问权限,联合创始人谈背后原因
ai编程·claude
Captaincc7 天前
2025 年的 AI 协助编程观察
ai编程·claude
win4r10 天前
🚀颠覆传统编程!Cursor 1.0+Claude Task Master+Gemini 2.5 Pro 0605开发效率提升10倍!从产品需求文档生成到子任
claude·cursor·gemini
福宝plus10 天前
只需1美元薅ChatGPT Team手把手的教程,教你如何解决“你不符合参与此促销活动折扣资格”或“您的银行卡被拒绝了”附上ChatGPT Team怎么取消订阅
chatgpt·openai·claude