跳到主要内容

“规划并执行”只是营销而非契约:将计划依从度作为一等 SLI

· 阅读需 10 分钟
Tian Pan
Software Engineer

智能体(Agent)打印了一个五步计划。第三步是“从发票服务中获取用户的账单历史”。追踪链路(Trace)显示,第三步实际上调用了订单服务,关联了一个过时的客户表,并产生了一个看起来正确的数字。输出通过了评估(Eval)。六个月后,财务部门发现仪表盘与事实源(Source-of-truth)悄然出现了 4% 的偏差,复盘时才发现了这次回归(Regression)。

没有人写出 Bug。规划器(Planner)写下了一份执行器(Executor)从未签署的契约。

这就是“计划与执行”架构在其优雅的架构之下所掩盖的失败模式。这种模式被推销为一种赋予智能体长程连贯性的方式:由一个强大的模型起草计划,较弱的模型执行步骤,计划起到脚手架的作用。在实践中,计划只是一种“营销产物”——在 t=0 时发出的一个看起来合理的预告,随后在 t>0 时发生的每一件趣事都会迅速令其失效。追踪链路显示了计划,追踪链路也显示了行动。但几乎没有人去衡量两者之间的距离。

计划是预测,而非契约

默认的心理模型是错误的。大多数团队对待规划器的输出就像对待函数签名一样:一个具有约束力的意图声明,而执行器是具体的实现。但规划器并没有强制执行权。它只是输出文本。执行器(通常是一个独立的智能体循环,通常是不同的模型)可以自由地解释、跳过、重新排序、替换工具,甚至发明从未规划过的步骤。在 LangGraph 或 deepagents 的参考架构中,没有任何规定要求行动集必须是计划集的子集。重规划器(Replanner)之所以存在,正是因为偏差是预料之中的。

利益相关者在追踪链路中看到的是位于日志顶部的计划,看起来权威可靠。而实际执行的内容位于下方,通常分散在数十个工具调用中,其参数在文本上与计划的描述并不匹配。视觉层级在撒谎。计划读起来像契约,实则只是预测。

这之所以重要,是因为“计划与执行”智能体的可审计性故事是建立在“计划能告诉你发生了什么”这一假设之上的。在合规审查、事故后分析和评估分类中,工程师和评审员往往锚定在计划上,而仅对行动进行抽查。如果计划看起来合理,最终答案也看起来合理,中间过程就会被跳过。而回归(Regressions)往往就潜伏在这些中间过程中。

为什么步骤正确性会掩盖失败

标准的智能体评估标准衡量的是步骤级的正确性:每个工具调用是否返回了正确类型的结果,每个推理步骤是否保持了事实依据(Grounded),最终答案是否完成了任务。这些是必要的指标,但还不够。

一个“计划与执行”智能体即使在步骤正确性上达到 100%,仍可能背离其计划。考虑三种现实世界的失败形式:

  • 替换漂移(Substitution drift):计划说“使用 v2 搜索 API”。执行器使用了 v1,因为 v1 更便宜且结果看起来相似。每个步骤在技术上都是正确的,但计划已死。
  • 步骤省略(Step elision):计划说“在发送前验证客户的授权记录”。执行器认为验证已隐含在用户的请求中,从而跳过了这一步。在这种情况下输出是正确的,但在接下来的上千个案例中,合规性已然崩塌。
  • 隐形重规划(Stealth re-planning):计划说“如果 A 返回空结果,请询问用户”。执行器却静默地调用了一个后备工具并返回了一个猜测的答案。面向用户的输出看似合理。计划宣称会升级(Escalation),但追踪链路中没有任何体现。

步骤正确性问的是“每一个行动是否都说得通?”计划一致性(Plan Adherence)问的是“智能体是否在做它声称正在做的事情?”这是两个不同的问题,只有第二个问题能保护你免受“既定策略”与“实际行为”之间缓慢漂移的侵害。

deepeval 的 PlanAdherenceMetric 是这一理念的早期库实现之一——从追踪链路中提取任务和既定计划,然后让 LLM 裁判对实际执行步骤与计划的匹配程度进行评分。实现细节各有不同,但这种思维框架的转变比具体指标更重要。

计划与行动的分歧指标

将分歧视为一个可衡量的量,而不是二元判断。一个实用的指标需要四个要素:

  1. 计划提取:规划器的输出必须足够结构化,以便进行比较。如果你的规划器输出自由格式的散文,你就是在对幻觉进行字符串匹配 QA。强制其进入类型化模式(Typed Schema):具有明确工具意图、预期输入和明确成功条件的有序步骤。这是不可商量的基础设施。
加载中…
References:Let's stay in touch and Follow me for more thoughts and updates