如果非要用一句话定义 AI Agent,那就是:一个能自己决定下一步做什么、并且真的去做的东西。前半句叫「自主性」,后半句叫「行动力」——这两条合起来,就是 Agent 区别于一切「问答机器人」和「流程脚本」的根本分界。
学术界和工业界给 Agent 下过很多定义,措辞各异但内核高度一致。这里给一个本书贯穿使用的收敛定义:
AI Agent 是以大语言模型为推理核心、能够自主感知环境、规划步骤、调用工具执行动作,并从观察反馈中迭代,直到完成用户给定目标的软件系统。
这个定义有四个关键词,缺一不可:
| 关键词 | 含义 | 缺失会变成什么 |
|---|---|---|
| 以 LLM 为核心 | 大脑是语言模型,负责理解与决策 | 传统规则脚本 / 专家系统 |
| 自主 | 自己决定下一步,而非按预设流程 | 工作流引擎 / RPA |
| 行动 | 能调用工具改变外部状态 | 聊天机器人 / RAG 问答 |
| 迭代 | 从观察中学习并修正 | 一次性生成的「伪 Agent」 |
💡 判断一个系统是不是 Agent 的最简测试:给它一个目标,关掉它的「下一步指令输入」,看它还能不能自己往前走。能,就是 Agent;不能,就是被包装成 Agent 的问答系统。
把上面四个关键词再压缩,Agent 的本质就剩两条:
自主性的核心是「谁来决定下一步」。
| 自主性层级 | 谁决定下一步 | 例子 |
|---|---|---|
| L0 完全人工 | 人写死每一步 | 传统 Shell 脚本 |
| L1 人工辅助 | 人确认每一步 | Copilot 式代码补全 |
| L2 半自主 | Agent 提议,人确认关键步 | 带人类在环的 Agent |
| L3 目标导向 | Agent 自主规划与执行 | 自主 Agent(如 AutoGPT) |
| L4 完全自主 | Agent 自设目标 | (理论探讨,未成熟) |
本书讨论的 Agent 主要落在 L2 到 L3 之间——给定目标后自主规划执行,但在关键操作上保留人类确认。L4 涉及目标自设,目前仍属理论探讨。
⚠️ 现实提醒:完全 L3 的自主 Agent 听起来很酷,但在生产环境几乎不可用——它会在错误方向上狂奔几十步,烧光 Token 预算。真正落地的 Agent 几乎都是 L2:自主规划,但在「花钱、删除、发送、提交」等不可逆操作上必须人类确认。这是第 6.4 节「人类在环」的核心动机。
行动力的核心是「能不能真的改变世界」。
这一条把 Agent 与一切「纯生成」系统彻底切开。一个能写邮件草稿的 LLM 不是 Agent;一个能真的把邮件发出去的系统才是。行动力的有无,决定了 AI 是「顾问」还是「执行者」。
自主性与行动力如何落到工程实现?答案是一个反复运转的循环——感知-规划-行动-观察(Perceive-Plan-Act-Observe)。这是全书所有章节围绕运转的主轴。
这四个环节看似简单,却浓缩了 Agent 的全部工程难度。逐个拆开看:
感知负责把外部世界的状态翻译成 LLM 能理解的结构化输入。
| 感知来源 | 例子 | 处理方式 |
|---|---|---|
| 用户输入 | 「订明天去上海的票」 | 自然语言解析、意图识别 |
| 工具返回 | API 返回的 JSON | 格式化、关键字段提取 |
| 环境状态 | 当前时间、库存、用户身份 | 状态查询、注入上下文 |
| 历史记忆 | 上次对话提到过的事 | 记忆检索(第 5 章) |
💡 感知的难点不在读,在读得准。一个 API 返回 200 个字段,全塞给 LLM 会冲淡注意力。优秀 Agent 的感知层会做信息抽取与降噪,只把决策真正需要的字段送进大脑。
规划是 Agent 的「大脑活动」,也是 LLM 真正发挥作用的地方。
| 规划粒度 | 思考方式 | 代表范式 |
|---|---|---|
| 一次性全规划 | 一次生成全部步骤 | Plan-and-Execute |
| 一步步规划 | 每步现想现做 | ReAct |
| 搜索式规划 | 多条路径探索+回溯 | ToT / LATS |
| 分解式规划 | 大任务拆成小任务 | 任务分解 |
不同规划策略适用不同场景,这是第 3、4 两章的主题。本节只需记住:规划模块的输出永远是一个「下一步动作」(无论这个动作是调用工具、还是直接回答)。
行动把规划结果落到现实。这是 Agent 跨越「说与做」鸿沟的关键一跃。
| 行动类型 | 例子 | 可逆性 |
|---|---|---|
| 信息查询 | 搜索、读数据库 | 可逆(只读) |
| 计算处理 | 代码执行、数学计算 | 可逆(无副作用) |
| 状态变更 | 写数据库、改配置 | 部分可逆 |
| 不可逆操作 | 发送邮件、转账、删除 | 不可逆 |
⚠️ 行动的危险性随可逆性递减而急升。读错一条数据顶多答错,发错一封邮件却无法收回。第 6.4 节会专门讨论:不可逆操作必须人类在环确认,这是 Agent 安全设计的铁律。
观察把行动结果转成下一轮感知的输入,闭合循环。
观察要回答三个问题:
行动: 调用订票 API 观察: - 执行层: HTTP 200, 返回订单号 ORD123 ✓ - 任务层: 是否订到了最早班? 检查返回的车次时间 ✓ - 语义层: 用户要的是「明天」, 订单日期对吗? ✓ 判定: 任务完成, 退出循环
观察的质量直接决定 Agent 能不能收敛。一个粗糙的观察层会让 Agent 在「差不多成功了」和「其实还差一步」之间反复横跳,烧光预算。
Agent 循环必须配套明确的停止条件,否则会陷入死循环或无意义空转:
| 停止条件 | 触发时机 | 实现方式 |
|---|---|---|
| 任务完成 | 目标达成 | 终止判定器 |
| 步数上限 | 防止失控 | 最大迭代数(如 25 步) |
| 时间上限 | 防止超时 | Wall-clock 超时 |
| Token 上限 | 防止烧钱 | Token 预算耗尽 |
| 重复检测 | 防止振荡 | 轨迹去重 / 相似度阈值 |
| 主动求助 | Agent 自己判断无解 | 「request human help」动作 |
💡 工程经验:生产级 Agent 必须同时设置步数上限与 Token 上限。前者防逻辑死循环,后者防成本爆炸。两者缺一,迟早出事。
每一轮循环都要调用一次 LLM——这意味着 Agent 的成本与延迟是「单次 LLM 调用 × 循环轮数」。
| 循环轮数 | 典型场景 | 延迟 | 成本 |
|---|---|---|---|
| 1-3 轮 | 简单问答 + 单次工具调用 | 秒级 | 低 |
| 5-15 轮 | 多步任务(如查+算+写) | 分钟级 | 中 |
| 20+ 轮 | 长程任务(如全流程自动化) | 十分钟级 | 高 |
这是 Agent 与 LLM 问答在工程上最显著的差异:问答是「一锤子买卖」,Agent 是「持续运转」。第 8.3 节会详细讨论成本与延迟的系统性挑战。
Agent 这个词被滥用得很厉害。把它和几个相邻概念切开,能避免很多混淆。
| 系统 | 自主性 | 行动力 | 记忆 | 与 Agent 的区别 |
|---|---|---|---|---|
| 聊天机器人 | 无 | 无 | 有限 | 只闲聊,不办事 |
| RAG 问答 | 无 | 无(只检索) | 静态 | 检索完就结束,不迭代 |
| 工作流引擎 / RPA | 无(流程预定义) | 有 | 无 | 流程是人写的,不自决策 |
| Copilot | 弱(建议为主) | 弱(人确认) | 有限 | 主要辅助人,人不离开 |
| AI Agent | 强(自决策) | 强(自主执行) | 有 | 给目标,自己办 |
最容易混淆的是 Agent 与 RAG:
换句话说,RAG 是 Agent 的一个零件,不是 Agent 本身。把 RAG 包装成对话界面,依然不是 Agent——因为它没有「自主决定下一步」的循环。
⚠️ 市场噱头识别:很多产品自称「Agent」,实际只是「LLM + 一个固定工具调用」。判断真伪就看一条——它会不会根据观察结果改变后续计划。会,是真 Agent;不会,是带工具的问答。
用一个「帮我查北京明天天气并决定是否带伞」的任务,看循环怎么转:
目标: 告诉我明天是否需要带伞 [第 1 轮] 感知: 用户在 北京; 当前日期 2026-07-20; 无历史 规划: 我需要先查北京明天的天气预报 行动: 调用天气 API, 参数 location=北京, date=2026-07-21 观察: 返回 "小雨, 降水概率 80%, 最高 28℃" 判定: 还没回答用户, 继续 [第 2 轮] 感知: 明天北京小雨, 降水概率 80% 规划: 降水概率高, 应建议带伞; 还可以查风量决定是否带大伞 行动: (判断信息已足够, 不再调用工具) 直接生成最终回答 观察: 已输出回答 判定: 任务完成, 退出循环 返回: "明天北京有小雨,降水概率 80%,建议带伞。"
注意第 2 轮的关键点:Agent 自主判断「信息已足够」,选择不再调用工具而是直接回答。这正是「自主性」的体现——它不是按预设流程执行,而是根据观察动态决定下一步。
下一节《1.3 智能体架构总览》将把核心循环展开为 Profile-Memory-Planning-Action 四大模块,建立全书后续章节的架构坐标系。