01 · AI Circularity Ledger
自主性需要验收测试

一个带着记分板的商业循环。
结论很简单:自主性需要验收测试。一个能力很强的智能体,可以正确执行许多步骤,最后仍没有完成任务。它可能停在保存记录前一屏,把“表单已提交”误当成“对方已接受”,或者在公开页面仍显示昨天内容时报告成功。每一步看上去都聪明,业务结果仍然没有交付。
OpenAI 的 Ironclad 案例描述了一种企业流程:电脑操作与验证、审批、异常处理共同存在。真正重要的不是光标自己移动,而是模型只是整个流程的一部分,结果仍需通过复核。OpenAI Ironclad 案例
验收测试让一人研究部门可以委派执行,同时保留判断。运行之前先定义什么状态算完成、智能体可以行使什么权限、目的地需要什么证据,以及出现模糊状态时如何恢复。之后只按这些条件评估结果。自主性由此从承诺变成可测量的运营合同。
任务是一项状态转换
多数提示词描述活动:研究一个主题、更新页面、提交记录、发布今日版本。活动容易看到,却难以结算。状态转换更精确:运行前什么是真的,运行后什么必须是真的,哪一份证据证明变化。
以出版为例。初始状态可能包含带日期的来源、未发布草稿和受保护的生产分支。最终验收状态则要求四个完整语言版本、候选修订上的通过构建、已合并提交、生产部署,以及每个 canonical 路由的公开回读。写完草稿只是一项转换,本地构建通过也只是另一项。两者都可以成功,而出版仍未完成。
最后一个可见动作不能代替最终结果。点击按钮可能只创建请求、排队任务或打开确认页面。只有定义的状态真实存在并且能被独立读取,任务才结束。无法读取时,状态就是 UNKNOWN。这个词防止流程把希望写成事实。
状态条件应当足够小,可以直接检查。与其写“让网站更好”,不如要求“canonical 路由返回 HTTP 200,包含当日标题,声明正确语言,并对应已合并修订”。智能体因此能收集精确证据,而不是猜测满意的含义。
权限必须写进测试
验收测试还要定义智能体不能改变什么。系统即使产出了所需页面,如果同时改动仓库设置、暴露凭证或发送未经授权的消息,依然失败。结果与权限属于同一份合同。
把允许动词和禁止动词并列写清。读取公开来源、编辑任务文件、创建分支和 PR 可以被允许;修改 DNS、购买服务、发送求职申请、执行交易仍然禁止。测试两端都要覆盖:所需状态已经出现,受限状态没有改变。
OpenAI 的 Astra 公告强调电脑操作和专业工作,也描述了管理员控制与安全监测。提供方评测可以说明模型在特定条件下的表现,却不能替代具体流程的权限地图。GPT-6 Astra
因此应保留一份简短权限收据,列出接触的账号、采取的外部动作、改动的设置和保持未动的禁止类别。出版收据可以明确:没有修改 DNS、绑定、秘密或账号设置。这也是成功的一部分。
完成存在于目的地
软件工作很容易停留在本地证据:文件存在、测试通过、命令退出码为零。这些事实重要,却可能仍在目标上游。目标是公开文章时,目的地就是公开路由;目标是送达消息时,目的地就是接收者线程;目标是保存文档时,目的地就是耐久存储及其回读。
目的地证据有三层。第一是身份:结果是否到达预定路由、线程、记录或账号。第二是内容:目的地是否包含预期正文、日期、语言和修订。第三是确认:目的地是否接受写入,写入后是否能够重新读取。
浏览器超时因此属于模糊状态。请求可能在提交前失败,也可能已经成功但响应丢失,还可能继续排队。重复点击会制造副本。在回读解决之前,安全状态是 UNKNOWN。恢复应从观察开始,而不是再次点击。
同样,PR 合并只能证明源代码状态,不能证明生产发布;绿色部署作业只能证明执行,不能证明所有路由提供正确字节。最后一步必须重新打开公开目的地并核对内容。
区分步骤成功与任务验收
模型提供方常报告任务或基准表现。运营者还需要另一个分母:被验收的任务。一次运行可能完成五十次工具调用,却因为最终产物不完整而得到零个验收任务。步骤成功衡量机械动作,验收任务才衡量价值。
记录尝试任务、验收任务、人工介入、恢复事件和未解决结果。所有重试都保留在分母中。如果十项任务完成八项,但六项需要介入,两个事实都要写出。如果一项结果仍模糊,就记录九项已解决和一项 UNKNOWN,不把不确定性转换为成败。
成本也应使用同一单位。单次尝试的 token 成本可能下降,而重试与审核让每项验收任务的成本上升。把模型、工具和人工恢复时间相加,再除以验收结果。目的不是虚构精度,而是找出速度是否只是把工作转移给监督者。
OpenAI 的电脑操作指南建议隔离环境、允许列表,并让人确认有后果的动作。这些控制点也是测量点;每次确认与介入都可以记录,使边界可见。电脑操作指南
建立五部分验收卡
一张有用的验收卡应能在一屏内看完。第一栏是初始状态:带日期的输入、当前修订、现有所有者和保护工作的锁。这样新的智能体不会覆盖有效资料,也不会与活跃所有者竞争。
第二栏是权限:列出允许的账号、允许的外部影响和明确排除项,同时写出需要升级的决定。常规重试可以保持自主;花钱、修改身份控制,或向未经授权的渠道发布,需要新的边界。
第三栏是目标状态:尽量写成机器可检查条件,明确文件、路由、语言、schema、检查和收据。仍需判断时,把编辑或风险标准写成可观察要求。
第四栏是证据:指出哪一份来源、日志、哈希、公开响应或确认对应每个目标条件。证据必须绑定实际修订。相似页面的截图或另一个提交上的构建不能满足条件。
第五栏是恢复:定义超时、部分写入、旧锁、测试失败或来源不可用时的动作。模糊状态默认先检查。复用不可变输入,只有此前影响已知或操作幂等时才重试。保留失败证据,让下一次从现实继续。
在运行之前写验收测试
结果出现后才写测试,很容易让评分标准围绕已有产物漂移。预先声明条件能反转这种诱因:强结果可以快速通过,漂亮的半成品仍必须保持未完成。
测试无需预测每个实现细节,只需锁定结果、边界和证据。智能体可以发现更好的来源、更简单的脚本或更安全的恢复路径,只要最终状态和权限没有改变。
这与 NIST AI 风险管理框架的纪律相似:治理上下文、映射风险、测量行为、管理观察到的结果。框架不会提供每日发布器的具体检查,但它说明了为何测量必须和治理连接,而不是孤立评价能力。NIST AI RMF
NIST 的生成式 AI Profile 进一步强调生成系统的特有风险和有文档的控制。对小型运营者,最实用的翻译是:记录来源,定义人工监督,测试失败路径,并保留修正声明所需的证据。NIST 生成式 AI Profile
测试不顺利的路径
只在顺利路径上成功的工作流,仍然只是辅助演示。可靠自主性需要有边界的失败测试:在最终写入前断开网络,返回过期会话,让一个语言文件不完整,或在提交后模拟提供方超时。系统应当停止、报告准确的不确定性,并保留可恢复状态。
无需制造戏剧化混乱。只选择日常运行可能出现、且错误处理会产生重复、虚假声明或不安全外部影响的失败。一两个精心选择的测试,常比再跑一次成功流程更有价值。
恢复应当可继续。日期状态文件记录哪些门槛已通过、哪些仍开放;不可变源字节与哈希让下一次无需重建证据;幂等通知键阻止重试发送重复成功消息。
智能体也需要知道何时放弃。由无关活跃所有者持有的锁应阻止新工人;由本工人的监督器持有的锁可能完全正常。进程祖先、日期所有权和最近进度可以区分两者。验收从确认谁拥有状态开始。
一个人也能做的小实验
选择一个每周任务:有用、可逆、没有重大外部影响。只读研究简报、本地报告构建或 staging 网站审计都适合。冻结一份输入,写下五项验收条件,手工运行一次,再让智能体运行三次。
每次记录耗时、是否验收、介入、恢复、模型与工具费用、未解决状态。保持相同信息预算。看到手工结果后,不要只改进智能体输入;除非下一次手工运行也得到同样改进。
审核被拒绝的工作。拒绝可能暴露薄弱验收规则、缺少工具权限或脆弱恢复路径。一次只改变一个机制,用匹配任务重跑,并保留先前结果。这样得到的是围绕模型的运营系统证据。
晋级标准很清楚:智能体应提高验收结果,或在不扩大权限、不隐藏不确定性的前提下降低总工作。如果只是把执行时间转成审核时间,就维持辅助模式。如果能完成结果并留下干净收据,再逐步扩展任务。
收据本身成为产品
自主系统通过让工作容易核验来建立信任。收据应列出输入哈希、所选来源、产出修订、测试、外部影响、目的地检查和未解决缺口。读者应能区分事实与推断、完成结果与未来计划。
这套纪律也会改善写作。每个中心声明需要来源,每个发布声明需要公开回读,宣传语言便失去藏身空间。最终产物更平静,因为信心与证据一致。
验收测试不会让智能体永不出错。它让失败可读、恢复有边界。这比不中断的工具调用动画更有价值。一人组织只有在每项任务都能证明改变了什么、保留了什么、什么仍是 UNKNOWN 时,才能安全地委派更多。
从一张卡开始:定义状态、权限、结果、证据和恢复,再让智能体选择路线。清晰验收边界内的自由,才是可运营的自主性。
分类与关键词
分类: Agentic AI · Operating Systems
关键词: 智能体验收测试、电脑操作、自主工作流、目的地核验、恢复、权限边界
Hashtags: #AgenticAI #Autonomy #AcceptanceTests #IAmRobin