跳到正文

Skills

verify-before-claiming

在报告任务完成之前,先跑那个「若未完成就会失败」的检查——解释不是修复。

模式来源: clean状态: activev0.1.0 · Apache-2.0

由读过该卡片的评审者赋予,而不是文件自我声明的。智能体在处理不可信内容的运行中提炼出的卡片,生来即被标记为受污染,在被检索之前会一直等待评审。

何时会想到它

  • 改动做完了
  • 准备汇报成功
  • 这个修复看着没问题
  • 总结做了哪些事

价值通常在「避免」和「检查」里。「该做」是人人都会写的那一节。

上面的卡片正文是译文。英文原文才是 CLI 导入的内容、智能体运行时读取的内容,也是下方哈希所证明的内容。

触发

你正准备说一项任务已经完成。从"修好了这个 bug"到"更新了配置",再到"测试现在应该能通过了",都算。

如果这项任务本来就是要去解释、评审或调查某件事,这条就适用。这类任务以一个答案收尾,硬要求它们拿出一个 diff,本身就是一种错误。

该做

  1. 指出如果这项工作真的发生了,哪个可观察的东西会有所不同。一个内容变了的文件、一个退出码翻转了的命令、一行现在存在了的记录。
  2. 去检查那个可观察的东西。真的运行那条命令,真的把文件读回来看。
  3. 报告你实际看到的东西,包括命令和它的输出——而不是你对它的预期。
  4. 如果没有任何可观察的东西发生变化,就平实地说出来,而不是去描述你原本打算做的那个改动。

避免

计划当成结果来汇报。这种失败读起来是这样的:"我更新了处理函数(handler),让它在分支之前先检查令牌"——流畅、具体、在意图层面上技术上准确,却描述的是一次从未真正写入磁盘的编辑。

这很有诱惑力,因为一段令人信服的解释感觉起来就像证据。但它不是。这段解释是由同一个过程产生的,不管那次编辑有没有真正落地,它都会产生这段解释,所以它对这件事到底有没有发生,不携带任何信息。

也要避免去检查与论断相邻的东西:跑一遍完整的测试套件,证明的是这套测试套件通过了,这和证明这个改动做到了这件事,不是一回事。要选那种在改动之前本该会失败的检查。

检查

论断和证据描述的是同一个事件,而且证据来自机器本身。

具体来说:一个非空的 diff、一个之前失败现在通过的测试、粘贴出来而不是转述出来的输出。如果你拿不出这样的东西,诚实的汇报就是"我没能验证这一点",这是一句有用的话,也就一句话的事。

风险

过度使用这条,会把一次两行的文档修改变成一场仪式,而且确实有些任务的结果本来就是一段文字。检查的成本应该远低于出错的成本。

更隐蔽的风险是:一个永远都会通过的检查,比没有检查还糟,因为它把一个猜测洗白成了一个已验证的论断。如果验证不可能失败,它就什么都没在验证。

如何使用

卡片就是数据。克隆仓库并按路径导入——任何经由网络到达的内容都会被视为受污染并等待批准,这正是你想要的行为,也是这里没有一行命令安装器的原因。

git clone https://github.com/brcampidelli/chimera-agent.git
chimera skills-import chimera-agent/skills/verify-before-claiming/SKILL.md

完整性

文件发布版本的 SHA-256。导入方可以据此核对收到的内容与本页展示的一致。

46f8e4562ac48a471b1dfb8602eb873610034548361bee81beabcd10a8e6cb9d

在仓库中阅读该卡片