ReAct Agent 完整原理 + 伪代码实现
ReAct Agent 完整原理 伪代码实现ReAct 是目前最经典、最基础的智能体范式核心循环思考 (Thought) → 行动 (Action) → 观察 (Observation)也是区分 Agent 和 Chain 的典型范本。一、ReAct 运行逻辑plaintext循环 1. Thought思考大模型分析当前问题 历史上下文自主判断接下来该做什么 2. Action行动决定调用哪个工具、传入什么参数 3. Observation观察执行工具拿到工具返回结果 把观察结果追加到上下文进入下一轮循环 直到模型判断【无需再调用工具直接输出最终答案】和 Chain 本质区别 Chain步骤1→步骤2→步骤3代码写死不会动态选择 ReAct Agent没有固定步骤每一轮由 LLM 自主决策下一步。二、极简伪代码Python 风格贴近 LangGraph / LangChain 实现思路python运行# 可用工具库 tools { search: search_function, calculator: calc_function } def react_agent(user_query: str): # 上下文记忆保存历史思考、动作、观测结果 messages [ {role: system, content: 你是ReAct智能体。你可以使用工具解决用户问题。 输出格式严格二选一 1. 调用工具Thought: xxx\nAction: 工具名称\nAction Input: 参数 2. 回答结束Thought: xxx\nFinal Answer: 最终结果 可用工具search(联网搜索), calculator(计算器) }, {role: user, content: user_query} ] max_iter 5 # 限制最大循环轮次防止无限思考 for _ in range(max_iter): # Thought交给大模型推理决策Agent核心 llm_response llm.invoke(messages) # 判断是直接输出答案还是调用工具 if Final Answer: in llm_response: return extract_final_answer(llm_response) # 解析模型决定执行哪个动作、参数 thought, action_name, action_input parse_react_output(llm_response) # Action执行工具 tool_func tools[action_name] observation tool_func(action_input) # Observation把结果放回上下文下一轮继续思考 messages.append({ role: user, contentfThought: {thought}\nAction: {action_name}\nObservation: {observation} }) return 达到最大迭代次数无法完成任务三、模拟一轮真实执行流程演示用户提问2025年中国GDP增速是多少再乘以2LLM 输出plaintextThought: 我需要先搜索2025中国GDP增速无法直接回答 Action: search Action Input: 2025年中国GDP增速执行 searchObservation 得到数据5.0%上下文追加观测结果再次调用 LLMplaintextThought: 已经获取增速5.0%接下来使用计算器计算5.0 * 2 Action: calculator Action Input: 5.0 * 2计算器返回结果10.0再次调用 LLMplaintextThought: 信息足够不需要更多工具 Final Answer: 2025年中国GDP增速为5.0%乘以2等于10.0循环终止返回答案。四、对照如果用 Chain 实现同一个需求代码逻辑预先硬编码顺序python运行# Chain 流程固定无法动态调整 def chain_workflow(query): res1 search(query) res2 calculator(res1 * 2) return generate_answer(res2)缺陷直观体现如果搜索不到数据代码依然会强行执行计算器没有自主分支决策模型不能自主判断 “是否需要多搜索一次”不能调换顺序、不能中途终止流程。五、延伸知识点工程重点原生 ReAct 痛点输出格式极易乱掉LLM 不遵守 Thought/Action 规范生产环境常用工具调用 Function Calling替代原始字符串解析。演进路线基础 ReAct → Function Calling Agent → Plan-and-Solve先整体规划再执行 → LangGraph 多节点可控 Agent增加人工校验、条件分支、反思 Reflect一个关键误区澄清❌ 错误认知Chain 不能调用工具Agent 才能调用工具 ✅ 事实Chain 同样可以串联工具区分核心不在能不能调用工具而在【谁决定工具执行顺序】

相关新闻

前端资源优化实战:合并与压缩技术详解

前端资源优化实战:合并与压缩技术详解

