一项调度器修改,在交接时可能留下这样的记录:
目标:暂停接收新任务,让正在执行的数据导入完成。
产物:核心补丁已保存;命令行入口尚未接通。
冲突:当前补丁会取消运行中的任务,测试也验证了这个旧行为。
下一步:修正暂停语义,再继续接线。
执行者:暂无。
没有 Agent 正在运行,工作仍然有明确状态。接手者甚至可以在读完上一场对话之前,就发现眼前最重要的缺陷:核心代码与当前目标不一致,直接接线会把错误行为送到用户面前。
这张记录是教学示例。它展示的是 Flowness 在公开提交 c9d6abe 中提出的 Work 设计;该版本仍将完整的跨 Agent 延续路径列为设计状态,本文不将例子当成已经完成的运行。设计与证据状态
地址背后,需要能连回依据
Work 为持续工作提供稳定的查询入口。但一个编号只能帮助找到工作,不能保证打开以后看到的是当前事实。
Flowness 将 Work 设计为底层记录的投影。代码留在仓库,测试结果指向对应版本,判断和变化留在事件记录;工作视图把这些事实汇集起来。核心补丁换了版本,视图应当能指出测试究竟检查了哪一个版本,而不只是显示一个绿色的“通过”。
视图还带有时间位置。例如,as_of_seq 表示已经汇总到哪一个事件。假如当前视图停在事件 147,而负责人在事件 148 改变了暂停要求,系统就有依据识别这份视图尚未包含新决定。WorkView 的设计
这样的入口,可以比一份交接摘要更可靠地支持后续行动。摘要解释当时怎样思考;当前视图还需要知道,哪些解释后来已经改变。
执行者中断时,第一件工作是核对留下了什么:原执行是否确实停止,补丁是否已提交,哪些文件仍在临时工作区,哪些结果已经检查。恢复过程由实际状态决定,不能沿用上一个 Agent 关于“快做完了”的估计。
随后,为下一次动作准备上下文。Flowness 把这份材料称为 Context Capsule:从一个明确的事实截点,选入当前目标、相关版本、有效约束、产物和待解决问题。在调度器例子中,接手者先要解决暂停语义冲突;此时给它完整的历史聊天,可能反而淹没决定下一步的几份材料。运行状态核对与上下文编译
新 Agent 开始自己的执行,推进同一个 Work。它产生的结果经检查后,成为下一次查询的依据。
前提变了,完成记录也要重新解释
暂停需求最初可能被理解为“停止所有任务”。负责人随后确认,运行中的导入必须完成。这项变化影响的不只是任务说明。
旧测试虽然通过,验证的却是取消任务。核心代码、测试断言和命令行帮助,都可能依赖同一个旧前提。与暂停无关的日志格式,则未必需要重做。
要进行这种判断,系统需要保留两种依赖:任务在执行顺序上怎样相接,以及产物建立在哪一版解释之上。只有前一种,系统知道接线在测试之后;有了后一种,才能发现测试所依据的要求已经过时。
Flowness 将改变后续工作的观察称为 Finding,再由 Reflow 定位受影响的前提和依赖,组织后续工作。这里的观察可以直接写成:“核心实现取消了运行中的导入,与当前要求冲突。”随后,计划先回到核心行为,再检查在途任务确实继续完成,最后接通命令入口。Finding 与 Reflow 的设计关系
已有产物仍然保留,变化的是它们还能支持什么判断。旧测试结果可以解释历史,不能继续支撑新要求已经满足的结论。
局部返工能否省力,取决于依赖记录是否准确。缺失的关系需要调查;影响范围不清时,扩大验证可能比精细分类更便宜。因此,这套设计仍需要在真实修改任务中检验:它帮助接手者少走了多少错路,又增加了多少记录成本。
持久化执行本身已有成熟工具。Temporal 可以通过事件历史恢复工作流状态,并接收 Signal、Update 等新输入;LangGraph 可以用检查点和持久化存储保存图状态与跨线程数据。Temporal 工作流、消息传递、LangGraph 持久化
Work 模型关注的是存下来的状态应怎样解释:目标的版本、被替代的判断、受影响的产物,以及接手者现在应该取得的材料。这些规则可以建立在现有执行引擎上。如果工单、仓库和工作流已经把关系保存完整,再造一份平行数据库只会增加同步负担。
“完成”以后,地址仍然有用
修好核心逻辑,并不代表后续工作都消失了。Flowness 区分四种状态,它们对应不同的接续动作:
| 状态 | 调度器例子中的含义 |
|---|---|
| 做成(built) | 已有可检查的暂停功能产物。 |
| 接入(integrated) | 命令入口与实际调用路径已经接通。 |
| 实际启用(activated) | 目标环境中的自然使用确实调用了这项能力。 |
| 接受(accepted) | 负责验收的人确认结果满足需要。 |
实际启用的定义排除了测试、演示、演练和仅完成部署。负责人的接受也应有明确对象,能够指出认领的是哪一版结果。启用与接受的定义
这让等待变得具体。功能可能已经接入,但还没遇到实际暂停需求;也可能真实使用过,负责人尚未验收。此时不需要让 Agent 一直运行,只需要保留等待的事件、负责的人,以及重新检查的条件。
等条件满足,再打开同一个 Work,核对当前版本,开始下一次动作。公开的接手演示规格准备检验的也是这条路径:执行者中断后,新执行者能否依据持久状态继续,而不依赖旧 Agent 的临时记忆。接手演示规格
对维护者而言,那个地址最终应当回答一件实际的事:今天再来处理调度器,应该从哪里动手。能持续回答它,工作才有机会跨过会话结束、人员更替和需求变化。
