news 2026/9/4 7:44:36

Agent智能体(下):从ReAct到代码Agent——进阶原理与实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Agent智能体(下):从ReAct到代码Agent——进阶原理与实战

本文是AI底层概念系列第四篇(下)。承接上篇,深入Agent的进阶机制。

系列文章:

  • 《旋转餐桌上的AI:从LLM到Agent Skill的概念串联》
  • 《大模型到底怎么"思考"的?用后厨流水线讲透LLM底层原理》
  • 《RAG检索增强生成:大模型的"开卷考试"——从入门到性能优化》
  • Agent智能体(上):核心概念拆解

上篇我们讲了Agent的核心概念:四大组件、ReAct循环、三层规划能力、工具调用原理、记忆系统。

这篇继续深入——多Agent怎么协作?ReAct的Prompt到底怎么写?代码Agent是怎么实现的?以及Agent和软件测试有什么共通之处?

一、多Agent协作:一个人干不完,就组队干

复杂的任务,一个Agent搞不定怎么办?——让多个Agent协作。

三种协作模式

模式1:流水线模式

就像工厂流水线,每个Agent负责一道工序,干完传给下一个。

需求分析Agent → 设计Agent → 开发Agent → 测试Agent → 上线Agent

特点:顺序执行,分工明确,适合流程固定的任务。

类比:餐厅后厨——洗菜→切菜→配菜→炒菜→出餐,一条线下来。

模式2:主管+员工模式

有一个"主管Agent"负责规划和分配任务,下面有多个"员工Agent"负责具体执行。

主管Agent(规划、分配、验收) / | \ 员工A 员工B 员工C (写代码) (查资料) (做测试)

特点:有统一指挥,能处理复杂任务,适合多模块并行。

类比:餐厅经理+厨师长+服务员+采购员,经理统一调度,各干各的活。

模式3:群聊辩论模式

多个Agent一起讨论,各抒己见,互相质疑,最后形成结论。

plaintext

AgentA:我觉得应该这样做…… AgentB:不对,这样有个问题…… AgentC:我补充一个角度…… AgentA:有道理,那我们调整一下……

特点:集思广益,减少盲区,适合需要创意或决策的任务。

类比:餐厅开菜品评审会——厨师、经理、服务员、顾客代表一起讨论新菜好不好。

三种模式对比

表格

模式结构优势劣势适用场景
流水线线性流程清晰,效率高不够灵活,一个环节卡了全链卡标准化流程任务
主管+员工星型统一调度,可并行主管能力决定上限复杂项目开发
群聊辩论网状多角度,少盲区效率低,可能讨论不出结果创意、决策类任务

二、深入拆解:ReAct的Prompt长什么样?

你可能好奇:Agent的"思考能力"是怎么来的?其实就是一段精心设计的Prompt。

ReAct的Prompt有不同的版本,从简单到复杂,逐步升级。

v1:最简版(三句话)

你是一个智能助手,可以使用工具来帮助用户解决问题。

每一步请先思考(Thought),然后决定是否调用工具(Action),
调用后观察结果(Observation),循环直到可以给出最终答案(Final Answer)。

用户的问题是:{question}

特点:只告诉模型"你可以用工具,按思考-行动-观察来"。

问题:模型经常不知道该用哪个工具、怎么传参,容易跑偏。

v2:加工具说明版

在v1基础上,加上所有可用工具的详细说明:

你是一个智能助手,可以使用以下工具来帮助用户解决问题:

【工具列表】
1. search_web(关键词) - 搜索互联网信息
2. calculator(表达式) - 进行数学计算
3. get_weather(城市) - 查询指定城市天气

【思考格式】
Thought: 你对当前情况的分析
Action: 工具名称(参数)
Observation: 工具返回的结果
...(可以重复多轮)
Thought: 我已经有足够信息回答用户了
Final Answer: 最终答案

用户的问题是:{question}

【工具列表】

1. search_web(关键词) - 搜索互联网信息

2. calculator(表达式) - 进行数学计算

3. get_weather(城市) - 查询指定城市天气

【思考格式】

Thought: 你对当前情况的分析

Action: 工具名称(参数)

Observation: 工具返回的结果

...(可以重复多轮)

Thought: 我已经有足够信息回答用户了

Final Answer: 最终答案

用户的问题是:{question}

特点:告诉模型有哪些工具、每个工具怎么用、输出格式是什么。