1. 前端资源优化的核心价值 在Web应用开发中,前端资源优化是提升用户体验的关键环节。当用户访问一个网页时,浏览器需要下载HTML、CSS、JavaScript、图片等各种资源,这些资源的数量和大小直接影响页面加载速度。根据HTTP/1.1协议的特性&#…

2026/10/11 5:14:45 阅读更多 →
企业级Nginx性能优化实战指南

企业级Nginx性能优化实战指南

1. 企业级Nginx性能优化全景图 在日均PV过百万的电商大促期间,我们曾用3台Nginx服务器扛住了每秒2.4万次请求的冲击。这背后不是靠堆硬件,而是对Nginx每个环节的深度调优。今天要分享的,正是经过数十个企业项目验证的Nginx优化方法论。 企业…

2026/10/5 18:31:31 阅读更多 →
Agent的反思机制

Agent的反思机制

一、什么是 Agent 的反思机制(Reflection)?Agent 反思机制指的是:Agent 在完成某一步任务后,不直接结束,而是让模型重新检查自己的行为、结果和错误,然后根据评价结果进行修正。简单理解&#x…

2026/10/11 5:26:52 阅读更多 →

最新新闻

螺栓销钉缺失检测:1209张VOC数据集与YOLOv8训练实践

螺栓销钉缺失检测:1209张VOC数据集与YOLOv8训练实践

简介:输电线路螺栓销钉缺失检测图像数据集专注电力设施智能巡检场景,面向计算机视觉研究者与电力运维开发人员,旨在解决销钉缺失这一高危隐患的自动识别问题。数据集共2000个文件、约89.52MB,包含791张高清JPEG巡检图像及1209个PA…

2026/10/12 0:32:15 阅读更多 →
AI知识简记(持续更新):用TaoToken统一Key打通VS Code与Cursor的大模型调用

AI知识简记(持续更新):用TaoToken统一Key打通VS Code与Cursor的大模型调用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 0:32:15 阅读更多 →
信用风险预测模型实战:从标签定义、WOE特征工程到评分卡转换

信用风险预测模型实战:从标签定义、WOE特征工程到评分卡转换

简介:这份PDF是一篇基于机器学习算法的商业银行信用风险预测模型研究论文,适合金融科技、风控建模方向的从业者、研究生及竞赛选手参考。文章从信用风险研究的现实背景切入,系统梳理了多元判别分析、Logistic回归等传统统计方法,以…

2026/10/12 0:32:15 阅读更多 →
基于VGG的自然灾害图像分类:迁移学习与Grad-CAM实战

基于VGG的自然灾害图像分类:迁移学习与Grad-CAM实战

简介:这份资源面向图像识别与机器学习方向的初学者及进阶开发者,聚焦自然灾害场景的自动分类任务,帮助读者理解如何用VGG卷积神经网络完成从数据预处理到模型训练与评估的完整流程。压缩包共29个文件,约1.54MB,包含5个…

2026/10/12 0:31:15 阅读更多 →
JDK11核心新特性与升级实战:语法、API及GC全面解析

JDK11核心新特性与升级实战:语法、API及GC全面解析

1. 为什么说JDK11是继JDK8之后最值得升级的版本JDK11确实是一个非常特殊的存在。作为Oracle在2018年9月发布的LTS版本,它既是Java 8之后第一个真正意义上的长期支持版本,又是Oracle调整Java版本发布节奏后的关键节点。对于做Java开发的同学来说&#xff…

2026/10/12 0:31:15 阅读更多 →
Python+OpenCV答题卡自动批改:检测、切分、考号识别与选择题评分

Python+OpenCV答题卡自动批改:检测、切分、考号识别与选择题评分

简介:这份源码包面向计算机、数学、电子信息等专业的学生与开发者,聚焦答题卡自动识别与批改场景,可用于课程设计、期末大作业、毕设项目或初期项目立项演示。项目基于Python实现答题卡检测、试题切分、学生考号识别与选择题自动批改&#xf…

2026/10/12 0:31:15 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →