概念Agent智能体工具调用规划
AI Agent(智能体)
能自主感知环境、规划任务、调用工具、持续迭代的 AI 系统,从聊天机器人进化到能干活的数字员工。
什么是 AI Agent
AI Agent(智能体)是一种 AI 系统,它能:
- 感知 — 理解用户意图和当前环境
- 规划 — 把复杂目标拆解为可执行的步骤
- 行动 — 调用工具、API、代码来完成每一步
- 观察 — 获取行动结果,判断是否成功
- 迭代 — 根据结果调整计划,持续直到完成
与普通聊天机器人的核心区别:Agent 能自主决策和执行,不只是对话。
Agent 架构
用户目标
↓
┌─────────────────────────────────┐
│ Agent 循环 │
│ │
│ ① 规划:下一步做什么? │
│ ② 行动:调用工具/代码/API │
│ ③ 观察:解析返回结果 │
│ ④ 反思:成功了吗?需要调整? │
│ ⑤ 循环或结束 │
│ │
└─────────────────────────────────┘
↓
任务完成
ReAct 模式
最经典的 Agent 模式:Reasoning + Acting 交替进行。
Thought: 用户要查上海的天气,我需要调用天气 API
Action: call_weather_api(city="上海")
Observation: 上海今天 28°C,多云
Thought: 拿到天气数据了,可以回答用户了
Answer: 上海今天 28°C,多云,适合出行。
Plan-and-Execute 模式
先全局规划再逐步执行:
Plan:
1. 搜索竞品信息
2. 提取价格数据
3. 生成对比表格
4. 写分析总结
Execute step 1...
Execute step 2...
Reflexion / Self-Correct 模式
执行完一轮后让模型自己评审输出,发现问题再跑一次。代价是 token 翻倍,但能显著提升复杂任务的成功率。
Agent 的关键能力
工具调用(Tool Use)
Agent 通过 function calling / MCP 调用外部工具:
- 搜索引擎(Google / Bing API)
- 代码执行(沙箱 Python / Node.js)
- 文件操作(读写本地文件)
- API 调用(HTTP 请求)
- 浏览器自动化(Puppeteer / Playwright)
记忆(Memory)
- 短期记忆 — 当前对话上下文(在 context window 内)
- 长期记忆 — 跨会话的知识存储(向量数据库)
- 工作记忆 — 当前任务的中间状态(变量、文件、中间结果)
规划(Planning)
- 任务分解 — 把"做一个网站"拆成"设计→前端→后端→部署"
- 自我反思 — 执行失败后分析原因,调整策略
- 动态重规划 — 发现原计划不可行时及时调整
Agent vs Copilot vs Chatbot vs RPA
经常混淆的四个东西,一张表区分:
| 维度 | Chatbot | Copilot | Agent | RPA |
|---|---|---|---|---|
| 主动性 | 被动答 | 辅助建议 | 自主执行 | 按固定流程跑 |
| 决策 | 无 | 用户决策 | Agent 决策 | 规则决策 |
| 工具 | 无 | 少量 | 任意 | 固定脚本 |
| 适应变化 | 无 | 无 | 强 | 弱(页面变就崩) |
| 例子 | 早期客服 bot | GitHub Copilot | Devin / Manus | UiPath / 影刀 |
Agent 是 RPA 的下一代——RPA 写死流程,Agent 看懂目标自己想办法。
Agent 分类
按 autonomy 程度分
| 类型 | 例子 | 自主程度 |
|---|---|---|
| Copilot | GitHub Copilot | 低:辅助人类,不自主 |
| Tool-use Agent | Claude Code | 中:人类给目标,Agent 执行 |
| Autonomous Agent | Devin / Manus | 高:给目标,Agent 全程自主 |
按场景分
| 类型 | 例子 |
|---|---|
| 编程 Agent | Devin / Cursor Composer / Claude Code |
| 通用 Agent | Manus / OpenManus |
| 桌面 Agent | OpenClaw / AutoGLM |
| Agent 平台 | Coze / Dify / FastGPT |
Agent 平台对比
| 平台 | 定位 | 特点 |
|---|---|---|
| Coze(扣子) | 字节出品 | 低代码、模板丰富、国内直连 |
| Dify | 开源 | 可私有化部署、RAG 内置 |
| FastGPT | 开源 | 知识库优先、RAG 最强 |
| 元器 | 百度出品 | 接入百度生态 |
| n8n | 开源 | 工作流自动化、可视化编排 |
典型失败模式
知道 Agent 怎么失败,才知道怎么防。常见五种:
- 死循环 — 模型一直觉得"再试一次就成",反复调同一个失败的工具。防御:硬性步数上限 + 重复检测。
- 跑偏目标 — 多步任务中模型逐步把目标改成"自己更想做的事"。防御:每 N 步把原始目标重新塞回上下文。
- 过度自信的错误结果 — 工具返回了错误数据但模型不质疑,照单全收输出给用户。防御:critical 工具加 verifier + 让模型显式标注信心。
- 副作用爆炸 — 比如让 Agent 整理邮件,结果它"自作主张"开始删邮件。防御:默认 read-only,写操作单独 review。
- 上下文窗口耗尽 — 长任务下 working memory 越来越大,最后超限。防御:定期总结压缩历史、把工具输出截断。
自建 vs 用平台的决策
| 选择 | 适合场景 |
|---|---|
| 直接用 Coze / Dify / FastGPT | 业务逻辑标准、内部使用、想快速看效果 |
| LangChain / LlamaIndex 框架 | 需要自定义工作流但不想从零写 |
| 自己写(基于 OpenAI SDK / Anthropic SDK) | 性能/延迟敏感、有特殊业务约束、不想被框架绑死 |
| Claude Code / Cursor 这类 Coding Agent | 目标本身就是写代码 |
经验法则:先用平台跑 PoC,跑通了再考虑自建。从零写一个生产级 Agent 框架的工作量被严重低估。
当前局限
- 可靠性 — 多步 Agent 的错误率随步骤数指数增长(10 步 × 90% = 35% 成功率)
- 成本 — 每步都要调用 LLM,复杂任务可能花费数美元
- 速度 — LLM 推理延迟 × 步骤数 = 等待时间长
- 安全 — Agent 能执行真实操作,出错后果严重(删文件、发邮件)
- 上下文窗口 — 长任务可能超出 context window
最佳实践
- 人在回路(Human-in-the-loop) — 关键步骤让人类确认
- 沙箱执行 — 代码在隔离环境运行,避免破坏系统
- 限制工具范围 — 只给 Agent 必要的工具权限
- 检查点机制 — 每步保存状态,失败可回滚
- 超时与重试 — 防止 Agent 陷入无限循环
- 可观察性 — 把每一步的 thought / action / observation 持久化,出问题能复盘
- 预算硬上限 — token / 步数 / 钱都要有硬上限,到顶停止而不是无限重试
延伸阅读
- 协议层:MCP(Agent ↔ 工具)/ A2A(Agent ↔ Agent)
- 工具调用底层:Function Calling
- 上下文管理:Context Engineering