Skip to content

2.4 Agent 机制与运行原理:给大模型装上眼睛、双手与规划大脑 ​

读菜谱的人能够告诉你步骤,实际做饭的人还要检查食材、开火、尝味道,并根据结果调整。模型与工具执行系统的关系可以这样理解:模型参与判断,程序负责行动,执行结果再成为下一步判断的依据。

本节比较的是单次模型调用与带工具循环的应用。网页聊天产品也可能接入搜索和代码执行,不能仅凭界面判断它是不是智能体。


智能管家做大餐:一图看懂 Agent 运作机制 ​

概念与流程示意图


普通大模型 与 Agent:到底差在哪? ​

对比维度普通大模型(LLM)Agent(智能体)
生活比喻提供建议的顾问自己动手的智能管家
能力边界生成文本或其他受支持的输出能“说”更能“做”(调工具、跑代码、改文件)
是否联网只靠训练时的记忆,不会实时查可实时搜索、调用网络 API
记忆能力每次对话相对独立,容易“失忆”可配置会话状态或长期存储,并非自动具备
自我纠错答错了就错了根据反馈重试或调整,也可能失败并停止
典型代表ChatGPT 网页版纯聊天Claude Code、Cursor Composer、Devin

💡 一句话总结:大模型是“军师”,Agent 是“军师 + 手脚 + 记忆 + 复盘”的完整作战单元。


Agent 高级思考流派:CoT、ToT 与 ReAct ​

在 Agent 自主解决问题时,有三种最主流的思考架构:

概念与流程示意图

1. 思维链 CoT(Chain of Thought / 草稿纸模式) ​

  • 做高考数学大题。如果直接心算容易出错,但在草稿纸上一行一行写下推导步骤 因为 A=B,所以 C=D,可以把中间步骤拆开检查,但效果依任务而定。

2. 思维树 ToT(Tree of Thoughts / 脑内沙盘推演) ​

  • 专业棋手下围棋。面对一个局面,脑海中同时模拟走法甲、走法乙、走法丙。推演到第 3 步发现走法乙会导致丢大子,立刻在脑中“剪枝放弃”,最终选择胜率最高的走法甲。

3. ReAct(Reason + Act / 试错自愈模式) ​

  • 炒菜调味。大厨不会只凭空推算放多少克盐,而是加一小勺盐(行动),用舌头尝一口(观察),发现还是偏淡(思考),再补加一小勺(自愈修复),直到咸淡刚好。

ReAct 的运行细节:三步循环伪代码 ​

下面的伪代码概括一类常见的工具循环,不代表所有产品都采用同一实现:

# ReAct 循环伪代码:想想再动手,动手再想想
while 任务未完成 且 未超过步数、时间与费用限制:
    思考 Thought:    根据当前信息,决定下一步做什么
    行动 Action:     调用某个工具(或直接给出回答)
    观察 Observation: 拿到工具返回的真实结果(成功 / 报错)

实战示例:让 Agent 修一个报错

轮次思考 Thought行动 Action观察 Observation
第 1 轮页面报 500,先看后端日志运行 tail -n 100 server.log日志显示数据库连接超时
第 2 轮可能是数据库没启动运行 systemctl status mysql数据库进程确实未运行
第 3 轮启动数据库并重测接口运行 systemctl start mysql && npm test测试全部通过 ✅

💡 这就是 Agent 能“自我修复”的秘密:它不是一次性背出答案,而是把“猜测 → 验证 → 修正”循环跑很多遍,并结合验收条件决定结束;重复失败时应停止或请求补充信息。


Agent 的模型、状态、工具与反馈 ​

                    ┌─────────────────────────┐
                    │      1. 核心大脑 (LLM)    │
                    │   (规划/推理/拆解目标)   │
                    └────────────┬────────────┘
                                 │
         ┌───────────────────────┼───────────────────────┐
         ▼                       ▼                       ▼
┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  2. 记忆系统    │     │  3. 工具箱      │     │  4. 环境反馈    │
│  (短期/长期记忆) │     │  (终端/API/文件) │     │  (执行输出/报错) │
└─────────────────┘     └─────────────────┘     └─────────────────┘
  1. 核心大脑(Planning):负责把“我要上线一个商城”这样的大目标,拆解成 20 个井井有条的执行步骤;
  2. 记忆系统(Memory):记住主人喜欢吃几分熟、记住上次哪个步骤失败了;
  3. 工具箱(Tools):拥有操作系统的权限,可以自己读写本地文件、执行命令行、调用网络 API;
  4. 环境反馈(Observation):工具执行后的真实返回值(终端报错、网络返回代码),能让 Agent 当场看清现实,不做无头苍蝇。

工具调用(Function Calling):Agent 怎么让“手脚”听话干活? ​

四大支柱里的“工具箱”具体是怎么工作的?靠的是 Function Calling(函数调用 / 工具调用):

  • 递小票——大厨(模型)不亲自去仓库拿菜,而是写一张标准点单小票(工具名 + 参数),交给跑腿小哥(程序)去执行。
  • 模型并不能真的执行命令,它只负责“下指令”。当它决定要用工具时,会输出一段结构化 JSON(工具名 + 参数),由外围程序代为执行,再把真实结果回传给模型继续思考。
json
{
  "tool_name": "run_command",
  "parameters": {
    "command": "npm test",
    "timeout": 60
  }
}

💡 流程:模型输出小票 → 程序执行 npm test → 把 stdout/stderr 作为“观察 Observation”传回模型 → 模型看到结果继续规划下一步。模型负责聪明,程序负责执行。


Agent 的失败情况与三道安全护栏 ​

Agent 能力越强,出错的破坏力也越大,这些场景你迟早会遇到:

失败情况生活比喻防护手段
死循环扫地机器人原地转圈设置最大步数 / 超时熔断,跑不完就强制停止
预算失控出租车计价表狂跳设置预算上限 + 消耗告警,超额自动暂停
越权操作管家乱动你的银行卡权限最小化:只给需要的那几个工具,别给全部权限
幻觉放大越自信越敢瞎编关键信息走 RAG 检索 + 工具核实,别让模型凭空编造

🛠️ 这些防护手段,正是后续 2.11 章 Harness 工程(赛车底盘) 要重点解决的内容——给 Agent 装上“方向盘限位、刹车与保险杠”。


计划、执行和完成判断如何配合 ​

假设任务是“把目录里的笔记整理成索引”。计划可以先列出读取文件、提取标题、生成目录、检查链接四步。执行时发现有文件没有标题,智能体就需要按照事先约定使用文件名,或者报告缺失,而不是悄悄跳过。

计划是一份可以调整的工作安排,不是正确性的证明。每一步还需要产出:读到了哪些文件,提取了多少条记录,有哪些例外。最终是否完成,应根据输入文件与输出索引逐项核对。

应结束的情况应交付什么
目标已经满足成果、修改说明与验证结果
缺少必要信息缺少的具体字段,以及已完成的部分
依赖暂不可用实际错误和可重试条件
同一步骤反复失败已尝试的方法、失败依据与下一步建议
达到预算或时间限制当前进度、保留的中间结果与剩余工作

工具执行成功,不等于任务完成 ​

文件写入工具返回成功,只能证明文件写到了指定位置;索引中的链接是否正确、标题是否重复、输入是否遗漏,还需要另行核对。同样,测试命令退出成功,也要确认它确实发现并运行了预期测试。

智能体需要区分“动作完成”和“目标达成”。这一点像寄包裹:柜台收件不等于收件人已经拿到包裹,不能用前一个事件替代后一个事件的证明。

固定流程与自主选择怎样取舍 ​

报销表格式校验、字段转换等规则稳定的工作,通常可以先用固定流程实现。需要根据检索结果决定下一步、处理多种未知情况的任务,才更适合开放更多自主选择。

CoT 是一种分步推导思路,ToT 涉及候选路径的搜索与评估,ReAct 强调推理与行动反馈的结合;它们不是互斥的三款产品,也不是每个智能体都必须配齐的组件。可以对照 CoT 论文、ToT 论文和 ReAct 论文理解各自研究的问题。

相关权威学术与官方技术链接 ​