深入理解 AI Agent · 第一章 · 剩余 7 题

选择 / 死循环 / 三维度 / 工作流 / 受限动作 / 交接 / 会过时的手段

每题:结论 → 分点 → 图(第 4、9 题)

第 1 题 ★★ 只能加一项能力,加什么

答案:加上下文。模型是外购的(你改不了),工具是加法(边际递减快),只有上下文是你**能工程化、且直接决定能力上限**的那一项。
你的处境该选
知识库和工具已就绪,失败集中在「想不明白」更强模型
模型够强,但接不到系统/数据更多工具
任务开放、数据杂、口径不统一(大多数企业场景)更丰富的上下文

一句话判据:工具决定「能不能碰到」,模型决定「单步想得对不对」,上下文决定「有没有可用的信息」。前两个都能买,第三个只能自己建。

第 4 题 ★★ 还有哪些情况会死循环,怎么检测和终止

答案:死循环的本质不是「没有工具结果」,而是「没有可判定的进展信号」。所以检测要盯「状态是否变化」,不能只盯「是否报错」。

六种常见死循环(除了工具结果缺失)

类型表现
空结果当成功工具返回 []/null,模型认为完成,反复"确认"
模糊报错只返回 500 / timeout,模型原样重试同参数
缺失败语义没有"放弃"这个动作,只能一直试
自我怀疑自评"还不够好"→ 重写 → 再自评,标准模糊
多 Agent 互等A 等 B 的输出,B 等 A 的确认
检索同质化每次都召回同一批文档,换词不换结果

图:4 个信号 → 3 层终止

检测信号(每轮采集) ① 同参数重复调用率 > 30% ② 状态指纹(哈希)连续 N 轮不变 ③ 预算消耗速率异常(token/步数) ④ 进度评分停滞(子目标数不增) 三层终止 软层:换策略 提示「同参数已失败 3 次,换方法」 硬层:预算上限 最大轮数 / token / 时长,触顶即停 熔断层:状态不变即中止 冻结现场 + 移交人工 + 保留轨迹 ★ 三层都要有:只有硬层 = 白烧预算;只有软层 = 模型不听
最有效的一件事:让工具返回四态——success / empty / error / partial,且 error 必须带「建议下一步」。模型有了明确语义,就不会瞎试。

第 5 题 ★ 用感知/行动/策略分析一个你在用的产品

以编程类 Agent(如 Claude Code / Codex)为例。感知=文件系统+终端回显+报错;行动=读写文件+执行命令+跑测试;策略=「规划→执行→验证→修正」。
维度设计评价
感知文件树、diff、命令输出、错误栈✅ 信息闭环完整
行动开放式(任意命令)✅ 能力强
策略自己验证(跑测试)⚠️ 依赖模型自评,缺外部基准

不合理处:①没有「变更预览」——改 10 个文件前看不到影响面;②长任务没有里程碑,失败后要重头再来;③成本不可见,跑飞了才知道贵。

我会改进 3 点:①每次批量改动先出 diff 预览 + 一键回滚;②把长任务切成可验收小步(每步有测试);③界面上常驻显示「已花 token / 剩余预算」。

第 6 题 ★★ 航班订票客服:工作流还是自主 Agent

答案:主链路用工作流,异常分支用 Agent,两者混合。订票是强合规、要可审计、要可复现的业务,不能交给模型自由发挥。
环节用什么理由
身份核验 / 查询 / 出票 / 退款工作流(状态机)步骤固定、必须留痕、错一步赔钱
多程组合 / 改签冲突 / 退票规则判定Agent规则组合爆炸,需要判断
用户模糊诉求("帮我搞个便宜的")Agent 先澄清,再回工作流需要理解,但执行必须回轨道

混合架构(推荐):外层状态机管「当前处于哪一步 + 允许哪些动作」;节点内部允许 Agent 自由推理,但输出必须回填到结构化槽位(舱位、日期、乘客、金额);槽位不全就回到工作流追问。

判据:规则能枚举 → 工作流;需要判断且信息不全 → Agent。

第 8 题 ★★ 受限动作空间什么时候反而更好

答案:当错的代价远大于慢的代价时,受限优于开放。
场景为什么受限更好
高风险 / 强合规(空管、医疗、支付)每个动作可审计、可回滚、责任可界定
延迟敏感(实时调度、语音助手)从预定义选项里选,一步到位,不"想"
需要评测与回归动作空间固定才能做基线对比
用户是新手限制选项 = 防误操作

反例(受限会拖累):探索型任务、创意生成、排查未知故障——这些需要"走没人走过的路"。

折中做法:默认受限 + 显式"申请扩展权限"。即先给 20 个安全动作,模型要越界时必须说明理由并请求确认——既可控又不憋死。

第 9 题 ★★ 用户不在线 / 很慢 / 指令模糊怎么办

答案:按「可逆性」分流。可逆的先做、不可逆的必须等、模糊的按最保守解释做并声明假设。
用户需要确认 动作是否可逆? 可逆 执行 + 留痕 事后通知(消息/邮件) 给一键撤销入口 不可逆 挂起 + 默认安全动作 超时 = 放弃,不是继续 到期提醒 + 升级到人 指令模糊 最保守解释 + 声明假设 澄清最多问一次,之后按默认走 不确定就问,不要猜着做不可逆的事

支撑机制(3 件)

机制作用
代理授权书预先约定:可做哪些动作、额度多少、有效期多久、谁可撤销
超时策略显式化超时 = 放弃并回滚,绝不"默认继续"
澄清次数上限最多问一次;第二次仍模糊 → 按最保守方案执行 + 告知
原则:宁可少做,不可做错不可逆的事。延迟的成本是「慢一点」,误操作的成本可能是「没法挽回」。

第 10 题 ★★★ 举一个会过时的工程手段

例子:手写 ReAct 提示模板与少样本脚手架。现在很多项目还在用「Thought/Action/Observation」长模板加 3~5 个示例来"教"模型怎么用工具——这正是最容易被模型迭代淘汰的东西。
工程手段为什么会过时
长 ReAct 模板 + 少样本模型自带规划与工具调用,模板反而约束格式、增加 token
为绕开上下文窗口做的复杂分块召回长上下文普及后,多数场景不需要精雕分块
规则式工具路由(if/else 派发)模型 tool-use 变强后,路由可交给模型
为稳定性做的极端降级(只允许一次调用)能力提升后,过度保守等于自废武功

不会过时的原则(对照):目标可验证、失败可恢复、边界可控、成本可测、行为可审计。手段会换季,原则不会。

判断标准:一个手段如果只是在「替模型做它现在做不好的事」,它会过时;如果它是在「保证系统在人不在时也不出错」,它会长久。