从一问一答到自主干活: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,就是我们在开发这类智能体时,控制异步任务流的基础工具

相关推荐
ZzT7 小时前
Caveman 翻车了:号称省 65% token,官方实测只有 8.5%
ai编程·jetbrains
臼犀8 小时前
大语言模型响应延迟对软件工程师尿液浓缩程度的影响 —— 一项基于水杯见底速度的观察性研究
程序员·ai编程·vibecoding
长情_9 小时前
给 AI 编程助手装一个"代码大脑":我是怎么用知识图谱 + 语义检索解决 Agent 代码理解问题的
ai编程
码哥字节10 小时前
AI知识库搜不准?缺的不是更好的模型,是这三层内容筛选
ai编程
京东云开发者10 小时前
拆解海博 AI-Native 落地保障:Harness、双 Loop、知识库与技能自主迭代实践
llm·ai编程·前端工程化
Rain的Java大神实战圈10 小时前
致焦虑的程序员:AI 不会让你失业,但“写 CRUD”会
ai编程·架构设计
老王以为10 小时前
解剖 Claude Code:逆向工程视角下的入口架构分析
前端·ai编程·claude
shepherd11110 小时前
别再把 MCP 当成大模型的“手脚”:LLM 并不会直接调用 MCP
后端·ai编程·mcp
爱丶不疚10 小时前
Code Review「问意图」这件事,在 AI 时代还重要吗?
ai编程·vibecoding
众人皆醒我独醉10 小时前
什么是输入上下文、MCP、Agent、Skills?—— 四个让你用不好 AI 的概念,一次讲清楚
面试·ai编程