0

0

Python ReAct 模式的完整闭环实现

舞夢輝影

舞夢輝影

发布时间:2026-02-23 17:28:03

|

370人浏览过

|

来源于php中文网

原创

react 模式需手动实现推理-行动闭环:生成文本→解析动作→调用工具→注入结果→循环,而非依赖现成库;须统一工具签名、严格匹配prompt格式、截断长输出、兜底异常并显式拼接换行。

python react 模式的完整闭环实现

ReAct 模式在 Python 中不是现成库,得自己搭骨架

Python 没有叫 reactReAct 的标准库或主流包来直接实现推理-行动(Reasoning-Action)闭环。所谓“ReAct 模式”,本质是把大模型的输出拆解为「思考步骤 + 可执行动作」,再由代码控制流程走向——它是个模式,不是 API。

常见错误现象:AttributeError: module 'llm' has no attribute 'react'、盲目 pip install react(装的是 React.js 的 Python 绑定,完全无关)、或把 LangChain 的 AgentExecutor 当成开箱即用的 ReAct 实现(它只是其中一种封装,底层逻辑仍需你定义)。

  • 真正要做的,是写一个循环:生成文本 → 正则/结构化解析出动作(如 search("量子计算"))→ 调用对应函数 → 把结果喂回模型 → 继续推理
  • LangChain 的 ReActSingleActionAgent 或 LlamaIndex 的 ReActAgent 是可复用的骨架,但必须提供 tools 列表和明确的 prompt 模板,否则它根本不知道该“行动”什么
  • 别跳过 parser:模型输出格式稍有偏差(比如多一个空格、少一个引号),re.search(r"Action: (\w+)\((.*)\)", text) 就会返回 None,整个链路静默失败

手动实现 ReAct 循环时,必须隔离模型调用与工具执行

核心陷阱在于把 LLM 推理和工具调用混在同一作用域里——比如在 generate() 函数里直接 os.listdir(),这会导致不可控副作用、无法 mock 测试、且难以调试哪一步崩了。

使用场景:你要让模型查天气、搜维基、读本地 CSV,每种操作都应封装为独立函数,并统一接受字符串参数、返回字符串结果。

立即学习Python免费学习笔记(深入)”;

换物网站源码
换物网站源码

一个基于ASP.NET+MSSQL实现的网站源码,包含一个网站的后台管理、前面展示、留言等常用功能,简单而功能完整,具有相当的学习意义。 采用面向对象模式开发,暂时没有超级管理员管理后台

下载
  • 工具函数签名必须一致,例如全部是 def tool_name(query: str) -> str:,不能有的要 path 参数,有的要 cityunit
  • 模型 prompt 里要明确写出工具列表和调用格式,例如:Available tools: search, read_file. Use Action: search("xxx") to query. —— 少一个句点或引号类型(中文引号 vs 英文)都可能让 parser 失效
  • 超时和异常必须兜底:工具函数内部加 try/except,返回类似 "Error: file not found" 而非抛异常,否则整个 loop 会中断

LangChain 的 ReAct Agent 不自动处理工具返回值长度

LangChain 的 ReActSingleActionAgent 默认把工具返回内容原样塞进下一步 prompt,但大模型上下文窗口有限。如果 read_file("log.txt") 返回 2000 行日志,下一轮 prompt 很可能被截断,导致模型“忘记”刚读过的内容。

性能影响:没做截断或摘要,token 消耗翻倍,响应变慢,还容易触发 context length exceeded 错误。

  • 在工具函数里主动限制输出长度,例如 return content[:1000] + " [truncated]"
  • 或改用 Tool 类的 return_direct=False + 自定义 handle_tool_result 做摘要(比如用小模型抽三句话)
  • 别依赖 max_iterations=6 就万事大吉——如果每次工具返回都超长,第 2 轮就卡死,根本跑不到第 6 次

本地运行时,Observation 字段名大小写和空格极易错

ReAct 标准 prompt 里,模型输出后,你拼接的 observation 必须严格匹配模板中定义的字段名。LangChain 默认用 Observation: xxx(冒号后一个空格),但如果你手写 prompt 写成 OBSERVATION:xxxObservation:(无空格),parser 就找不到位置。

常见错误现象:模型明明返回了结果,但 agent 下一轮还是重复调用同一个工具,像卡在循环里——大概率是 observation 插入位置错位,或者字符串拼接时漏了换行符。

  • 永远用 print(repr(observation_line)) 看实际字符串内容,而不是只看终端渲染效果
  • 拼接时显式加换行:f"\nObservation: {result}\nThought:",避免因前序输出没结尾换行导致粘连
  • 如果换模型(比如从 gpt-3.5-turbo 换到 llama3),prompt 模板里的关键词(Thought/Action/Observation)最好全小写并加方括号,比如 [thought],降低对大小写的敏感度
事情说清了就结束

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

351

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

426

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

789

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

362

2025.07.23

python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

192

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

13

2026.02.03

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

391

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

341

2023.10.25

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

1127

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 5.4万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1万人学习

React核心原理新老生命周期精讲
React核心原理新老生命周期精讲

共12课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号