跳转到内容

长程工作在哪里断

长程 Agent 工作失败的三种方式——跑不彻底、结果不能用、永远不会变好——以及 OpenCorvus 里分别对应的机制。

长程能力是「模型 + harness」整体的属性,不是模型单独的属性。再强的模型,放进一个会丢任务状态的 harness 里,照样跑不彻底;一个从不复核结果的 harness,照样只会给你一份不能用的东西。

大部分失败可以归到三种。这一页把每一种点名,并给出对应的真实机制和它的归属。

一 · 跑不彻底

运行结束了,工作没结束——某一步被跳过,进程死掉,或者任务进了终态而目标只完成了一半。

范围在执行之前就写下来。 Requirements 阶段产出 REQ-N 条目,每条自带验收条件、明确的非目标, 以及它所依据的证据引用。分解由 Architect 负责,而不是谁先动手谁说了算。

顺序是声明出来的依赖,不是约定俗成。 专家团的工作流声明了哪些 Agent 会跑、各自依赖谁。任务 在整个生命周期里固定一条工作流。

进程丢了是恢复,不是重来。 物理归属是一份只追加的租约。进程消失后,协调器会在租约到期这个 确定性时间点上,把那个被遗弃的 assistant Turn 精确终结——时间点确定,所以并发的两个协调器会收敛到 同一份完成结果——然后才取得后继激活。每一条被接受的输入都要过同一个全序归约,其中每种状态都有名字; 没有东西会被静默丢弃,预算耗尽是一道显式栅栏,不是悄悄停下。

终态不是终点。 已进入 completedfailedcancelled 的任务,收到你的消息就会重开。 重开会在下一个 epoch 开启一轮新的执行,上一轮作为不可变事实原样保留。这里没有单独的重试或重新规划 控件——一个只能靠专用词汇才走得出去的状态,就是一个你用普通动作离开不了的状态。

二 · 结果不能稳定使用

运行完成并报告成功,但你拿到的是一份没法核对的总结、一个打不开的文件,或者一个没人重新推导过的数字。

交接是带类型的产物,不是散文。 worker 发布带来源和精确 locator 的 Artifact,下一个 worker 读的 是那个 locator。因果读边界是产出它的那个 Provider 步骤,所以只有此前步骤中已完成的产出可见——同一步 里并行的兄弟节点,不可能把未完成的结果泄漏到前面去。

宿主与 Agent 的自述分开记录事实。 文件变更和命令结果是宿主观测。不管 Agent 有没有提到它们, 它们都在——这正是 Agent 的总结之所以可核对、而不是只能采信的原因。

校验是具名阶段。 事实核查、完整性复核和视觉 QA 是工作流里的步骤,有自己的 Agent 和自己的产出, 而不是在提示词里加一句「请再检查一遍」。当交付物是一种已限定的文件时——今天是可编辑演示文稿这一种——Work Artifact 路径会真的渲染并检查它,校验回执才是「已交付」的凭据。

三 · 永远不会变好

第十次运行还在犯第一次的错,因为你纠正过的东西,没有任何一点活过它发生的那段对话。

专家团可以按你说过的话修订。 说出一条长期有效的偏好——一条下次同类任务还会适用的偏好—— 宿主就会复制精确的已安装版本、套用改动、把结果校验成可运行的包,并连同你陈述的这条偏好一起挂起。 你接受,它才安装。见专家团怎么进化

也可以按度量结果修订。 进化实验室会在任何候选出现之前,先冻结目标版本、用例、评分器、环境、 臂序、预算和变异面,然后跑对照臂,产出完整性审查与对比建议。

两条路径都不会自己安装任何东西。 提升、恢复、反馈修订,各自都需要一条绑定到那个精确项目、任务与根 Session 的 真实操作者确认消息。

真实边界

长程不等于无限执行,也不等于永久无人值守。

工作只在你的 OpenCorvus 运行时在线时继续。产出质量仍取决于你选的模型、它能访问到的来源、你安装的 能力,以及这一轮拿得到的证据。对外副作用仍受权限规则约束。

相关