三分钟说清楚 ReAct Agent 的技术实现

ReAct Agent 技术实现主要依赖于精心设计的 Prompt 模板输出解析器执行循环三大核心机制。


1. 核心 Prompt 工程

LangChain 使用特定的 Prompt 模板引导 LLM 按Thought → Action → Observation格式输出:

# 简化的 Prompt 结构 template = """ 用以下工具回答问题: 工具: - search: 搜索引擎, 输入: "查询词" - calculator: 计算器, 输入: "算式" 现在开始! 问题: {input} Thought: {agent_scratchpad} """

关键设计:

  • agent_scratchpad:存储历史 Thought-Action-Observation 链,确保上下文连续
  • 工具描述:每个工具都有标准化描述,帮助 LLM 理解何时使用
  • Few-shot 示例:内置典型交互样例,教会 LLM 输出格式

2. 输出解析机制

LLM 输出纯文本后,通过AgentOutputParser解析结构化数据:

# LLM 输出示例文本 """ Thought: 需要计算 2+2*2 Action: calculator Action Input: "2+2*2" """

解析过程:

  1. 正则匹配:提取Thought:/Action:/Action Input:
  2. 格式验证:确保符合预定 schema,否则触发格式错误处理
  3. 工具映射:将 Action 字符串映射到具体工具实例

关键代码(简化):

class ReActParser: def parse(self, text: str): thought = re.search(r"Thought: (.*?)\n", text).group(1) action = re.search(r"Action: (.*?)\n", text).group(1) action_input = re.search(r"Action Input: (.*?)\n", text).group(1) return AgentAction(tool=action, input=action_input, log=thought)

3. AgentExecutor 循环控制

这是 ReAct 的"大脑",管理整个执行流程:

class AgentExecutor: def run(self, query): # 初始化 scratchpad = "" # 交互历史 steps = 0 while steps < max_iterations: # 1. 调用 LLM 生成下一步 llm_output = self.llm( prompt.format(input=query, agent_scratchpad=scratchpad) ) # 2. 解析输出 action = self.output_parser(llm_output) # 3. 判断终止条件 if isinstance(action, AgentFinish): return action.return_values["output"] # 4. 执行工具 observation = self.tools[action.tool].run(action.input) # 5. 更新 scratchpad scratchpad += f"{action.log}\nObservation: {observation}\nThought: " steps += 1 return "达到最大迭代次数"

关键设计模式:

  • while 循环:实现 Thought-Action-Observation 循环
  • scratchpad 累积:将每轮结果追加,形成完整上下文
  • 终止判断:当解析出AgentFinish时返回最终结果

4. 工具调用架构

工具通过标准化接口集成:

class BaseTool: name: str # 工具唯一标识 description: str # 给 LLM 看的说明 args_schema: BaseModel # 参数结构 def _run(self, input: str) -> str: # 具体实现 pass

动态注册机制:

# 工具自动发现 tools = [ Tool(name="search", func=search_api, description="搜索引擎..."), Tool(name="calculator", func=calculate, description="计算器...") ] # 传递给 Agent agent = create_react_agent(llm, tools, prompt)

5. 错误处理与鲁棒性

常见错误类型:

  • 格式错误:LLM 未按指定格式输出 → 捕获异常并重新提示
  • 工具不存在:LLM 幻想了不存在的工具 → 返回错误 Observation
  • 参数错误:工具调用参数格式不对 → 捕获异常并反馈

自我修复机制:

except OutputParserException: # 将错误信息加入 scratchpad,让 LLM 自我纠正 scratchpad += f"解析错误,请严格遵循格式:Action: tool_name\nAction Input: input\n" continue # 重新循环

6. 记忆管理

ReAct Agent 的记忆体现在两个层面:

短期记忆(核心):

  • agent_scratchpad:当前任务的交互历史
  • 每轮循环自动清空,任务结束即丢弃

长期记忆(可选):

  • 集成ConversationBufferMemory实现多轮对话
  • 在 Prompt 中注入历史对话摘要

技术实现总结

组件实现方式关键技术
推理生成Prompt Engineering + LLM 调用Few-shot、Scratchpad
行动解析正则/结构化输出解析Pydantic、OutputParser
工具执行标准化接口 + 动态调用BaseTool、回调机制
循环控制While 循环 + 状态机AgentExecutor、终止判断
错误恢复异常捕获 + 上下文反馈Try-Except、自我修复

