在AI用虚构填补缺失意图之前刹停——从基于知识的推理到基于存在的验证

Reddit r/AI_Agents 论文

摘要

本文提出了一种AI智能体协议,该协议使用声明式清单,将基于知识的推理替换为基于存在的验证,确保智能体仅询问缺失的信息,并基于声明的需求确定性执行。

在AI用虚构填补缺失意图之前刹停 从基于知识的推理到基于存在的验证 大多数人无法解释为什么“如果你不知道,就问”在实践中会失败。他们只知道确实如此:智能体会询问它已经知道的事情,却对那个真正重要的缺失细节保持沉默。问题不在于智能。问题在于模型没有客观方法来确定它是否有足够的信息来执行。在每个指令之下,它仍然在基于其内部推理做出决定。 这个协议用以下方式替换了那个问题:在Claude Code中很容易看到这种区别。默认模式可能会猜测预期的范围并继续执行。计划模式倾向于询问所有内容,包括已经可用的信息。但实际上两者都没有检查缺失了什么。 解决方案 执行不再依赖于模型认为自己知道什么。它仅取决于执行所需的信息是否存在。 存在 → 继续 缺失 → 询问用户或保持 仅查询缺失的信息。已经提供的信息永远不会被再次请求。这使执行从基于知识的推理转变为基于存在的验证。 为什么需要清单? 存在只能针对一组声明的所需信息进行验证。那个声明就是清单。没有它,“缺失”仍然是模型做出的判断。清单简单地定义了在执行一个工具之前必须存在哪些信息。结构在各领域中保持不变。只有清单内容发生变化。 为什么这很重要 随着MCP将智能体与工具提供者分离,任何一方都无法可靠地推断另一方的需求。提供者知道工具需要什么。智能体知道当前的对话。清单就是它们之间的契约。 为什么AI智能体总是遇到这个问题 大多数现代智能体框架已经将规划与执行分离,并支持工具调用。然而,它们仍然依赖模型来决定在调用工具之前是否拥有足够的信息。这意味着执行边界仍然依赖于模型的内部推理,而不是显式的验证步骤。该协议建议将该决策移出模型推理,放入声明式清单中,使得执行不依赖于底层框架而具有确定性。 它是如何工作的 上一节阐述了为什么执行必须依赖于存在而不是推理。本节展示了使其在实践中工作的机制。 分离 状态和执行逻辑保持分离。判断结果记录到状态中。执行只读取该状态——它从不重新推导。 验证 仅检查预定义的必填字段。AI在这里的角色是匹配,而不是推理。对于每个必填字段,它记录当前输入是使其已知还是未知。未知字段从不通过推理填充。 强制执行 AI不生成问题。它只将未知字段传递给用户。是否提出问题 → 由未知状态决定。用什么值填充 → 由用户决定。是否继续执行 → 由剩余未知字段的数量决定。 可追溯性 最终的JSON状态本身成为审计日志:已知什么,缺失什么,谁解决的,为什么允许或阻止执行。 核心 执行由记录的状态控制,而不是模型的内部状态。因此,每个问题都映射到一个声明的需求。每个问题都可以追溯到该需求。 这实际上是什么 这些都不是新东西。软件依赖输入验证和模式已经有几十年了。我们暂时停止应用这些想法,因为LLMs似乎足够智能来推理缺失信息。然而,对于执行控制,AI应该像任何其他软件组件一样:在行动之前验证输入。一旦智能体超越起草文本并开始触发实际动作,确定性执行变得比令人印象深刻的推理更重要。 在这里发帖是因为这不是Claude Code或任何单一框架特有的。它似乎出现在LLMs从生成文本转向通过工具执行动作的任何地方。好奇这个框架是否与您构建AI智能体的经验产生共鸣。
查看原文

相似文章