从一问一答到自主干活:Agent 的核心设计模式 ReAct 是如何工作的

你以为 Agent 只是会自己说话的 AI?不,它会拆任务、调工具、循环执行,直到把事情干完。


01. 普通对话 vs Agent:差的不只是"自动"

我们平时用的 AI 对话,本质上是一问一答。

你问,它答;你再问,它再答。

每一次对话都是独立的,任务在输出结果后就结束了。

比如:

"帮我写一封邮件。"

LLM 写完邮件,任务就终止了。

没有后续,没有执行,没有反馈循环。


而 Agent 不一样。

Agent 有一个持续运转的结构。你给它一个任务,它会:

  • 拆解任务
  • 决定下一步
  • 调用工具
  • 查看结果
  • 再思考、再行动、再观察

这个循环会一直进行,直到任务完成,或者它自己判断终止(比如超出循环次数、token 上限、相同结果重复次数过多,或失败)。


02. Agent 的工作方式:ReAct 三板斧

Agent 的核心工作流程,可以总结为三个动作:

动作 说明
Reason(思考) 分析当前状态,决定下一步做什么
Act(行动) 调用工具、执行操作
Observe(观察) 查看行动结果,作为下一轮思考的输入

一轮结束后,Observe 的结果会回到 Reason,再 Act,再 Observe......

这个循环,就叫 ReAct。

ReAct = Reasoning + Acting + Observing

它不是 LangChain 那种大型开发库,而是 Agent 通用的循环工作标准。


03. 举个栗子:Agent 怎么写一份竞品分析报告?

假设任务:

"帮我分析竞品信息,然后手写一份报告。"

Agent 会怎么做?


第一轮:

  • Reason:需要先搜集竞品的最新动态
  • Act:调用搜索工具,查询三家竞品的最新信息
  • Observe:信息量很大,整理成结构化数据

第一轮结束。


第二轮:

  • Reason:发现缺少财务数据
  • Act:去官网查财报,或调用股市 API 抓取数据
  • Observe:拿到了营收、增长等关键指标

第三轮、第四轮......

不断补充信息、验证数据、调整结构。


最后一轮:

  • Reason:信息齐全,开始撰写报告
  • Act:生成完整报告文档
  • Observe:交付给用户

04. Agent 的"手脚":Tool Use

Agent 最核心的动作,就是 Tool Use(工具调用) 。

工具是 Agent 的手和脚。

没有工具,它只能在脑子里转,转完之后,还是只有文字。


常见的工具类型:

工具 作用
搜索工具 上网查实时信息
代码执行器 运行代码,查看结果
文件读写 I/O 读取、写入文件
浏览器操作 打开网页、点击、提交表单
API 调用 对接外部服务

工具越多,Agent 能干的事情就越多。

很多 Agent 产品,本质上就是在拼工具的覆盖范围。

工具的边界,就是 Agent 能力的边界。

选择 Agent,本质上是在选择它的工具生态。


05. 额外学习:Promise ------ 控制异步任务的"工具"

在 Agent 调用工具、并发执行任务时,前端/后端开发者绕不开一个基础概念:Promise。

你可以把 Promise 理解为 Agent 的"任务状态管理器"。


Promise 的三种状态:

状态 含义
pending 待处理,任务进行中
fulfilled 已成功解决
rejected 已失败

关键规则:

  • 只要有一个 Promise 失败,整体失败,不再等待其他 Promise 执行
  • 错误会直接走 catch,捕获第一个失败的原因

实际案例:并发请求

javascript

javascript 复制代码
const getStory = async () =>
  fetch('https://v1.hitokoto.cn/?c=i&encode=json');

const getRetp = async () =>
  fetch('https://data.ratp.fr/api/datasets/1.0/search/?q=paris');

async function main() {
  // 并发执行,按顺序收集结果
  const res = await Promise.all([getStory(), getRetp()]);
  
  // 解析所有 JSON
  const result = await Promise.all(res.map(item => item.json()));
  console.log(result);
}

main();

注意:Promise.all 会等待所有 Promise 都 resolved,但只要有一个 rejected,整体就会进入 catch。


06. 总结:Agent 的本质,是"有手脚的思考者"

对比维度 普通 AI 对话 Agent
工作方式 一问一答 循环执行
任务处理 输出即结束 拆解、执行、反馈、迭代
核心能力 生成文本 思考 + 行动 + 观察
依赖 模型本身 模型 + 工具生态

Agent 不是更聪明的对话机器人,

它是能自己干活、会调用工具、能持续迭代的智能体。

而 Promise,就是我们在开发这类智能体时,控制异步任务流的基础工具。

相关推荐
子兮曰5 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
1点东西5 天前
做了近两年的Agent开发,其实真正要学的就是这五件事
llm·agent·ai编程
七牛云行业应用5 天前
Qwen-Image-2.1 开源部署完整指南:Diffusers、ComfyUI 与推理服务
ai编程
福如意如我心意6 天前
TencentDB Agent Memory和其他开源memory
ai编程
小虎AI生活6 天前
腾讯开源了一个项目,让 AI 直接用你已经登录好的浏览器
aigc·ai编程
瑶山6 天前
开源编程Agent-OpenCode完整使用教程
开源·agent·ai编程·opencode
技术民工之路6 天前
文生视频 vs 传统视频制作:核心优势
ai编程
plainGeekDev6 天前
Harness 实战:用 Android 登录模块搭一套可靠的 Agent 开发环境
aigc·ai编程·claude
黄昏回响6 天前
从标准化到智能化:信息化的一场“地基革命”——兼论AI如何重新定义“标准化”
ai编程