这种设计将确定性代码逻辑(循环、解析)与非确定性 LLM 生成完美结合,既保证了流程可控,又充分发挥了 LLM 的灵活性。

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!​

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示

​因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

四、AI大模型商业化落地方案

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1168173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新一代AI直播场控系统,实现全平台高效管理,带完整的搭建部署教程

温馨提示&#xff1a;文末有资源获取方式面对多平台并存的直播生态&#xff0c;主播们常常疲于在不同软件间切换&#xff0c;难以形成统一的互动风格与运营策略。我们专为应对这一挑战&#xff0c;设计出全新一代AI自动场控机器人源码系统。本系统的核心理念在于“聚合”与“统…

什么是AI 智能体(Agent)

在当今的 AI 浪潮中&#xff0c;我们经常听到“Agent&#xff08;智能体&#xff09;”这个词。但实际上&#xff0c;一个能够自主解决问题的 AI Agent 到底是如何工作的&#xff1f;它不仅仅是一个聊天机器人&#xff0c;更是一个拥有“手脚”和“神经系统”的复杂架构。什么是…

[MindSpore进阶] 摆脱 Model.train:详解函数式自动微分与自定义训练循环

在 MindSpore 的日常开发中&#xff0c;很多初学者习惯使用 Model.train接口进行模型训练。这在运行标准模型时非常方便&#xff0c;但在科研探索或需要复杂的梯度控制&#xff08;如对抗生成网络 GAN、强化学习或自定义梯度裁剪&#xff09;时&#xff0c;高层 API 就显得不够…

[MindSpore进阶] 玩转昇腾算力:从自定义训练步到 @jit 图模式加速实战

摘要&#xff1a; 在昇腾&#xff08;Ascend&#xff09;NPU上进行模型训练时&#xff0c;我们往往不满足于高层封装的 Model.train接口。为了实现更复杂的梯度控制、梯度累积或混合精度策略&#xff0c;自定义训练循环是必经之路。本文将以 MindSpore 2.x 的函数式编程范式为基…

学长亲荐9个AI论文写作软件,本科生毕业论文必备!

学长亲荐9个AI论文写作软件&#xff0c;本科生毕业论文必备&#xff01; 1.「千笔」—— 一站式学术支持“专家”&#xff0c;从初稿到降重一步到位&#xff08;推荐指数&#xff1a;★★★★★&#xff09;在论文写作过程中&#xff0c;许多同学都面临一个难题&#xff1a;如何…

从 “文献堆” 到 “综述稿”:paperxie 如何让学术写作的第一步就躺赢?paperxie 文献综述

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/aippt https://www.paperxie.cn/ai/journalsReviewedhttps://www.paperxie.cn/ai/journalsReviewedhttps://www.paperxie.cn/ai/journalsReviewed 当你坐在电脑前&#xff0c;盯着 “文献综述” 四个字发呆…

解锁论文写作高效秘籍:Paperxie助力文献综述轻松搞定paperxie文献综述

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/aippt https://www.paperxie.cn/ai/journalsReviewedhttps://www.paperxie.cn/ai/journalsReviewedhttps://www.paperxie.cn/ai/journalsReviewed 在学术的浩瀚海洋中&#xff0c;撰写论文是每一位学者和学…

基于.NET和C#构建光伏IoT物模型方案

一、目前国内接入最常见、最有代表性的 4 类光伏设备二、华为 SUN2000 逆变器通讯报文示例 这是一个标准 Modbus TCP 请求报文&#xff1a; 00 01 00 00 00 06 01 03 75 30 00 06 含义&#xff1a; Modbus TCP 报文由两部分组成&#xff1a; MBAP Header&#xff08;7字节&…

