我给 AI 写的规矩只有一句话,还是撞了两次号 - 编程一生

我给 AI 写的规矩只有一句话,还是撞了两次号 - 编程一生

💡 原文中文,约1700字,阅读约需5分钟。
📝

内容提要

文章区分 Skill 与 CLI:Skill 是不执行的说明书,规定何时开工、走哪条分支、何时停止;CLI 是确定性脚本,负责计算、加锁、写入和重试。作者因多人多窗口抢号两次撞号,说明并发场景下规程无法约束同时操作,必须用脚本加锁。结论:凡两人同时操作会出错的事(如占号、算日期、管凭证),都不能交给模型。

🔎

延伸解读

并发场景下规程的失效

文章指出,即使规程写得再详细,也无法约束多人同时操作。作者两次撞号都因多个窗口同时读取最大号并写入,每一步都正确但合起来错误。这说明在并发场景下,自然语言规程无法保证一致性,必须依赖脚本加锁等机制。

Skill 与 CLI 的职责划分

Skill 是不执行的说明书,负责何时开工、走哪条分支、何时停止;CLI 是确定性脚本,负责计算、加锁、写入和重试。两者不是二选一,而是分工:Skill 保证每次都对,CLI 保证每次都一样。放错位置可能导致事故。

必须交给脚本的三类操作

文章明确三类操作不能交给模型:占号、算日期、管凭证。这些操作要么涉及并发竞争,要么依赖精确的当前信息,模型无法可靠处理。作者强调,只要两个人同时做会出错,这一截就必须是脚本,而不是写在说明书里。

Q&A

Skill 和 CLI 到底有什么区别?

Skill 是一份写给模型看的自然语言操作规程,不执行任何代码,只规定什么时候开工、走哪条分支、什么时候停下来问人;CLI 是确定性脚本,负责计算、加锁、写入、重试、回滚等所有会动手的事。CLI 保证每次结果一样,Skill 保证每次判断对。

为什么给 AI 写一句简单的规矩,还是会出现两个人同时抢到同一个号?

因为规程管得了“怎么做”,管不了“两个人同时做”。当多个窗口或机器人同时读取清单时,它们看到的都是当时真实的最大号,各自加一后写入,就会产生重复号。这不是谁看错了规矩,而是并发操作本身无法靠说明书避免。

怎么防止多人或多窗口同时操作时撞号?

把占号动作写成脚本,利用 git 的锁机制:脚本先拉取最新清单,计算新号,然后尝试推送;如果推送被拒(说明别人已经先改过),就重新拉取、重算、再推,最多重试八次。成功推送后号就写进远端,谁也抢不走。

哪些事情绝对不能交给 AI 模型去做?

凡是“两个人同时做会出错”的事情都不能交给模型,典型的有三样:占号、算日期、管凭证。这些必须用确定性脚本处理,因为模型有判断力但解决不了抢跑问题。

Skill 的渐进披露机制是什么?

渐进披露是指平时只有 Skill 的 description 一行元信息常驻上下文,当模型判断当前任务与某个 Skill 相关时,才把整篇 SKILL.md 正文加载进来。这样能大幅降低常驻成本,比如一个 149 行的 Skill 常驻成本只有 1 行。

Skill 和 CLI 在失败处理上有什么不同?

CLI 失败可以原样重试,因为它是确定性函数,相同输入必然相同输出;Skill 失败是模型没按规程走,同样的说明书下次可能走出另一条路,无法保证一致。

🏷️

标签

➡️

继续阅读