第 1 章 AI Agent 是什么
本章要解决的问题
大家都在说 Agent,但它和「带提示词的 API 调用」到底差在哪?为什么有的产品是 Agent、有的只是套壳?
章节大纲
- 1.1 从聊天机器人到智能体:能力跃迁
- 1.2 Agent 的本质定义:LLM + 工具 + 循环
- 1.3 5 层骨架全景:LLM → API → Context → Tool Calling → Agent Loop
- 1.4 6 大概念关系:LLM / Agent / RAG / Skill / MCP / Harness
- 1.5 何时不该用 Agent:边界、成本与风险
- 🛠 解决方案:Agent vs 传统程序 vs 提示工程的选型决策树
1.1 从聊天机器人到智能体:能力跃迁
1.1.1 四个阶段:Agent 不是突然出现的
先看一张演进图,理解 Agent 在 AI 应用版图中的位置:

图 1:AI 应用四阶段演进
arduino
阶段1:规则机器人(2010s)
写死的 if-else 应答 → 只能处理"能枚举的"问题
代表:早期客服机器人
阶段2:对话式 AI(2020-2023)
大模型直接问答 → 能"聊",但不能"做"
代表:ChatGPT 网页版
阶段3:RAG 增强问答(2023-2024)
挂上知识库检索 → 能"知道更多",但仍不能"做事"
代表:企业知识库问答
阶段4:Agent(2024-至今)
接入工具 + 自主循环 → 能"想、做、看、再想"
代表:能查订单、写代码、操作系统的智能体
四个阶段的本质区别:从"会聊"到"会做"。 阶段 4 之前,模型的能力边界是"输出文字";进入 Agent 阶段,模型的输出可以触发真实世界的动作(查数据、发消息、执行代码、操作工具)。
1.1.2 "套壳"与真 Agent 的分界线
市面上的 AI 产品都自称 Agent,怎么识别真假?看三个硬指标:
| 指标 | 假 Agent(套壳) | 真 Agent |
|---|---|---|
| 是否调用工具 | 从不,只靠模型记忆回答 | 会主动调用工具(查库/查单/执行) |
| 是否有循环 | 一次问答即结束 | 有多轮"思考→行动→观察"循环 |
| 是否影响现实 | 只输出文字建议 | 能完成真实动作(下单/发信/写文件) |
一个简单测试:问它"帮我查一下订单 A123 的物流状态"------如果它直接编一个状态回答你,是套壳;如果它先调用查询工具、拿到真实结果再回答,才是 Agent。工具调用 + 自主循环,是 Agent 的两块试金石。
1.2 Agent 的本质定义:LLM + 工具 + 循环
1.2.1 一句话定义
AI Agent = 大语言模型(LLM)+ 工具(Tools)+ 自主循环(Loop)
三个要素缺一不可:
- LLM:负责理解、推理、决策(大脑)
- 工具:负责执行、检索、操作外部世界(手脚)
- 循环:负责"思考→行动→观察→再思考"的迭代推进(神经系统)
1.2.2 一个最小 Agent 的样子
python
def minimal_agent(query, tools, max_rounds=5):
messages = [{"role": "user", "content": query}]
for _ in range(max_rounds):
# 思考:让模型决定下一步(直接回答 or 调用工具)
resp = llm.chat(messages, tools=tools) # 模型可能返回 tool_calls
if resp.has_tool_calls:
# 行动:执行工具
result = execute_tool(resp.tool_calls)
# 观察:把结果放回上下文
messages.append(tool_result(result))
continue # 再思考
return resp.text # 无工具调用 → 回答用户
return "已达最大轮数"
这段代码只有 10 行,但它具备 Agent 的全部要素:LLM 决策(思考)→ 工具执行(行动)→ 结果回填(观察)→ 循环。后面第 6 章会把这个最小骨架扩展成生产级实现,第 10-18 章则围绕"循环怎么组织"展开 9 大设计模式。
1.2.3 Agent 的"自主性"光谱
Agent 的自主程度不是二元的,而是一条光谱:
scss
完全人工 ──────────────────────── 完全自主
│ │ │ │
人工指定每一步 人审批关键动作 人只在异常时介入 完全自动执行
(提示链) (Human-in-loop) (supervised) (autonomous)
工程铁律:自主性越高,风险越高,越需要护栏。 生产系统的 Agent 通常停在"人审批关键动作"或"人只在异常时介入"------全自主只在低风险任务上启用(呼应第 22 章安全、第 17 章自检)。
1.3 5 层骨架全景
本书反复提到的"5 层骨架"是理解一切 Agent 系统的总地图。从下到上:

