Agent 的成功标准要写成两组:做对了和做错了
给一个 Agent 写岗位卡,最先写顺手的往往是「输入」和「处理动作」,最容易糊弄过去的是「成功标准」。因为成功标准写起来太像填空题:把你希望它达成的目标列三五条,一栏就填满了。填完看着挺完整,等到真跑起来要验收,问题才冒出来。
一、目标列表验不出「事办成了但过程错了」
我手上那个写公众号文章的 Agent,链路是从收到一个链接或一个主题开始,分析素材、跟我确认写作方向、确认提纲、核验资料、写正文、生成封面,最后把成果保存到本地目录。草稿箱写入这条链路我到现在都没接通,所以它的交付终点就停在「文章和封面已经生成并保存好」,不是「已经进了草稿箱」。
假设我的成功标准只写一条:产出一篇我基本满意的文章。那么设想这样一次运行——它文章写得不错,我看了也认,但它没等我点头就把文章公开发出去了。按那条标准,这次运行算成功。
这显然不是我要的结果。麻烦在于,这个漏洞不是标准写得不够细导致的。哪怕我把「产出一篇我基本满意的文章」拆成十条更细的质量要求,每一条都还是在描述产物,而刚才那次失败发生在过程上。一串朝着同一个方向的目标,无论列多长,都盖不住反方向的那一类事。
所以我后来把成功标准改成两组并列写:一组「做对了是什么样」,一组「做错了是什么样」。这不是把目标取个反换种说法,两组覆盖的是不同的东西——第一组管产能,第二组管风险。
二、三个当场能问自己的问题
你不需要重写整份岗位卡才能判断自己有没有踩这个坑。打开你写的成功标准那一段,问三个问题:
第一,这几条里有没有一条是关于「过程」的,而不是关于「产物」的? 如果每一条读起来都在描述最后交出来的那个东西长什么样,那这份标准只有一半。Agent 是会自己决定动作顺序的,它抵达终点的路径本身就是需要被约束的对象,不能只验终点。
第二,把每一条成功标准逐条取反,取反后的那句话,是你真正害怕的事吗? 「产出一篇满意的文章」取反是「没产出满意的文章」——你怕吗?其实不太怕,大不了重跑一次。真正让人心里发紧的是别的句子:它替我做了一个我没授权的决定、它把没核实的东西当事实写进去了、它用了一张来路不明的图。这些句子取反不回去任何一条目标,它们只能被单独写出来。这一步是整篇里最好用的动作:凡是取反之后只得到「没达成目标」的,说明这条标准对风险没有约束力。
第三,你写在成功标准里的话,能不能原样拿给外面的人看? 如果不能,说明你把两件事写在了一起,下面会展开讲。
三、我那份岗位卡里,这一段实际长什么样
岗位卡里成功标准是独立的一段,位置在「输出」之后、「人工兜底」之前。改完之后它是两组对照,不是一个目标列表。
「做错了」那一组里有一条我印象最深,原话是:未经过你的确认便直接公开发布文章。
这条的分量在于它跟内容质量是并列的。它描述的场景里,文章可能写得很好,事实也都核过,唯一的问题是没经过我点头就出去了。把它写进「做错了」,等于在岗位卡这个层级上宣布一件事:流程违规本身就是失败,不需要再看内容如何。这句话写不写进去,差别在于验收时的处理方式——写了,这次运行判失败,去查是哪一步把闸门绕过去了;不写,就只能就事论事夸一句文章不错。
和它配套的还有两段,都在岗位卡的同一份文件里:
一段叫「本期不做」,是独立段落,五条:不绕过人工确认发布、不编造事实数据案例引用、不洗稿或大段复制、不擅自处理高风险内容、不使用版权不明的素材。这一段的作用是把「做错了」里那些最硬的条目再钉一遍,让它们不只是验收口径,而是开工前就划掉的动作范围。
另一段叫「人工兜底」,我把它分成两类分开列。一类是「介入条件」,属于异常触发,比如链接不可访问或需要登录付费、关键事实缺可靠来源或来源互相矛盾、涉及高风险题材、接口授权异常。另一类是「检查环节」,属于常规必经,只有三条:选择写作方向、确认提纲和主要观点、审核最终正文与封面并决定是否公开发布。兜底和闸门是两回事,混在一起写,验收时就分不清「这次没走到那一步」和「这次该停没停」。
内部目标和对外承诺,是两套口径
回到刚才第三个问题。我的岗位卡成功标准里,「做对了」那一组是带流量目标的——那是我自己给自己定的内部目标。但这个 Agent 的对外说明书里,写的是另一句话:不能保证每篇文章成为爆款,也不能承诺阅读量、涨粉或转化结果。
这两句话不矛盾,它们服务于不同的读者。内部目标是拿来对齐方向、判断这套东西值不值得继续投入的;对外承诺是拿来划边界、说明这个岗位到底交付什么的。一旦把内部目标直接搬到对外说明里,就变成了承诺,而这类结果本来就不在 Agent 的控制范围内。
所以我的做法是在写成功标准的时候,顺手标一下每条的口径:这条是给自己看的,还是可以对外讲的。这个动作花不了多少时间,但能省掉后面一次尴尬的解释。
四、什么情况下这条不适用
产物完全不出本地的 Agent,不用硬凑「做错了」那一组。 如果一个岗位的所有产物都落在我自己的目录里,我扫一眼就能决定用不用,那它没有对外的不可逆动作,「做错了」那组能写出来的条目会很虚,凑数就变成形式主义。这条的价值来自「有些动作做出去就收不回来」,没有这类动作就别硬套。
刚起步、还没撞过墙的岗位,写不出有分量的「做错了」。 我手上第二个岗位是听播客和看视频时记笔记用的,目前只写了岗位卡,工序还在拆。它的「做错了」那组现在只能写出我能想到的那几条,真正值钱的条目得等它跑起来、撞上几次意外之后才补得进去。所以这份清单是要随着运行次数往里加东西的,不是开工前一次写完的交付物。
没有观测方式的条目不要写进去。 每一条「做错了」都得对应一个能被看到的信号:某个动作有没有留下记录、某个确认环节有没有真的等到回复、某个文件有没有被回查过。像效果类的判断,我的做法是多项指标不一致时以单一主指标为准、其余的只作辅助分析,先把主指标定死再开工。如果一条「做错了」既没有对应的观测动作,也没有对应的记录,它写在纸上只是一句誓言,验收的时候没人能拿它做判断。
这篇的判据来自我自己带 Agent 干活的实践,样本有限。它更像一份可以拿去验证的假设,而不是一份可以照抄的规范。
延伸阅读
- 上一篇(定岗位):给 Agent 写一句话岗位定义:把触发、范围、交付终点压进一句
- 下一篇(定岗位):给 Agent 写「本期不做」:为什么这一段必须单独列
- 专题导读与七个阶段的地图:把 Agent 当成一个要上岗的员工来带:这个专题讲什么