效果:比v1好很多,但模型还是容易格式错、参数传错。

v3:加Few-shot示例版

在v2基础上,加上完整的"正确示范":

……(上面的工具列表和格式说明)……

【示例】
用户:北京今天天气怎么样?适合出门吗?

Thought: 用户问北京今天天气和是否适合出门。我需要先查北京今天的天气。
Action: get_weather(北京)
Observation: 北京今天晴,温度25-32度,空气质量优,紫外线强。
Thought: 已经知道天气了。晴天、温度适宜、空气质量好,适合出门,但要注意防晒。
Final Answer: 北京今天天气晴朗,气温25-32度,空气质量优,适合出门。建议做好防晒措施。

【你的任务】
用户的问题是:{question}

特点:给一个完整的正确例子,让模型照着学。

效果:格式正确率大幅提升,这是工业界最常用的版本。

v4:加约束和异常处理版

在v3基础上,加上各种边界情况的处理规则:

……(上面的内容)……

【重要规则】
1. 如果工具调用失败,分析原因后重试,最多重试3次
2. 如果多次搜索都找不到答案,直接告诉用户"未找到相关信息"
3. 不要编造工具返回的内容,Observation必须完全来自工具结果
4. 调用工具时参数必须正确,不要传不存在的参数
5. 如果问题很简单,不需要工具,可以直接回答
6. 思考要简洁,不要长篇大论

【你的任务】
……

特点:把各种坑都提前告诉模型,减少出错。

效果:稳定性进一步提升,适合生产环境。

v5:工业级版(加思考深度)

在v4基础上,增加"思考质量要求",强迫模型更深入地思考:

……(上面的内容)……

【思考要求】
1. 每次思考要先分析:当前已知什么、还缺什么、下一步做什么
2. 选择工具时要说明:为什么选这个工具、为什么不选其他的
3. 拿到结果后要评估:结果可靠吗?完整吗?需要补充查询吗?
4. 给出最终答案前要自查:回答了用户的所有问题吗?信息来源可靠吗?

【你的任务】
……

特点:不仅告诉模型"按格式来",还要"想深一点"。

效果:回答质量更高,但速度更慢、Token消耗更多。

关于ReAct Prompt的4个冷知识

  1. 不是越长越好:Prompt太长反而会干扰模型,关键信息要放在开头和结尾(首尾效应)
  2. 示例比规则管用:1个好例子比10条规则效果好——模型学例子比学规则快
  3. 格式靠Few-shot保证:你说一百遍"要按格式输出",不如给两个正确示例
  4. ReAct是CoT的延伸:CoT(思维链)是"一步步想",ReAct是"一步步想+一步步做"——想了之后真的去做,做完接着想

三、原创思考:我的Agent理解框架

学习过程中,我也在构建自己对Agent的理解框架。

我理解的Agent运行机制:

接收用户信息

LLM拆分任务(任务分解层)

确定需要调用的工具

记忆检索(有没有类似经验?)

ReAct循环执行
├─ 思考:这一步做什么
├─ 行动:调用对应工具
└─ 观察:拿到执行结果,验证是否正确

验证结果(第一重验证:当前结果对不对?)

记忆比对(第二重验证:之前有没有类似情况?结果一致吗?)

确认完成 / 修正后继续

核心洞察有两个:

1. ReAct不是全部,它只是"如何拆分和执行单步任务"的模块

任务拆分的方式不止ReAct一种:

  • ReAct:走一步看一步
  • Plan-and-Execute:先规划全流程再执行
  • ToT(思维树):多条路径并行探索,选最优的
  • Reflection:执行完了自己复盘修正

就像测试用例设计方法有很多种——等价类、边界值、场景法、错误推测——ReAct只是其中最基础的一种。

2. 双重验证很重要

每一步执行完,不仅要验证"这一步对不对"(功能验证),还要去记忆里查"之前遇到类似情况是怎么处理的?结果一样吗?"(经验验证)。

这就像软件测试里的:

  • 单元测试(当前步骤对不对)
  • 回归测试(之前能过的,现在还能不能过)

两层验证叠加,才能保证Agent做事的可靠性。

四、深度案例:代码Agent是怎么实现的?

说了这么多理论,来个具体的——AI写Python脚本的Agent是怎么实现的?

版本1:纯代码生成(一句话出代码)