Labview解析CAN报文与发送CAN基于DBC文件及dll说明文档的功能演示 (适用于20...

Labview 用DBC文件解析CAN报文以及DBC格式发送CAN&#xff0c;调用的dll有说明文档。 2013&#xff0c;2016&#xff0c;2019版本。 参考程序后续可以自己改动。LabVIEW作为一款功能强大的图形化编程工具&#xff0c;在汽车电子领域有着广泛的应用&#xff0c;尤其是在CAN总线通…

React Native for OpenHarmony 实战:Sound 音频播放详解

React Native for OpenHarmony 实战&#xff1a;Sound 音频播放详解 摘要 本文深入探讨React Native在OpenHarmony平台上的音频播放实现方案。通过对比主流音频库react-native-sound和expo-av的适配表现&#xff0c;结合OpenHarmony音频子系统的特性&#xff0c;提供完整的音…

智能直播新时代,AI场控系统全面解析,打造高效互动直播间

温馨提示&#xff1a;文末有资源获取方式在当今数字化直播浪潮中&#xff0c;主播们面临观众互动、内容管理和粉丝维护的多重挑战。为此&#xff0c;我们推出一款创新的AI自动场控机器人源码系统&#xff0c;旨在通过先进技术整合&#xff0c;构建一个智能化、自动化的直播环境…

全能直播互动源码系统,以直播间为平台,整合弹幕、点歌、答谢等多项功能

温馨提示&#xff1a;文末有资源获取方式在直播行业竞争日益激烈的今天&#xff0c;主播如何维系粉丝关系、提升社区活跃度成为关键。我们开发的AI自动场控机器人源码系统&#xff0c;正是针对这一需求而生。该系统以直播间为平台&#xff0c;整合弹幕、点歌、答谢等多项功能&a…

可编程直播神器,自定义AI场控系统,创造专属直播风格

温馨提示&#xff1a;文末有资源获取方式在直播内容多样化的时代&#xff0c;主播渴望通过个性化互动脱颖而出。我们推出的AI自动场控机器人源码系统&#xff0c;正是为满足这一创新需求而设计。该系统以AI大模型和智能控制技术为支撑&#xff0c;整合弹幕、点歌、回复等模块&a…

解锁论文写作高效秘籍:Paperxie引领文献综述革新之旅paperxie文献综述

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/aippt https://www.paperxie.cn/ai/journalsReviewedhttps://www.paperxie.cn/ai/journalsReviewedhttps://www.paperxie.cn/ai/journalsReviewed​ 在学术的浩瀚海洋中&#xff0c;论文写作是每一位学者、…

React Native for OpenHarmony 实战:Vibration 震动反馈详解

React Native for OpenHarmony 实战&#xff1a;Vibration 震动反馈详解 摘要&#xff1a;本文深入探讨 React Native 的 Vibration 模块在 OpenHarmony 平台的实战应用。通过剖析震动反馈的技术原理、跨平台适配要点及性能优化策略&#xff0c;结合 6 个完整可运行的代码示例&…

Python Web 开发进阶实战:混沌工程初探 —— 主动注入故障,构建高韧性系统

第一章&#xff1a;为什么需要混沌工程&#xff1f;1.1 传统测试的盲区测试类型覆盖场景无法发现的问题单元测试函数逻辑依赖服务宕机集成测试模块交互网络分区、延迟E2E 测试用户路径第三方 API 超时现实世界充满不确定性&#xff1a;云服务商区域故障&#xff08;AWS us-east…

‌AI驱动边界值测试:模拟用户行为自动生成用例,揭示3个隐藏Bug的实战全解析

AI赋能边界值测试的三大突破‌ ‌效率跃升‌&#xff1a;AI将边界值测试用例生成时间从数天压缩至分钟级&#xff0c;覆盖维度提升300%以上。‌缺陷捕获‌&#xff1a;通过模拟真实用户行为路径&#xff0c;AI成功发现传统方法遗漏的‌三类隐藏Bug‌&#xff1a;‌业务逻辑边界…

海外版AI量化区块链系统源码 UI精美

下载地址&#xff08;无套路&#xff0c;无须解压密码&#xff09;https://pan.quark.cn/s/fd9c8360ec72源码截图&#xff1a;

Python Web 开发进阶实战:零信任架构落地 —— BeyondCorp 模型在 Flask + Vue 中的实现

第一章&#xff1a;为什么需要零信任&#xff1f;1.1 传统安全模型的崩溃模型假设现实漏洞城堡护城河内网可信&#xff0c;外网危险远程办公普及&#xff0c;内网设备不可控VPN 防火墙登录即信任凭据泄露导致全系统沦陷静态 RBAC角色 权限无法应对“合法用户异常行为”典型案…

【免费源码】星河留言板V1.7.0 可以上传视频啦!

源码介绍&#xff1a;更新内容&#xff1a; 【新增功能】 新增支持上传视频 新增支持图片视频混合上传 新增支持后台审核时对上传的视频和图片进行预览 新增支持留言位置的显示&#xff08;位置服务由 ip-api 提供&#xff09; 新增支持设置每页留言显示数量 【优化修复】 优化…