Skip to content

Agent 工作原理:感知→规划→行动→反思

Agent 不是魔法。它是一个循环:看情况 → 想办法 → 干活 → 看结果 → 再调整。理解这个循环,你就理解了所有 Agent。

🔄 核心循环:OOO Loop

Agent 的本质是一个观察-行动-观察循环(Observe-Orient-Act Loop),更完整的版本是:

感知(Perceive) → 规划(Plan) → 行动(Act) → 反思(Reflect)
     ↑                                                    ↓
     └────────────────────────────────────────────────────┘

这不是理论模型,而是所有 Agent 的实际运行方式——从 Claude Code 到 AutoGPT,都在做这个循环。

🧠 三件套:LLM + 记忆 + 工具

Agent 由三个核心组件构成,缺一不可:

1. LLM(大脑)

作用:理解、推理、决策、生成

关键能力

  • 理解用户意图("帮我重构这个模块" → 拆解为具体步骤)
  • 规划执行路径(先读代码 → 分析结构 → 制定方案 → 逐步修改)
  • 生成行动指令(调用哪个工具、传什么参数)
  • 处理执行结果(代码跑通了?有报错?需要调整?)

2026 年趋势

  • 推理模型(o3、DeepSeek-R1)让规划更准确
  • 长上下文(200k+ tokens)让 Agent 看到更多项目代码
  • 多模态理解让 Agent 能"看"截图、UI、图表

2. 记忆(经验)

作用:存储历史信息,避免每次从零开始

类型存什么生命周期示例
短期记忆当前对话上下文单次会话"用户要求用 Python"
工作记忆当前任务的中间状态任务期间"已修改 3 个文件,还差 2 个"
长期记忆项目知识、用户偏好永久"这个项目用 FastAPI + PostgreSQL"

记忆管理的关键问题

  • 容量:上下文窗口有限,需要压缩和筛选
  • 检索:如何从大量记忆中找到相关信息(向量检索 vs 关键词检索)
  • 更新:什么时候写入新记忆、什么时候清理旧记忆
  • 优先级:哪些信息更重要,不能被压缩掉

深入学习记忆管理设计模式 →

3. 工具(手脚)

作用:执行具体行动,连接外部世界

常见工具类型

类别工具做什么
代码终端执行、文件读写写代码、跑测试
搜索网页搜索、知识库检索查信息、找文档
数据数据库查询、API 调用取数据、做分析
浏览器网页操作、截图看页面、做 QA
通信邮件、消息推送发通知、协同

工具调用的关键问题

  • 选择:Agent 怎么知道该用哪个工具?(靠 LLM 推理 + 工具描述)
  • 参数:怎么传正确的参数?(靠 JSON Schema 描述 + LLM 生成)
  • 错误:工具调用失败了怎么办?(重试、降级、人工介入)
  • 安全:Agent 能执行真实操作,需要权限控制

深入学习工具使用设计模式 → | MCP 协议 →

📐 四种推理模式

Agent 怎么"想"?有四种主流模式:

1. CoT(Chain of Thought)— 分步推理

问题: "这个函数为什么报错?"
思考:
1. 先看报错信息 → TypeError: 'NoneType' object is not subscriptable
2. 找到出错行 → line 42, data['key']
3. 分析原因 → data 可能是 None
4. 查上游 → 函数 get_data() 在某些情况下返回 None
5. 结论 → 需要加 None 检查

适用:需要逻辑推理的任务(调试、分析、规划)

2. ReAct(Reasoning + Acting)— 边想边干

思考: 需要查看项目结构 → 行动: ls 项目目录
观察: 看到 src/, tests/, config/ → 思考: 先看 src/ 下的文件
行动: cat src/main.py → 观察: 发现用了 FastAPI
思考: 需要看路由定义 → 行动: cat src/routes.py
...

适用:需要与环境交互的任务(代码修改、信息检索)

3. Plan-and-Execute — 先规划后执行

规划阶段:
1. 分析需求 → 需要加用户认证
2. 制定计划 → [设计模型 → 写路由 → 加中间件 → 写测试]
3. 确认计划 → 用户同意后开始

执行阶段:
1. 执行步骤1 → 创建 User 模型
2. 执行步骤2 → 写 /auth 路由
3. ...

适用:复杂、多步骤的任务(项目开发、系统重构)

4. Reflection — 做完回头看

执行: 写了一段代码
反思: 这段代码有什么问题?
1. 性能 → 查询没有索引,可能慢
2. 安全 → 没有输入验证
3. 可维护 → 硬编码了配置值
改进: 加索引、加验证、提取配置

适用:需要质量保证的任务(代码审查、方案优化)

深入学习反思设计模式 → | 规划设计模式 →

⚠️ Agent 会犯什么错

理解 Agent 的工作原理,也要理解它的失败模式:

错误类型原因例子防御
幻觉LLM 生成不存在的信息编造一个不存在的 API交叉验证、工具确认
循环规划出错,反复尝试同一方案连续 5 次用同样的方法修 bug设置最大迭代次数
工具误用选错工具或传错参数用搜索工具去查本地文件清晰的工具描述 + Schema
上下文溢出记忆太多,丢失关键信息忘了用户最初的需求上下文压缩、优先级管理
过度自主自行做高风险决策直接删除生产数据库人类审批、权限边界

关键认知:Agent 的可靠性 = LLM 质量 × 工具可靠性 × 人类把关程度。三者缺一,Agent 就不可靠。

🔗 延伸阅读

MIT Licensed