图 2:Agent 5 层骨架
vbnet
┌─────────────────────────────────────────────┐
│ 5. Agent Loop(智能体循环) │
│ 思考 Think → 行动 Act → 观察 Observe → 循环 │
├─────────────────────────────────────────────┤
│ 4. Tool Calling(工具调用) │
│ 告诉 LLM:有哪些工具可用、怎么调用 │
├─────────────────────────────────────────────┤
│ 3. Context(上下文) │
│ 对话历史 + 当前状态 + 工具结果 │
├─────────────────────────────────────────────┤
│ 2. LLM API(模型接口) │
│ 厂商提供的 HTTP 调用能力 │
├─────────────────────────────────────────────┤
│ 1. LLM(大语言模型) │
│ 理解、推理、生成 │
└─────────────────────────────────────────────┘
5 层的对应关系:每层解决一个问题,也是本书的章节地图------
| 层 | 解决什么 | 对应章节 |
|---|---|---|
| 1 LLM | 智能从哪来 | 第 2 章 |
| 2 LLM API | 怎么调用 | 第 2 章、附录 E |
| 3 Context | 怎么记住上下文 | 第 3 章 |
| 4 Tool Calling | 怎么干活 | 第 5 章、第 14 章 |
| 5 Agent Loop | 怎么循环推进 | 第 6 章、第 10-18 章 |
记住这张图:后续每一章都在给这 5 层中的某一层"加厚"。遇到任何 Agent 问题,先问"问题出在哪一层"------这是全书排错的第一思维(呼应第 21 章排错)。
1.4 6 大概念关系
Agent 生态里还有 6 个高频概念,它们的关系经常被混淆。一张图理清:

图 3:Agent 生态 6 大概念
markdown
┌──────────────┐
│ LLM(大脑) │ 提供智能与推理
└──────┬───────┘
│
┌──────▼───────┐
│ Agent(组织者)│ 决策、编排、循环
└──────┬───────┘
┌────────────┼────────────┬─────────────┐
▼ ▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌──────────┐
│ RAG │ │ Skill │ │ MCP │ │ Harness │
│ 知识 │ │ 能力 │ │ 连接 │ │ 保障 │
│ 提供资料│ │ 复用流程│ │ 接入工具│ │ 评测安全 │
└─────────┘ └─────────┘ └─────────┘ └──────────┘
| 概念 | 一句话 | 解决的问题 | 对应章节 |
|---|---|---|---|
| LLM | 大脑,提供智能 | 理解与推理 | 第 2 章 |
| Agent | 组织者,决策与编排 | 怎么把智能用起来 | 第 6、10-18 章 |
| RAG | 知识补给,检索增强 | 模型不知道的知识 | 第 8 章 |
| Skill | 可复用的流程封装 | 重复劳动抽象 | 第 19 章 |
| MCP | 工具接入的标准化协议 | 工具碎片化 | 第 7 章 |
| Harness | 质量与安全保障框架 | 可靠性 | 第 20 章 |
记忆口诀 :LLM 是大脑、Agent 是组织者、RAG 供知识、Skill 复流程、MCP 接工具、Harness 保质量。Agent 是中枢,其他五个都是它的能力配件。
1.5 何时不该用 Agent
这一节是本章最重要的部分------学会不用 Agent,和学会用 Agent 一样重要。
1.5.1 Agent 的代价
Agent 不是免费的,它有四个实打实的成本:
| 代价 | 说明 | 量级 |
|---|---|---|
| Token 成本 | 每轮循环都要多次调用,是单次问答的数倍 | 2~10 倍 |
| 延迟 | 串行多轮调用,响应明显变慢 | 秒级 → 十秒级 |
| 不确定性 | 自主循环可能走偏、卡死、胡来 | 需护栏兜底 |
| 工程复杂度 | 评测、排错、监控都比静态流程难 | 数倍工作量 |
1.5.2 三选一决策:传统程序 / 提示工程 / Agent
面对一个需求,先别急着上 Agent,按这个决策树走:

