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

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

相关推荐
Cisyam10 小时前
Claude Code 状态栏工具完整配置指南:从零到一打造个性化开发界面
claude
Cisyam13 小时前
MCP开发实战:手把手教你用Python创建天气查询MCP工具
claude
陈佬昔没带相机13 小时前
告别Token焦虑!我是如何用最低消费玩转AI编程的
claude·cursor·trae
腾讯云云开发1 天前
云开发CloudBase AI Coding创作者激励计划获奖作品集
ai编程·claude·小程序·云开发
飞哥数智坊2 天前
终端里用 Claude Code 太难受?我把它接进 TRAE,真香!
人工智能·claude·trae
摆烂工程师5 天前
Anthropic 停止 Claude 提供给多数股权由中国资本持有的集团或其子公司使用,会给国内的AI生态带来什么影响?
人工智能·程序员·claude
程序员鱼皮5 天前
再见 Claude,封禁中国等 “敌对国家” 的公司使用!脸都不要了?
程序员·ai编程·claude
yaocheng的ai分身5 天前
【Claude Code系列】Task/Agent Tools
claude
飞哥数智坊6 天前
国外AI限制,国内工具欠佳?我用GLM-4.5+Claude Code搞了个国内平替
ai编程·claude·chatglm (智谱)
yaocheng的ai分身6 天前
Claude Code Changelog(持续更新)
claude