在AI用虚构填补缺失意图之前刹停——从基于知识的推理到基于存在的验证
摘要
本文提出了一种AI智能体协议,该协议使用声明式清单,将基于知识的推理替换为基于存在的验证,确保智能体仅询问缺失的信息,并基于声明的需求确定性执行。
在AI用虚构填补缺失意图之前刹停
从基于知识的推理到基于存在的验证
大多数人无法解释为什么“如果你不知道,就问”在实践中会失败。他们只知道确实如此:智能体会询问它已经知道的事情,却对那个真正重要的缺失细节保持沉默。问题不在于智能。问题在于模型没有客观方法来确定它是否有足够的信息来执行。在每个指令之下,它仍然在基于其内部推理做出决定。
这个协议用以下方式替换了那个问题:在Claude Code中很容易看到这种区别。默认模式可能会猜测预期的范围并继续执行。计划模式倾向于询问所有内容,包括已经可用的信息。但实际上两者都没有检查缺失了什么。
解决方案
执行不再依赖于模型认为自己知道什么。它仅取决于执行所需的信息是否存在。
存在 → 继续
缺失 → 询问用户或保持
仅查询缺失的信息。已经提供的信息永远不会被再次请求。这使执行从基于知识的推理转变为基于存在的验证。
为什么需要清单?
存在只能针对一组声明的所需信息进行验证。那个声明就是清单。没有它,“缺失”仍然是模型做出的判断。清单简单地定义了在执行一个工具之前必须存在哪些信息。结构在各领域中保持不变。只有清单内容发生变化。
为什么这很重要
随着MCP将智能体与工具提供者分离,任何一方都无法可靠地推断另一方的需求。提供者知道工具需要什么。智能体知道当前的对话。清单就是它们之间的契约。
为什么AI智能体总是遇到这个问题
大多数现代智能体框架已经将规划与执行分离,并支持工具调用。然而,它们仍然依赖模型来决定在调用工具之前是否拥有足够的信息。这意味着执行边界仍然依赖于模型的内部推理,而不是显式的验证步骤。该协议建议将该决策移出模型推理,放入声明式清单中,使得执行不依赖于底层框架而具有确定性。
它是如何工作的
上一节阐述了为什么执行必须依赖于存在而不是推理。本节展示了使其在实践中工作的机制。
分离
状态和执行逻辑保持分离。判断结果记录到状态中。执行只读取该状态——它从不重新推导。
验证
仅检查预定义的必填字段。AI在这里的角色是匹配,而不是推理。对于每个必填字段,它记录当前输入是使其已知还是未知。未知字段从不通过推理填充。
强制执行
AI不生成问题。它只将未知字段传递给用户。是否提出问题 → 由未知状态决定。用什么值填充 → 由用户决定。是否继续执行 → 由剩余未知字段的数量决定。
可追溯性
最终的JSON状态本身成为审计日志:已知什么,缺失什么,谁解决的,为什么允许或阻止执行。
核心
执行由记录的状态控制,而不是模型的内部状态。因此,每个问题都映射到一个声明的需求。每个问题都可以追溯到该需求。
这实际上是什么
这些都不是新东西。软件依赖输入验证和模式已经有几十年了。我们暂时停止应用这些想法,因为LLMs似乎足够智能来推理缺失信息。然而,对于执行控制,AI应该像任何其他软件组件一样:在行动之前验证输入。一旦智能体超越起草文本并开始触发实际动作,确定性执行变得比令人印象深刻的推理更重要。
在这里发帖是因为这不是Claude Code或任何单一框架特有的。它似乎出现在LLMs从生成文本转向通过工具执行动作的任何地方。好奇这个框架是否与您构建AI智能体的经验产生共鸣。
相似文章
给AI编码智能体一个确定性的“架构检查器”,使其不再假装“完成”
本文描述了给AI编码智能体一个确定性的架构检查器,该检查器检查事件风暴图中的机械性缺口和未决问题,确保智能体不会假装完成。
AI科学家何时应停止?面向自主发现的可验证实验引导与拒绝机制
本文介绍了Cartograph,一种为AI科学家设计的验证层,它结合了子空间实验引导、模糊性解析和库不充分检测。该框架在自主发现测试平台上优于基线,并回顾性地标记了A-Lab材料系统中不明确的声明。
没有停止策略的AI智能体只是一个昂贵的循环
关于AI智能体可靠性的实用说明,主张生产环境中的智能体需要明确的门控机制,包括证据阈值、重试预算和影响评估,而不是仅依赖记忆来确定任务是否完成。
如何捕捉AI智能体遗漏应执行操作的情况?
一位开发者探讨了检测AI智能体静默跳过操作时的挑战,强调了区分合理遗漏(如策略阻止)与失败之间的困难,并呼吁合作开发智能体可靠性工具。
智能体需要控制流,而非更多提示词
文章认为,可靠的 AI 智能体需要在软件中具备确定性的控制流和程序化验证机制,而不能仅仅依赖复杂的提示词链。