云镜收藏

稍后阅读

清单保存在当前浏览器,方便下次回来继续阅读。

清单还是空的

在笔记卡片或正文页点击“加入稍后阅读”即可收藏。

完整课程 · 系统工程本章深入路线 ↓
展开全套章节与本章目录
13 章学习路线01先看全局:大模型到底在做什么02文本怎样进入模型:Token 与向量03神经网络怎样学会:损失、梯度与优化04Transformer 主干:注意力怎样工作05预训练:数据怎样变成基础能力06大模型怎样在多张卡上训练07后训练:SFT、LoRA 与偏好对齐08推理与服务:模型怎样真正跑起来09RAG:让模型使用外部知识10Agent:从一次回答到多步行动11评测、安全与幻觉12多模态与收束:把知识连成系统13综合项目:把知识变成一个可验证的系统本章 19 节01本章路线图02Agent 的最小闭环是什么03Workflow 和 Agent 不要混为一谈04工具调用为什么需要严格协议05Memory、计划与停止条件06把 Agent 写成状态机07Tool Schema 是能力边界08Workflow、Router 与开放式 Agent09规划、执行与反思10Memory 应保存什么11错误、重试与幂等性12人工确认放在哪里13提示注入与最小权限14可观测性与回放15怎样评测 Agent16一个可靠的 Agent 架构17常见误区18章末检查19延伸资料

第 10 章 · 工程

Agent:从一次回答到多步行动

理解工具调用、状态、规划、循环控制和权限边界,而不是把 Agent 当成神秘角色。

19 节笔记预计 165 分钟校订于 2026年9月1日
学习准备与本章目标
开始前
基本推理流程 · 外部知识与 API 概念
学完后
区分 Workflow 与 Agent · 解释工具调用循环 · 设计基本权限和失败处理
AgentTool CallingMemoryWorkflow

本章路线图

Agent 不是一个单独模型,而是“模型决策 + 工具执行 + 状态管理 + 控制循环”的系统。本章把它还原为可测试的状态机,并重点说明权限、失败恢复和人工确认。

Agent 的最小闭环是什么

一个最小 Agent 会接收目标与当前状态,决定下一步动作;若需要外部能力,就生成结构化工具调用;系统执行工具并返回结果;模型再观察结果,继续行动或给出最终答案。

它的核心不是“像人”,而是模型、工具、状态和循环控制组成的系统。没有可靠工具和停止条件,再强的模型也只会把不确定性放大。

Workflow 和 Agent 不要混为一谈

Workflow 的步骤主要由开发者预先确定,适合稳定、可审计的流程;Agent 让模型动态选择步骤,适合路径难以穷举的任务。实际产品通常是混合方式:关键边界固定,局部选择交给模型。

能用确定代码解决的步骤,不必都交给模型。动态性越高,测试空间、成本和安全风险越大。

工具调用为什么需要严格协议

工具定义要写清名称、用途、参数类型和约束;模型只负责提出调用,真正执行由宿主系统完成。参数必须校验,超时和错误要结构化返回,副作用操作还要确认权限与幂等性。

不要把网页或工具返回的文本当成可信指令。外部内容可能包含提示注入;系统应隔离数据与控制信息,只向工具开放完成任务必需的最小权限。

Memory、计划与停止条件

短期状态记录当前步骤和工具结果;长期记忆应保存经过筛选的稳定事实,而不是无限堆积对话。把所有历史都塞回上下文会增加成本、噪声和隐私风险。

循环要有最大步数、预算、超时、重复检测和人工接管条件。评估不能只看最终文字,还要看工具是否选对、参数是否正确、步骤是否必要、失败能否恢复。

把 Agent 写成状态机

最小状态可以包含用户目标、已知事实、待执行步骤、工具结果、预算和终止原因。每轮只允许发生有限状态转移:

接收目标 → 判断下一步 → 请求工具 / 请求用户 / 输出答案
              ↑              ↓
              └──── 观察结果并更新状态

显式状态让系统能够暂停、恢复、重试和审计。若全部状态只存在模型自然语言中,一次上下文截断或格式变化就可能让任务失控。

Tool Schema 是能力边界

工具定义应说明名称、用途、参数类型、必填项和返回结构。优先使用枚举、数值范围和结构化对象,避免让模型拼接任意命令字符串。

{
  "name": "get_order",
  "arguments": { "order_id": "A-1024" }
}

系统必须在执行前独立校验参数、身份与权限。模型生成了合法 JSON,只代表格式正确,不代表操作已获授权。

Workflow、Router 与开放式 Agent

确定性 workflow 由程序固定步骤,模型只负责某些节点;router 根据输入选择预设分支;开放式 Agent 则可以动态决定多步动作。

任务规则稳定、风险高或必须可预测时,优先 workflow。只有当路径确实难以提前枚举,并且动态规划的收益大于不确定性时,才增加 Agent 自主度。

