Anthropic 开源 ack-is-not-done-guard,用四态模型(acknowledged/working/artifact_delivered/proven_done)解决 Agent 工作流中「声称完成≠真实完成」的常见陷阱。
在基于文件的 Agent 工作流中,我们不断遇到同一种失败模式:更新消息声称“已完成”,背后却什么都没有——没有产物,没有实际运行过的检查,也没有任何日后可以拿出来佐证的东西。这并非恶意,只是“已确认收到请求”和“已证明工作完成”之间存在一道鸿沟。
于是,我们从自己的内部工具中抽取出能解决这个问题的最小部分,并将其开源:ack-is-not-done-guard。这是一个用于 Claude Code 文件工作流的零依赖验证器。
它定义了四种状态——acknowledged、working、artifact_delivered 和 proven_done。只有最后一种状态可以将 completion_claim 设置为 true,而且必须至少存在一个产物,并至少记录一项非空检查;该检查必须标记为已通过,且包含非空的证据。验证采用“失败时关闭”(fail-closed)策略:如果记录中列出了某个产物,其路径就必须能够解析到真实存在的文件,否则验证失败。
这不是一个框架,也不会替你监控任何内容。如果你已经在运行一套规模更大的 Agent 运维系统,可以把它作为底层的完成状态检查层接入。如果还没有,那么模板、响应契约、示例和测试就是它提供的全部功能界面——仍由你现有的流程创建和更新记录;它只负责拒绝不符合既定 schema 或未通过文件存在性检查的完成记录。
坦诚地说,它存在一些限制:目前仅适用于 Claude Code 的文件工作流——尚不支持 Codex 和 Cursor,也未针对二者进行验证。它检查的是内部一致性,例如路径是否存在、验证条目是否记录为已通过且包含非空证据,以及是否遵循 schema;它不会判断产物本身是否正确,也不会判断所运行的检查是否恰当。项目采用 MIT 许可证,以自助使用为主,不提供配置支持。
如果你自己的 Agent 工作流也遇到了这种“已确认收到”和“真正完成”之间的鸿沟,很想知道你正在用什么方式发现并阻止这类问题。
如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。