最简单的版本:

用户:写一个Python脚本,统计一个文件夹里所有txt文件的行数
Agent:(直接生成代码)给你,代码如下……

问题

  • 写的代码对不对?不知道,用户自己去跑
  • 跑报错了怎么办?用户自己改
  • 就是个"代码生成器",不是Agent

版本2:代码Agent(写→跑→改→循环)

真正的代码Agent是这样工作的:

表格

步骤动作
1理解需求,写第一版代码
2把代码放进沙箱里运行
3看运行结果——成功了?还是报错了?
4如果报错,分析错误信息,修改代码
5再跑,再看结果
6循环2-5,直到跑通
7跑通后,再做代码质量检查
8交付最终代码

看到了吗?代码Agent = 写代码 + 跑代码 + 看报错 + 改代码 + 循环

这和程序员调试代码的过程一模一样。

代码Agent的三个核心组件

  1. 代码沙箱:安全的运行环境,代码在这里跑,不会搞坏系统
  2. 工具集:执行代码的工具、读取文件的工具、安装依赖的工具
  3. 专属Prompt:专门调教的"程序员Prompt",告诉模型怎么写代码、怎么调试、怎么看报错

代码Agent的四层验证机制

表格

层级验证内容通过标准
L1 语法验证代码有没有语法错误解释器不报错
L2 功能验证代码能不能跑出正确结果输出符合预期
L3 自我验证代码逻辑对不对、有没有边界问题模型自己Review一遍
L4 质量检查代码风格、注释、性能、安全通过代码规范检查

为什么代码Agent效果特别好?

因为代码有"客观真理"——跑不跑得通、结果对不对,一运行就知道。

不像写文章、做设计,好不好是主观的。代码的对错是客观的:

  • 报错了就是错的 → 改
  • 结果不对就是错的 → 改
  • 跑通了结果对了 → 成了

这种"有明确反馈、能快速验证"的领域,Agent特别容易做好——因为ReAct循环能快速收敛。

这也是为什么测试工程师做AI有天然优势:我们最懂怎么设计验证机制、怎么找Bug、怎么保证质量。

五、跨界类比:Agent和软件测试的共通之处

作为测试工程师,我发现Agent的整套体系和软件测试有很多相似之处:

表格

Agent概念测试领域对应共通点
ReAct循环测试执行循环(设计→执行→检查→修正)都是"做一步、验一步、循环迭代"
工具调用测试工具(Jmeter/Selenium/Postman)都是用工具提高效率,工具本身需要验证
多层规划测试策略→测试计划→测试用例→执行都是从高层到细节,层层拆解
记忆系统用例库+Bug库+经验文档都是积累经验,避免重复踩坑
反思修正测试复盘、质量回溯都是做完了回头看,持续改进
多Agent协作测试团队分工(功能/性能/安全/自动化)都是专业分工,协作完成复杂任务
四层验证单元测试→集成测试→系统测试→验收测试都是分层验证,每层有不同的目标

一个有趣的观察:Agent的发展路径,和软件测试的发展路径很像——

  • 从"手动做事"到"自动化执行"
  • 从"单次验证"到"分层质量保障"
  • 从"个人能力"到"团队协作"
  • 从"完成任务"到"持续优化"

我们这些做测试的,其实早就懂Agent的核心思想了——只是我们叫它"测试流程",现在它叫"Agent架构"。

六、文末自测(5题)

下篇内容学完了,测一下进阶部分的掌握程度。

1. 多Agent协作的"主管+员工"模式适合什么场景?

  • A. 流程固定的标准化任务
  • B. 需要创意和多角度思考的任务
  • C. 复杂项目,需要多模块并行推进
  • D. 简单查询类任务

2. ReAct Prompt中,Few-shot示例的主要作用是什么?

  • A. 让模型照着例子学,保证输出格式正确
  • B. 增加Prompt的长度,显得更专业
  • C. 告诉模型有哪些工具可用
  • D. 限制模型的思考范围

3. 代码Agent效果特别好的核心原因是什么?

  • A. 代码写起来比文章简单
  • B. 代码有客观真理,对错一跑就知道,反馈闭环清晰
  • C. 程序员Prompt写得更好
  • D. 代码沙箱运行速度快

4. 以下哪种多Agent协作模式是"集思广益、多角度讨论"的?

  • A. 流水线模式
  • B. 主管+员工模式
  • C. 群聊辩论模式
  • D. 以上都不是

