深度研究智能体Agent实战:附完整开源代码,值得收藏学习!
这篇文章介绍了一个极简深度研究智能体的实现,包含生成查询、网络搜索、反思和报告生成五个Agent。作者强调即使是常见智能体,通过"造轮子"也能有效学习Agent开发框架。文章详细展示了使用LangGraph构建智能体的代码实现,并讨论了数据源质量的重要性。项目已开源,前后端代码完整,未来可扩展文件上传和内容过滤功能。对于想学习Agent开发的程序员来说,这是一个很好的实践案例。
简介
这篇文章介绍了一个极简深度研究智能体的实现,包含生成查询、网络搜索、反思和报告生成五个Agent。作者强调即使是常见智能体,通过"造轮子"也能有效学习Agent开发框架。文章详细展示了使用LangGraph构建智能体的代码实现,并讨论了数据源质量的重要性。项目已开源,前后端代码完整,未来可扩展文件上传和内容过滤功能。对于想学习Agent开发的程序员来说,这是一个很好的实践案例。
深度研究是各大AI平台都比较比较常见的智能体,无论是国外的OpenAI、Google或是国内的Kimi、阿里等都提供了此功能。只需要通过输入想要研究探索的主题该智能体就会自动通过网络检索、调用工具等抓取与用户关心的该主题的相关内容,然后输出该主题的报告/文章。
对于DeepResearch这种比较常见的智能体是否还有造轮子的意义呢,答案是肯定的。通过造轮子这种常见、流程简单的智能体比较容易跨进学习相关框架、Agent开发的的门槛。这类智能体最关键的还是Search的数据源质量怎样,如果Search得到的数据质量不高,再怎样也得不到比较高质量的文章/报告。
本文除了介绍极简深度研究智能体的实现外在文章的最后还会开源相关代码。
智能体结构
本文所述极简深度检索智能体包含五个Agent,生成查询Agent、网络搜索Agent、反思Agent、报告生成Agent。生成查询Agent**:根据用户输入的内容提交给大模型,对该原始问题进行查询生成,生成一个或多个多样化的查询。使得在下一步的Agent从能够搜索到更多有用的信息。此Agent生成的是一个或多个查询列表:{“query_list”:{“query”:[“子查询”],“rationale”:“简要解释这些查询与研究主题的相关性”}}
此Agent的工作:
1、发起模型调用生成子查询
2、根据子查询列表发起N次[网络检索Agent]请求(并发)**
网络检索Agent:根据[生成查询Agent]所生成的查询列表调用网络工具进行检索,此处的网络检索工具可以是Tavily、博查或搜索引擎或自己开发的工具等。将网络检索到的网络资料提交到大模型,生成关于在 生成查询Agent 阶段所提供问题的研究摘要。
此Agent的工作:
1、根据[生成查询Agent]生成的查询列表发起一次或多次网络检索。
2、针对该[查询列表]生成一份或多份研究摘要。**
反思AgentAgent:收到[网络检索Agent]所生成的研究摘要是由N个[网络检索Agent]生成的,并分析其所生成的摘要与用户的[原始问题]是否存在知识缺口或还需要深入探索的领域来决定是否已经满足用户[原始问题]的回答,或还需要返回【网络检索Agent】进行进一步的网络检索。
此Agent生成:{“is_sufficient”: 是否充分,“knowledge_gap”: 描述缺失或需澄清的信息,“follow_up_queries”: 针对缺口提出的具体问题}
此Agent的工作:
1、判断[网络检索Agent]生成的摘要是否存在知识缺口。
2、是则返回[网络检索Agent],否则进入[报告生成Agent]。**
报告生成Agent:根据用户[原始问题]以及[网络检索Agent]阶段所生成的摘要,生成最终的研究报告/文章。
智能体实现
下面是代码为极简深度研究的Agent构建关键代码,Agent五个节点的创建及拓扑,以及两条边continue_to_web_research、evaluate_research,用于控制数据的流转。下面是LangGraph的实现代码。
def _build_graph(self):
# 创建 Agent Graph
builder = StateGraph(OverallState, config_schema=Configuration)
# 定义将在循环中使用的节点
builder.add_node("generate_query", generate_query)
builder.add_node("web_research", web_research,
retry=RetryPolicy(max_attempts=3))
builder.add_node("reflection", reflection)
builder.add_node("finalize_answer", finalize_answer)
# 将 generate_query 设置为入口点 即该节点为首个被调用的节点
builder.add_edge(START, "generate_query")
# 添加条件边,在并行分支中继续执行搜索查询
builder.add_conditional_edges(
"generate_query", self._continue_to_web_research, ["web_research"]
)
# 连接网络搜索节点到反思节点
builder.add_edge("web_research", "reflection")
# 评估研究结果
builder.add_conditional_edges(
"reflection", self._evaluate_research, ["web_research", "finalize_answer"]
)
# 最终确定答案
builder.add_edge("finalize_answer", END)
return builder.compile(name="research-agent")
continue_to_web_research:[生成查询]与[网络搜索]之间的边,根据查询[生成查询]生成子查询并发起N个[网络检索Agent]请求。
evaluate_research:[反思Agent]与[网络检索Agent]和[报告生成Agent]之间的边,根据研究循环次数以及子问题的摘要是否充分决定跳转到哪个节点。
网络检索:这里现在使用的是 Tavily,在Tavily返回数据后再次发起请求获取详细的页面信息,目前看数据质量也不是很好,但也比使用无头浏览器包装一层的的搜索引擎数据质量好不少。
前端
目前页面只弄了发起Agent的SSE请求,在Agent运行时各Agent节点状态变动时的页面展示以及最后结果输出的展示。
扩展
目前智能根据网络搜索的结果进行研究报告生成,生成内容的质量取决于搜索结果的质量,可扩展方向包括加入上传文件的检索、网络搜索内容过滤等。
这里也只是算是一个全栈的智能体示例,虽然这里用的是LangGraph,但个人并不喜欢LangGraph,框架封装过于复杂。目前各类Agent框架很多用哪个全凭个人喜好,或这不用框架自己实现Agent的封装。下面GitHub地址包含前后端代码。
个人并不喜欢LangGraph,框架封装过于复杂。目前各类Agent框架很多用哪个全凭个人喜好,或这不用框架自己实现Agent的封装。下面GitHub地址包含前后端代码。
https://github.com/linxin26/Open-DeepResearch
AI大模型学习和面试资源
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
更多推荐
所有评论(0)