图 4:技术选型决策树
matlab
需求来了
│
├─ 规则可穷举?─────────────→ 传统程序(if-else/规则引擎)
│ (输入有限、逻辑确定) 零 LLM 成本,100% 可控
│
├─ 无规则但输出模式固定?─────→ 微调/提示工程(非 Agent)
│ (分类/抽取/格式转换) 单次调用即可,无需循环
│
└─ 需要多步决策 + 工具操作?──→ Agent
(先查再算再写、跨系统) 用循环和工具解决
判断口诀:
- 输入可枚举 → 传统程序(银行取款流程,别用 Agent)
- 单步可完成 → 提示工程/微调(情感分类,一个调用就够)
- 多步决策 + 外部操作 → Agent(查订单→算运费→生成回复)
1.5.3 常见"滥用 Agent"的场景
- 把"分类任务"包装成 Agent:一个情感分类,用 Agent 循环 5 轮------纯浪费,一个带提示词的调用就够。
- 把"固定流程"硬做成自主:报销审批流程是固定的,用提示链(第 10 章)而非自主 Agent------自主反而引入不确定性。
- 把"搜索问答"包装成 Agent:只挂了一个检索工具的问答,本质是 RAG(第 8 章),别叫 Agent。
本书的核心立场:Agent 是"复杂任务的最终手段",不是"所有问题的默认答案"。 先想清楚问题形态,再选技术方案。
🛠 解决方案:Agent vs 传统程序 vs 提示工程的选型决策树
常见问题
- "我的需求到底要不要用 Agent?":用 1.5.2 的决策树过一遍------先排除"传统程序"和"单步调用"两个更便宜的选项。
- "怎么判断一个产品是不是真 Agent?":看两块试金石(1.1.2)------是否调用工具、是否有循环。
- "Agent 和 RAG 有什么区别?":RAG 是知识层(第 8 章),Agent 是决策层;RAG 是 Agent 的"知识配件"之一(1.4 的关系图)。
- "用 Agent 会不会太贵?":会。先评估任务是否真的需要循环和工具(1.5.2),能不用就不用。
- "自主性开多少合适?":从"人审批关键动作"起步(1.2.3),跑稳了再逐步提高自主度,一般不建议一上来就全自主。
解决方案速查表
| 需求形态 | 推荐方案 | 为什么 |
|---|---|---|
| 规则可穷举 | 传统程序 | 零成本、可控性高 |
| 单步分类/抽取 | 提示工程 | 一次调用,无需循环 |
| 输出模式固定且量大 | 提示工程/微调 | 提示工程试水,量大再考虑微调 |
| 需要外部知识 | RAG(+ 非 Agent) | 检索增强即可 |
| 多步决策 + 工具 | Agent | 循环 + 工具是刚需 |
| 多 Agent 协作 | 多智能体(第 16 章) | 单一 Agent 不够时 |
实战提示
- 先做"最简版本"再升级:先用单次调用 + 提示词跑通需求,证明"单步做不了"再升级成 Agent------用最小代价验证需求形态。
- 用 5 层骨架定位问题:出问题先问"是哪一层的问题"(模型/接口/上下文/工具/循环),别整系统瞎调。
- 记住 6 概念口诀:大脑 LLM、组织者 Agent、知识 RAG、复用 Skill、连接 MCP、保障 Harness。
- 把"不用 Agent"当成一种设计能力:能指出"这里不需要 Agent"的工程师,比逢事就上 Agent 的更值钱。