5. ReAct和CoT(思维链)的关系是什么?

  • A. 两者完全无关
  • B. ReAct是CoT的延伸,CoT是想,ReAct是想+做
  • C. CoT是ReAct的升级版
  • D. 是同一个东西的不同叫法

答案:

  1. C / 2. A / 3. B / 4. C / 5. B

答对4题以上,说明你对Agent的进阶机制也掌握得不错了。

七、总结

Agent上下两篇我们从里到外拆解了智能体:

上篇(核心概念):

  1. Agent是什么:大模型+思考框架+工具+记忆,从"答题机器"变成"执行者"(餐厅经理比喻)
  2. ReAct核心循环:思考→行动→观察,Agent智能的来源
  3. 三层规划能力:从单步推理到任务拆解到反思修正
  4. 工具调用原理:Function Calling四步走,工具分现成和自定义两类
  5. 记忆系统:三层结构+两种分类+四种用法

下篇(进阶实战):

  1. 多Agent协作:流水线/主管+员工/群聊辩论三种模式
  2. ReAct Prompt五级进化:从三句话到工业级版本
  3. 原创理解框架:双重验证思想 + ReAct只是拆分方式之一
  4. 代码Agent案例:写-跑-改循环,四层验证机制
  5. 测试视角的共通性:Agent架构和测试方法论高度相似

系列学到这里,我们已经有了完整的AI底层知识图谱:

  • LLM:底层大脑怎么工作
  • RAG:怎么外挂知识库
  • Agent:怎么让大模型主动做事

下一步,就是把这三者结合起来——用RAG给Agent提供知识,用Agent编排RAG和各种工具,解决真实世界的复杂问题。

比如我们之前讨论的PRD快速分析项目:RAG负责检索PRD文档,Agent负责编排分析流程、生成测试用例、做一致性检查——这就是LLM+RAG+Agent三者结合的典型场景。

系列回顾

  • 第一篇:旋转餐桌上的AI——从概念到体系
  • 第二篇:后厨流水线——LLM底层原理
  • 第三篇:开卷考试——RAG检索增强生成
  • 第四篇(上):餐厅经理——Agent核心概念
  • 第四篇(下):从ReAct到代码Agent——Agent进阶(本篇)

下一篇预告:实战篇——用LLM+RAG+Agent搭建一个PRD测试分析助手

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

视频批量上传技术:API自动化与合规实现方案

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

作者头像 李华
网站建设 2026/9/4 7:42:51

PIC16F877A温度光照检测系统:Proteus仿真与ADC时序精解

简介:本资源是一套基于PIC16F877A单片机的嵌入式环境监测系统仿真方案,面向电子类专业初学者、课程设计学生及单片机入门开发者,解决温度与光照双参数实时采集与智能响应的典型教学实践问题。系统通过DS18B20实现高精度温度检测,利…

作者头像 李华
网站建设 2026/9/4 7:42:49

WorkBuddy Claw 远程控制:架构原理与代码实战

1. 引言WorkBuddy Claw 是一款面向开发者的远程控制工具,它把设备管理、命令下发、文件传输和会话审计整合到一套统一的控制平面中。与传统的远程桌面或 SSH 工具不同,Claw 更强调「可编程控制」:开发者可以通过 API 和 SDK 把远程控制能力嵌…

作者头像 李华
网站建设 2026/9/4 7:38:46

STM32+MQTT+OneNet智能家居闭环系统实战

简介:这是一套面向嵌入式与全栈开发初学者的智能家居综合实践项目,适用于课程设计、毕业设计及工程实训场景,帮助学习者贯通STM32底层控制、ESP8266联网通信、OneNet云平台接入、MQTT协议应用、Vue/UniApp前端交互及语音识别集成等关键技术环…

作者头像 李华
网站建设 2026/9/4 7:38:42

SpringBoot-1-2-MVC 的配置工作环境

引言:上篇文章我们建立了springboot的基本认知:通过“自动配置”和“起步依赖”来简化Spring应用的搭建。本篇我们一起来理解Web开发中最核心的模块(Spring MVC),深入理解为什么我们几乎不需要任何配置,就能…

作者头像 李华
网站建设 2026/9/4 7:38:26

基于SpringBoot的甜品商城的开发(源码+文档+讲解视频)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

作者头像 李华