Octomind 0.44 重写验证关卡:把 AI 智能体的「完成」变成可审计声明
AI 编程智能体工具 Octomind 发布 0.44 系列,把「任务已完成」从智能体自述改为带证据链的可审计声明,并引…
Octomind 是一家聚焦于 AI 编程智能体(coding agent)的工具厂商,于 8 月 17 日发布 0.44.0,随后同日内迭代 0.44.1,并最终以 0.44.2 收尾。该版本的核心目标,是解决长会话智能体运行中最棘手的工程问题:模型自行宣布「已完成」,但实际只改了三五个文件、且所谓的「测试已通过」发生在数千 token 之前、内容早已变更的状态。围绕这一痛点,0.44 把验证从「智能体的自我感觉」改为「必须留存证据的可审计声明」,并把规划从模型内部取出,交给外部管理器执行。
验证状态从内存标志升级为持久化策略
在此之前,验证状态以布尔锁存器的形式保存在监管者(supervisor)的内存中,随进程生死而消亡。一旦笔记本休眠或会话被压缩再恢复,监管者就会失忆,转而再次采信智能体的口头汇报。0.44 用「持久化验证策略」取代了这些临时锁存器:验证状态与会话一同序列化、在恢复时还原、被纳入治理哈希,并在长会话压缩后投射到目标复述中,从而保证进程重启或上下文压缩都不会抹去它。配套的「证据账本」(evidence ledger)同样跨重启保留,记录真实执行过的命令、改动与观察;轮次回答也写入独立账本,在恢复时从对话记录中重建,而非从历史消息里猜测。这一改动直接消除了一类误报——原本恢复后的轮次因账本被清空而看起来像验证缺失。
验证关卡要求带「形状」的证据
验证关卡(verify gate)是智能体自报完成时触发的检查点,也是本轮改动最深的部分。核心原则是:不再允许验证者输出整体的「看起来不错」。具体而言,任务分类器会从用户请求中推导出一组「证据条件」(evidence conditions),构成一份「完成即应成立」的履行清单。到达关卡时,验证者必须以结构化标签逐条回应这些条件,由确定性解析器逐项比对:未匹配的单一条件即可否决整体 PASS,缺失必要标签的响应只能获得一次格式级重试,实质性缺口无法靠重试蒙混过关。
为配合这一新关卡,验证者所看到的信息也被加厚:基准事实(ground truth)现在包含近期命令输出的滑动窗口,而不仅是最后一条;同时附带 git status,git diff 预算被分配到每个文件,避免一个大文件独占预算、遮蔽另外四个文件的改动。解析器的强制覆盖类别从四类扩至六类,包括命名形式与量化覆盖——能数清楚、能点名指代的请求,会得到对应能数、能点的条件;一类新的「未枚举类别」形态,则覆盖那种量化某个范畴但未列出成员的需求。
新引入的「来源位」(provenance bit)封堵了一个老漏洞:关卡现在能识别「事后验证是否仅通过读回完成」。智能体编辑文件后再回读自己刚写的产物,得到的是 diff,而非真正的检查;新版验证者可以分辨两者,并要求其给出行为层面的核验。验证者本身也被套上纪律:若配置的 verifier_model 失败,关卡在该轮直接失败关闭,不再悄悄借用智能体自身的模型;gap-fixing 预算(max_iterations,默认 2)耗尽时硬性停止轮次,而不是回退到更宽容的判断;即便智能体只是悄悄停止工具调用,也会被送往同一关卡;只有「仅需回答」的提问轮次(例如「这个函数为何要加锁」)才被豁免,不会被强行卷入变更检查。
两项支撑性改动让上述机制运行更稳:监管者调用改用模式强约束的 JSON 输出(支持的服务端做强制,不支持的做宽松恢复);分类器对格式错误响应获得有界重试,不再直接走回退路径。关卡自身也设有独立的 token 预算——max_tokens = 8192,归属 [supervisor.gate] 配置段,用以覆盖验证者推理与展示产物所需的容量。
规划被移交给外部管理器
0.44 在同一周期内完成的另一项结构性调整,是把规划从模型手中拿走。规划工具被整体移除,取而代之的是一个外部管理器:它持续观察工作进展,并维持清单的真实可信。模型不再自行组织 todo,而是面对一个外部观察者的检查。
长会话体验与运维细节
围绕上述核心改动,0.44 还附带了一批长会话用户长期要求的体验改进:会话标题加上模糊启动选择器;/new 命令被清理得更干净;新增 /monitor 用于长时挂起任务;MCP 超时终于能区分「慢」与「卡死」。
