news 2026/9/26 8:33:24

Task06:自动化深度研究智能体

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Task06:自动化深度研究智能体

三个Agent的分工
规划、总结、报告,各管一段。一开始觉得这样是不是太死板了,三个Agent轮流工作,效率会不会不如一个Agent从头干到尾。后来注意到一个细节:每个Agent的prompt都是单独写的,专门针对自己那段任务。规划那个prompt强调"要返回JSON",总结那个强调"要加引用标记",报告那个强调"合并重复信息"。如果用一个Agent干全部,prompt会变得又臭又长,而且改一处会牵动另一处。顺序协作虽然简单,但确实好调试。哪一步输出不对,就单独看那一步的prompt和中间结果,不用怀疑别的地方。

Service层
代码里有个设计我一开始没看懂:为什么要有 PlanningService、SummarizationService 这些类,Agent 直接跑不就行了?看完才明白,Service 是把"Python 该干的活"从 Agent 手里拿走。比如:PlanningService 里要做的事:填prompt模板、从返回文本里用正则抠出JSON、验证字段全不全SummarizationService 里要做的事:把搜索结果格式化成带编号的文本、从总结里把来源URL提取出来。这些都是确定性的活,不需要模型推理。放在 Python 代码里写死,比写在 prompt 里让模型自己搞定要可靠得多。Agent 的 prompt 因此可以保持得很短,只说"你是研究规划专家"这种角色定位,不用夹杂一堆格式要求。

几个注意点
第一,不能假设大模型只会输出JSON。哪怕prompt里明确写了"只返回JSON不要其他文本",它经常会先来一句"好的,我来帮你规划:..."。所以解析的时候得先用正则把 [...] 那段抠出来,再做 json.loads。

第二,搜索结果要去重。不同关键词经常命中同一个网页,不去重的话列表里一堆重复的链接,既浪费token又干扰模型判断。

第三,搜索失败不能让整个流程崩。SearchService 里搜不到东西就返回空列表,让上层继续往下走,别抛异常。因为研究主题冷门的时候,搜不到是常事。

关于ToolAwareSimpleAgent
刚开始看这个类名有点懵,为什么要单独搞一个 Agent 出来。想通了其实就一句话:工具调用的时候要让外面知道。深度研究整个过程可能跑几分钟,用户在前端如果只能看着一个转圈,体验很差。有了这个回调机制,每次调搜索工具都能实时推给前端显示"正在搜索:xxx"。实现上就是继承原 Agent,把执行工具的那个方法重写一下,前后加一层通知。这个套路挺通用的,以后如果想在Agent运行过程中做任何监控,都可以这么干。

避开perplexity搜索
由于本节用到perplexity api,但是尝试了很久网页完全加载不了,想到了前面学习内容中也有注册了的搜索API,就尝试再环境中加上了SerpApi搜索,但是后面运行的时候看到提示"未安装 google-search-results,无法使用 SerpApi 搜索",然后网页端尝试运行的时候,看到也无法正常执行工作流。然后就开始查出处,从backend\src\services\search.py到库文件的tools\builtin\search_tool.py,查到0.2.8版本里面写的“from serpapi import GoogleSearch”,改为“from serpapi.google_search import GoogleSearch”后,就正常运行了。

关于本节的想法
现在这套流程是完全线性的:规划完就执行,执行完就写报告。但实际研究中,看第一轮结果的时候经常会冒出新的问题,需要再补一轮搜索。文中提到了一种"反思"机制的可能,但没展开。我的想法是:可以加一个"评审Agent",在报告写完之前检查一遍——有没有哪个TODO总结得太浅、有没有互相矛盾的地方、有没有漏掉明显该查的角度。如果发现问题就回退到执行阶段补一轮。不过这样会让流程复杂不少,作为学习案例,就先跑通最简的线性流程,后续根据学习积累,自己再动手实践实践。

参考链接
1、【Hello-Agents进阶篇开源地址】https://github.com/datawhalechina/hello-agents

2、聪明办法学Python:https://datawhalechina.github.io/learn-python-the-smart-way-v2/

3、DeepAgent实战课程:https://datawhalechina.github.io/deepagents-in-action/

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 8:33:08

LangFlow+Ollama零代码搭建RAG知识库问答智能体

1. 这篇文章真正要解决的问题 RAG 这几年被讨论得很多,但大多数人对它的理解停留在“给大模型喂文档”。这个词听起来很简单,真正做起来才发现,它背后是一条完整的工程链路:文档怎么加载、切块切多大、用哪种向量模型编码、向量库…

作者头像 李华
网站建设 2026/9/26 8:30:59

从提示词到多智能体:AI代码审查产线落地全解析

做了半年AI代码审查,我最大的体会是:单靠一个精心设计的提示词,根本扛不住真实产线的压力。最近被问得最多的问题是LinkedIn那套多智能体代码审查到底怎么从提示词一步步变成产线方案的。正好这个方向我研究得很深,也把业界公开的…

作者头像 李华
网站建设 2026/9/26 8:29:55

Bustub数据库内核实战:缓冲池、B+树与并发控制实现解析

简介:CMU-15445课程Bustub数据库系统的个人实现源码包,面向数据库方向学习者与求职者,用于深入理解DBMS的存储管理、查询优化、事务处理等核心机制,也适合作为系统设计与C工程实践的参考范例。压缩包共1195个文件,大小…

作者头像 李华
网站建设 2026/9/26 8:29:53

多智能体代码审查:从提示词设计到产线落地的工程实践

1. 从提示词到产线:为什么代码审查需要多智能体代码审查这件事,做过几年开发的人都有体会:它重要,但没人愿意干。一个中等规模的团队,每天产生的 PR 少则十几个,多则几十个,每个 PR 动辄几百行 …

作者头像 李华