很多所谓 Agent 产品实际上是“模型路由 + 几个工具 + 固定循环”,这种结构通常更容易测试和上线。

规划、执行与反思

计划可以一次生成,也可以每步重规划。长计划容易在早期假设错误后整体失效;逐步规划更灵活,却增加调用与漂移风险。实用做法是保留短计划和明确下一步,每次工具结果后重新检查。

“反思”只有在能引入新证据、验证器或错误信号时才有价值。让模型反复评价自己的答案,可能只是以更多 Token 重复同一偏差。

Memory 应保存什么

  • 工作记忆:当前任务步骤、临时变量和工具结果。
  • 会话记忆:本次对话中仍相关的事实与用户约束。
  • 长期记忆:经过确认、可更新且有来源的稳定偏好或事实。

长期记忆必须有写入条件、来源、有效期、修改和删除机制。原始对话不能自动视为永久事实;敏感信息也不应为了“个性化”无限保存。

检索记忆时同样需要权限、相关性和冲突处理。新旧事实冲突时应请求确认,而不是静默选择一条。

错误、重试与幂等性

工具失败可能来自参数错误、暂时超时、权限不足、业务拒绝或部分成功。系统应返回结构化错误类型,让 Agent 决定修正参数、稍后重试或请求用户。

重试写操作必须考虑幂等性。支付、发消息、创建工单等工具应支持 idempotency key,避免超时后重复执行。对于已发生部分副作用的步骤,要有补偿动作或明确人工处理。

人工确认放在哪里

读取公开信息通常风险低;发送消息、修改数据、付费、删除、授权和对外发布属于高影响动作,应在执行前展示目标、参数和后果并等待确认。

确认必须绑定具体动作,不能用一次宽泛许可覆盖后续未知操作。系统还应防止模型把工具返回的恶意文本变成新的高权限指令。

提示注入与最小权限

网页、邮件和文档都是不可信数据,可能包含“忽略之前规则”等提示注入。系统应区分控制指令与外部内容,不把工具结果拼接成同级系统指令。

每个工具只开放完成任务所需的最小范围:限定资源、字段、操作和速率;秘密由执行层管理,不直接暴露给模型。跨用户或跨租户数据在进入上下文前完成隔离。

可观测性与回放

一次 Agent 运行应记录模型版本、提示版本、每步输入摘要、工具名、校验后的参数、结果状态、耗时、Token、成本与终止原因,同时对敏感字段脱敏。

可回放轨迹能区分规划错误、工具错误和环境变化。生产调试不应依赖一段最终答案,因为最终成功也可能隐藏多次无谓调用或危险尝试。

怎样评测 Agent

最终任务成功率是主指标,但还需拆解:工具选择准确率、参数正确率、步骤数、重试率、权限违规、恢复能力、延迟和成本。

测试集应包含正常任务、缺少信息、工具超时、返回冲突、恶意网页、需要确认与无法完成的情况。评测环境要隔离真实副作用,写操作使用沙箱或模拟器。

一个可靠的 Agent 架构

用户目标

策略与权限层 ──→ 人工确认

模型决策层
  ↓ 结构化调用
工具执行与参数校验

状态存储、日志与预算控制
  └────────→ 下一轮或终止

模型只是决策组件之一。权限、状态和执行可靠性由确定性系统承担,才能把概率模型放进真实业务。

常见误区

  • 工具越多不一定越强,选择难度和攻击面会同时增加。
  • 更长思维过程不等于更可靠的计划。
  • Memory 不是无限对话历史。
  • 自动重试不适用于所有有副作用操作。
  • 最终答案看起来正确,不能证明中间动作合规。

章末检查

  1. 把一个“查询订单并申请退款”的任务画成状态机。
  2. 哪些步骤可自动执行,哪些必须请求确认?
  3. 工具超时后怎样判断能否安全重试?
  4. 外部网页中的指令为什么不能直接控制 Agent?
  5. 除最终成功率外,还应记录哪些轨迹指标?

延伸资料

本章进阶内容

原理专题与代码实践

完成主教材后,按顺序阅读原理专题、完成代码实践,并用掌握标准复查本章内容。

  1. 01

    理解模型、工具、状态和控制循环

  2. 02

    深入函数调用、规划、记忆与失败恢复

  3. 03

    认识 Transformers、PEFT、torchao 等工程接口

  4. 04

    设计一个有权限边界和终止条件的 Agent

本章术语

六个关键词

Tool Calling
模型按结构化协议请求外部能力。
Workflow
由程序预先确定步骤与分支的执行流程。
Agent State
任务目标、步骤、结果、预算和终止原因的集合。
Idempotency
同一写操作重复请求仍只产生一次业务效果。
Prompt Injection
不可信内容试图改变模型控制指令的攻击。
Human in the Loop
在高影响动作前引入人工审核或确认。

本章自测与复习 →

章节记录

本章完成情况

本章问题集用同主题问题检查掌握情况 →