新窗口接手时,“我们上次聊到哪了”不是一个合格问题
周岚是一名独立市场研究顾问。她接到一项 10 天任务:阅读 37 份客户和公开资料,建立 61 条证据记录,完成 8 张图表和一份 42 页进入策略报告。任务会跨设备、跨天进行,还要在第 6 天接收客户的新范围决定。
过去她主要依赖对话历史。新窗口打开后,她先让 AI 概括旧对话,再凭摘要继续。这样做看似省事,却让长任务反复出现三类问题:已经读过的资料被重新读取 11 次;旧窗口否决的分析口径又被采用 3 次;两个同名“最终稿”互相覆盖。
真正缺失的并不是更多历史文字,而是一份能回答“现在有效的决定是什么、哪项工作做到哪里、哪些产物可以继续用”的状态。周岚因此把对话改成执行界面,把外部状态包作为事实来源:
| 状态资产 | 数量 | 作用 |
|---|---|---|
| 项目章程 | 1 | 固定目标、边界、验收和批准点 |
| 决策记录 | 7 | 说明选了什么、为什么、替代项和影响 |
| 工作项 | 24 | 记录状态、依赖、负责人和完成证据 |
| 证据行 | 61 | 让报告主张回到来源位置 |
| 产物记录 | 18 | 管理草稿、图表、数据和批准版本 |
| 交接记录 | 12 | 每次窗口结束时声明下一步和风险 |
项目经历 13 个工作窗口和 12 次交接。第 8 个窗口故意不提供旧对话,只给状态包,新窗口在 4 分钟内确认当前阶段、未决问题和下一项动作;0 个已否决决定被恢复,未完成的 CHART-05 仍是 in_progress,等待政策复核的 W-14 仍是 已阻塞。本文是教学案例,人物、文件和时间用于说明方法,不代表某种模型的通用效果。
长任务真正缺的不是“更长记忆”,而是可核验的外部状态
对话历史同时装着用户要求、讨论、试错、工具输出、旧草稿和新决定。越长越难判断哪句话仍有效。摘要可以减少长度,却可能把一个后来才重要的限定条件压掉;新窗口即使读到全部历史,也要重新推断现在做到哪里。
周岚把信息分成四类:
| 类别 | 回答的问题 | 更新方式 | 不能替代什么 |
|---|---|---|---|
| 当前状态 快照 | 现在是什么情况 | 每次交接原子更新 | 不能解释全部历史原因 |
| 追加日志 日志 | 发生过什么 | 只追加,不覆盖旧事件 | 不能充当最新状态 |
| 版本化产物 | 实际做出了什么 | 新版本替代旧版本 | 不能靠描述代替文件 |
| 对话 追踪 | 当时怎样讨论 | 可归档、按需读取 | 不能作为唯一事实源 |
外部状态不是让 AI 永久记住一切,而是让任何新会话能用少量高信号记录重建工作现场。聊天记录仍可用于追溯语气和探索过程,但状态判断必须回到受控资产。
压缩、状态页、检查点和版本历史的职责不同,不能互相冒充:
| 机制 | 保留什么 | 最适合 | 单独使用的缺口 |
|---|---|---|---|
| 对话 压缩 | 近期讨论的高层摘要 | 同一会话继续推理 | 可能丢精确 ID、失败输出和旧版本 |
| 当前状态 | 最新工作面与下一动作 | 新窗口快速恢复 | 不解释全部决定历史 |
| 结构化笔记 | 未决问题、发现和依赖 | 跨多个步骤积累高信号信息 | 若不验收会把猜测写成事实 |
| 检查点 | 某一时刻的文件与运行状态 | 中断恢复,判断干净、未保存或状态未知 | 不能说明为什么采用该方案 |
| 决策 / 进度日志 | 选择和状态转换历史 | 追责、影响分析和反复争议 | 读取全部日志成本高 |
| 版本历史 | 实际文件变化与可恢复版本 | 比较、回退、重建产物 | 不自动表达业务验收状态 |
周岚允许系统压缩对话,但压缩前先把新决定、未决阻碍、工作区状态和产物变更写入受控资产。压缩摘要中的“报告已完成大半”不会改变任何工作状态;只有账簿中的合法转换和验收证据才能改变当前状态。
反过来,状态包也不复制所有工具输出。一次 2,000 行解析日志只在产物事件中保存路径、摘要、退出状态和关键失败;需要诊断时再按需读取原日志。把原始输出全部塞进交接会重新制造上下文污染。
状态对象必须互相引用,不能各说各话
状态包不是多个独立笔记。项目确定总目标,工作项表示可执行增量,决策改变后续规则,证据支持有限主张,产物是实际文件,变更请求改变合同,会话与交接连接一次工作的前后。每个对象都有稳定编号,关系只通过编号建立,不用“上次那个表”指代。
| 对象 | ID 前缀 | 必须引用 | 被谁引用 |
|---|---|---|---|
| 项目 / 章程 | 项目、章程 | 目标、负责人、版本 | 所有工作项和会话 |
| 工作项 | W | 章程、依赖 工作 | 进度、产物、交接 |
| 决策 | 决策 | 证据、批准人 | 工作、产物、变更请求 |
| 证据 | EV | 来源记录、定位 | 决策、正文、图表 |
| 产物 | 数据、图表、文本、报告 | 输入、生成事件 | 工作验收、交付包 |
| 变更请求 | 变更请求 | 原要求、影响对象 | 新 章程 与决定 |
| 检查点 | 变更计划 | 会话、工作区摘要 | 交接、恢复操作 |
| 交接 | H | 本次会话和下一工作项 | 下个会话的恢复接收 |
关系还要声明方向。DEC-04 影响 CHART-05 表示决定改变时图表要复核,不表示图表可以修改决定;CHART-05 依赖于 DATA-02 表示数据新版本可能使图过期,不表示删除旧图就能删除源数据。把关系写成自然语言段落,下一窗口很难做影响分析。
周岚规定当前事实的优先级:已批准章程与决策高于交接描述;产物注册表和真实文件摘要高于“已生成”的聊天陈述;进度账本的最后合法转换高于手写当前状态;真实外部系统回执高于任何计划记录。两层冲突时必须报告不匹配,不允许模型挑更方便的一条。
开始前先写项目章程,防止每个窗口重新解释目标
项目章程只保存稳定合同,不记每天进度。周岚用一页说明:
| 字段 | 本例 | 变更权限 |
|---|---|---|
| 目标 | 给出三个市场的进入顺序与证据 | 客户批准 |
| in_scope | 需求、竞争、渠道、合规准备度 | 客户批准 |
| out_of_scope | 法律意见、未来收入预测 | 不得由 AI 扩展 |
| 交付物 | 42 页报告、8 图、证据表、执行摘要 | 负责人确认 |
| 接受 | 每个关键主张有来源;当前与历史资料分开 | 周岚验收 |
| 截止日期 | 2026-07-31 17:00 +08:00 | 客户批准 |
| external_actions | 只生成草稿,不替客户发送或发布 | 每次动作单独批准 |
| stop_conditions | 权限不明、来源冲突、范围改变未确认 | 周岚处理 |
章程版本是 章程 -1.0。第 6 天客户要求加入第四个市场时,不能在聊天里顺手接受;它先成为 CR-03,评估新增 9 份资料、2 张图和 1.5 天工期,再由客户选择替换原范围而非静默加量。
任务拆成能在一个窗口内留下干净增量的工作项
“完成研究报告”太大,任何会话都可能在中间断开。周岚把任务拆成 24 个 工作项,每项有唯一 ID、输入、输出、依赖、验收和预计窗口:
| 工作项编号 | 工作 | 依赖 | 完成证据 | 当前状态 |
|---|---|---|---|---|
| W-04 | 核验三个市场的需求资料 | 来源清单 | 18 条证据通过复核 | 已接受 |
| W-09 | 建竞争者功能矩阵 | W-04、术语表 | matrix-v2 + 12 个来源定位 | 已接受 |
| W-13 | 计算渠道覆盖图 | 数据字典 | 图表脚本、输入摘要、复算表 | 进行中 |
| W-14 | 写合规准备度限制 | 7 份政策资料 | 每条只说明准备度,不给法律意见 | 已阻塞 |
| W-18 | 起草进入顺序 | W-09、W-13、W-14 | 三方案与反证 | 计划中 |
每个窗口最多选择一个主要工作项,必要时完成一个很小的修复项。结束前要么把该项推进到有验证证据的状态,要么明确保留为“进行中”或“已阻塞”,并列出未完成部分;不能用“做了很多”代替状态。
W-13 不是“画渠道图”,而是一份小型任务合同:输入必须是 DATA-02 的已接受版本和 DEC-04 的渠道定义;处理先校验 126 行唯一记录,再按市场编号聚合;输出包括 CSV、可缩放矢量图形、复算表和图注;验收要求三个市场总和仍为 126、每个柱都能回到证据编号;若来源日期缺失或分母冲突则停止。
| W-13 合同区 | 内容 | 交接作用 |
|---|---|---|
| 输入 | DATA-02@2.1、DEC-04、市场术语表 | 新窗口不用猜输入版本 |
| 预检 | 126 行、record_id 唯一、日期完整 | 先验证再计算 |
| 输出 | CHART-05.svg、chart-05-check.csv、caption.md | “完成”有明确产物集合 |
| 接受 | 分组和总数复算、标签与单位一致 | 可由另一窗口独立验收 |
| 停止 | 总数不等、来源日期缺失、权限越界 | 不用临时假设补齐 |
| 权限 | 可重算草稿,不可替换已接受图 | 防止续跑扩大动作权限 |
她还控制粒度:若一项预计超过两个工作窗口,就拆分;若小到只有“打开文件”这种没有独立产物的动作,就并回上级。粒度不是越细越好,而是中断后能判断已完成边界,并能在一个窗口内留下可验证增量。
用有限状态机管理进度
工作项只允许沿定义的状态转换移动:计划中 → 就绪 → 进行中 → 待复核 → 已接受;资料或决定缺失时进入已阻塞;被新决定替代时进入已取代。“完成”不是一个自我判断词,已接受才表示完成证据已经通过指定验收者。
| 状态 | 进入条件 | 必须保存 | 退出条件 |
|---|---|---|---|
| 计划中 | 已写入任务清单 | 目标、依赖、负责人 | 依赖满足 |
| 就绪 | 输入和权限齐全 | 输入 快照 | 开始执行 |
| 进行中 | 已产生工作变化 | 检查点、剩余动作 | 验证或阻塞 |
| 待复核 | 输出与自检完成 | 产物编号、测试结果 | 人工批准或退回 |
| 已接受 | 验收者批准 | 接受时间、证据 | 新版本正式替代 |
| 已阻塞 | 无法安全继续 | 阻碍、需要谁决定 | 条件解除后回 就绪 |
| 已取代 | 由新决定或版本替代 | replacement_id | 只作历史追溯 |
状态转换也写入进度账本,而不是只覆盖当前状态。这样能知道 W-13 为什么从待复核退回进行中:图表总数对得上,但两个市场的分母口径不同。
决策记录只保存真正改变后续工作的选择
对话中的每个建议都记日志会制造噪声。只有会影响范围、口径、结构、工具、风险或验收的选择才建立 决策记录:
| 字段 | DEC-04 示例 |
|---|---|
| 决策 | 渠道覆盖使用“有可验证合作记录的渠道数”,不用官网 标志 数 |
| 状态 | 已接受 |
| 决定时间 | 2026-07-25 14:20 +08:00 |
| 负责人 | 周岚 |
| 证据 | EV-033、EV-041、客户确认 CR-02 |
| 替代方案 | 标志 数;自报合作伙伴总数 |
| 原因 | 标志 不证明当前合作,自报数不可复核 |
| 影响 | W-13、CHART-05、报告第 4 章 |
| 重新评估条件 | 客户提供带日期的伙伴清单 |
后续会话遇到旧方案时先查 DEC-04。若出现新证据,不能删掉旧记录,而是建 DEC-07 取代 DEC-04,并列出受影响产物。决策日志因此既能阻止反复争论,也能让修改传播到正确位置。
决定被接受时运行影响检查。DEC-04 列出 2 个工作项、1 份数据、2 张图和报告第 4 章;系统为尚未接受的对象更新依赖,把已经接受的对象标为待复核,不能直接覆盖。若影响为空、但决定类型是“指标定义”,发布门禁应失败,因为口径改变不可能完全没有下游影响。
| 影响状态 | 自动动作 | 人工动作 |
|---|---|---|
| 计划中 | 更新输入与验收版本 | 负责人确认范围仍合理 |
| 进行中 | 冻结当前检查点 | 判断继续、重做或拆分 |
| 待复核 | 撤回复核队列 | 用新决定重新验证 |
| 已接受 | 标记待复核,不改历史文件 | 批准新版本后取代 |
| 已交付 | 建交付影响通知草稿 | 本人决定是否外部通知 |
影响传播只改变状态和待办,不自动改正文或对外发送。自动修订会把一个决定扩散成大量未经复核的新事实;交接系统负责暴露影响,不替负责人做所有判断。
进度账本记录事件,当前状态页只保留最新摘要
进度账本逐行追加会话编号、工作项编号、原状态、新状态、事件、验证和时间。当前状态页则每次交接重写为一页,列当前阶段、已接受、进行中、已阻塞、未决决定和下一批准点。
| 记录 | 适合查询 | 不适合查询 |
|---|---|---|
| 进度账本 | 谁在何时改变了什么、为何退回 | 直接判断最新状态 |
| 当前状态 | 新会话快速知道现在的工作面 | 解释所有历史过程 |
| 工作项 | 一项任务的输入、输出和验收 | 整个项目摘要 |
| 聊天存档 | 恢复具体讨论原话 | 判断当前决定 |
若当前状态写 W-13 为待复核,但账簿最后一条显示已退回进行中,预检返回“状态不匹配”,不允许新窗口自行选择。由负责人对账后再更新状态页;“读起来大致一致”不足以放行。
为了避免更新到一半,交接使用一个 会话关闭事务。它先写临时事件并校验引用,再更新 产物注册表 与 账簿,最后生成 当前状态 和 交接;全部成功后写 已关闭 标记。若在中间断开,下一窗口看到 会话=关闭 而非 已关闭,按 事务日志 回滚或补完,不能把半套状态当最新事实。
| 关闭 步骤 | 写入 | 校验 |
|---|---|---|
| 1. 冻结 | CP-08 工作区摘要 | 文件数量和摘要可重现 |
| 2. 注册 | 新产物 / 证据 / 决策 | 编号唯一、引用存在 |
| 3. 过渡 | 进度账本事件 | 原状态等于当前状态 |
| 4. 推导 | 当前状态页 | 与账簿最后事件一致 |
| 5. 交接 | H-08 | 下一动作指向就绪或进行中项 |
| 6. 关闭 | SESSION-08=已关闭 | 前五步全部通过 |
当前状态是从受控记录派生的一页视图,不应成为独立编辑的第二套数据库。个人项目可以手工维护,但也要先改账簿和注册表,再同步摘要,顺序不能反过来。
产物清单要记录版本、来源、状态和替代关系
文件名 最终-v3 无法说明是否批准。artifact-register.csv 为数据表、图、正文、说明和交付包分别登记:
| 产物编号 | 文件 | 版本 | 状态 | 输入 / 来源 | 替代 |
|---|---|---|---|---|---|
| DATA-02 | channel-normalized.csv | 2.1 | 已接受 | SRC-08…21、DEC-04 | DATA-02@2.0 |
| CHART-05 | channel-coverage.svg | 1.3 | 进行中 | DATA-02@2.1 | CHART-05@1.2 |
| TEXT-04 | chapter-4.md | 0.8 | 草稿 | EV-033…47 | — |
| REPORT-01 | market-entry.pdf | 0.3 | 待复核 | TEXT-01…06、CHART-01…08 | REPORT-01@0.2 |
每个版本保存内容摘要校验值、生成工具或编辑者、创建时间和验证结果。产物内容改变但版本未变会触发“摘要不匹配”;报告引用已取代的图表会触发“依赖已过期”。交接者不需要通读全部文件,也能看出哪一份可用。
产物注册分“存在、完整、已验证、已批准”四层。文件出现在目录只能证明存在;CSV 能打开不证明行数和口径完整;验证通过也不代表客户批准。CHART-05@1.3 已生成且复算市场 A 通过,但市场 B 分母未核,因此状态仍是进行中,不能因截图看起来完整就进入报告。
| 产物门 | 证据 | 未通过时 |
|---|---|---|
| 存在 | 路径、大小、摘要 | 缺失,不继续依赖 |
| 完成 | 声明的文件集合和字段齐全 | 不完整,列缺失项 |
| 已验证 | 可重放检查与结果 | 失败,保留失败日志 |
| 已批准 | 指定复核人、时间和版本 | 待复核,不可交付 |
| 已链接 | 下游引用完全指向该版本 | 孤立产物或依赖已过期 |
版本恢复也实际演练。她从 REPORT-01@0.3 建一个临时副本,故意把 CHART-05 指针改回 1.1,再运行 依赖检查;系统找到 2 处旧图引用并拒绝导出。恢复 注册表 指针和正文引用后重新导出,证明回退不是“历史文件还在”,而是知道怎样重建一致交付包。
证据表把“已经研究过”变成可复核输入
61 条证据不是收藏链接,而是 主张、原文、来源位置、内容日期、访问范围、支持或反对方向、适用边界和 复核人。报告只能引用 已接受证据;网页摘要、搜索片段或模型转述不能直接升级为证据。
| 证据编号 | 支持的有限主张 | 来源定位 | 状态 | 边界 |
|---|---|---|---|---|
| EV-033 | 市场 A 有 6 家可核验渠道伙伴 | SRC-11 第 14 页 + 伙伴页 | 已接受 | 只统计 2026-06 前可验证合作 |
| EV-041 | 市场 B 官网列 18 个 标志 | SRC-16 第 8 页 | 已接受 | 不能证明仍在合作 |
| EV-052 | 某政策于 2026-05 生效 | 政府公告第 4 条 | 待复核 | 不提供法律解释 |
| EV-057 | 市场 C 客户愿付价更高 | 两份访谈 | 已拒绝 | 样本不足,不能外推市场 |
交接记录只写“W-14 被 EV-052 阻塞”还不够;还要说明需要哪类复核、谁能解除、截至何时。证据状态变化会沿影响关系把相关文字和图标记为待复核。
每个窗口开始时先做恢复预检,不要立刻继续写
新窗口按固定顺序读取:项目章程 → 当前状态 → 最新交接 → 工作项 → 相关决策 → 产物注册表 → 必需证据。它不会先读全部聊天,也不扫描整个目录。
| 预检问题 | 通过条件 | 失败动作 |
|---|---|---|
| 目标是否仍是 章程 -1.0 | 版本和摘要匹配 | 停止,确认是否有变更请求 |
| 当前工作项是否唯一 | 只有一个进行中的主项 | 负责人裁决冲突 |
| 依赖产物是否可用 | 已接受且摘要一致 | 回到依赖项 |
| 阻碍是否已解除 | 有决定或新证据 | 不自行假设 |
| 上一交接的下一步是否仍有效 | 未被新事件替代 | 更新交接 |
| 工作区是否干净 | 无未登记文件或状态变化 | 先清点检查点 |
预检输出 恢复接收:读了哪些版本、当前工作项、允许动作、禁止动作和第一项验证。用户或本人确认回执后才执行高风险步骤;对纯草稿工作可按章程预授权继续。
resume_id: R-09
handoff: H-08 / lint=18-of-18
charter: 1.1 / digest matched
current_work: W-13 in_progress
inputs: DATA-02@2.1 accepted; DEC-04 accepted
blockers_not_for_this_action: W-14 waits for EV-052 review
first_check: DATA-02 rows=126, record_id unique, source_date complete
allowed: recompute market B and write CHART-05@1.3 draft
forbidden: change channel definition; edit accepted CHART-05@1.2; publish
stop_if: total!=126, input digest mismatch, or new CR exists
回执必须由新窗口根据状态包生成,不能由旧窗口把答案预先写好再照抄。周岚核对其中 8 个事实:项目版、当前项、输入版、决定、阻塞、首检、允许动作和停止条件。任一关键事实错就不开始;恢复速度不能用牺牲准确性换取。
预检还做“反向引用”检查:H-08 说 W-13 使用 DATA-02@2.1,产物注册表 也必须列 W-13 为消费者。单向引用容易在数据更新时漏掉下游;双向关系不一致时先修 注册表,再开展新计算。
每个窗口结束时留下“干净增量”,而不是一段叙述性总结
窗口结束前依次做六件事:停止扩范围;验证本次产物;登记新文件或版本;追加进度和决策;更新当前状态;写下一交接。若验证不通过,保留失败结果和可恢复检查点,不把状态改成待复核。
| 交接字段 | 必须具体到 |
|---|---|
| 完成 | 工作项编号、产物编号、验证命令或检查结果 |
| 已变更决定 | 决定编号与影响范围 |
| 当前工作 | 已完成到哪一行、哪一图或哪一证据 |
| 阻碍项 | 缺什么、由谁解决、临时绕行是否禁止 |
| 未收口状态 | 未登记文件、未提交改动、运行中任务 |
| 下一动作 | 第一动作、输入、预期输出和停止条件 |
| 禁止动作 | 已否决路线、不能覆盖的版本、无权动作 |
“继续完善报告”不是下一步。“打开 W-13,使用 DATA-02@2.1 重新计算市场 B 分母;若总数不等于 126,停止并检查 SRC-16,不改 CHART-05@1.2”才可执行。
窗口结束时还要区分“交接文字已写”和“交接事务已关闭”。H-08 写完后,周岚从一个只读视角重新打开产物注册表、账簿和交接,按下一动作实际定位输入;若需要依赖作者脑中信息才能找到文件,交接退回补写。这个一分钟试运行经常能发现路径、版本或负责人漏项。
她不在结束前临时开启第二个大任务。如果 W-13 提前完成,剩余时间只做验收、登记或一个能够独立关闭的小修复;在上下文即将结束时启动 W-18,会留下更多 脏状态,表面提高利用率,实际把恢复成本转给下一窗口。
中途断开时诚实保存未完成状态
会话可能在工具运行、文件改到一半或验证失败时结束。周岚使用检查点标记安全、存在未保存修改或状态未知:安全状态可由下一窗口直接继续;存在未保存修改时列出变化和恢复步骤;状态未知表示无法确认最后动作是否完成,必须先检查外部状态。
| 中断场景 | 错误续跑 | 正确恢复 |
|---|---|---|
| 图表导出命令超时 | 假设没有产物并重跑 | 查进程、文件摘要和生成日志 |
| 正文写到一半 | 依据聊天补完并覆盖 | 保留草稿,比较检查点 |
| 外部上传请求无回执 | 再上传一次 | 查询目标系统是否已有产物编号 |
| 状态页已改、账簿未追加 | 以状态页为准 | 返回“状态不匹配”并对账 |
| 客户在另一窗口改变范围 | 继续旧计划 | 建 变更请求,冻结受影响项 |
不确定外部动作是否发生时尤其不能重试。先读真实系统结果;若无法读,就转人工确认。长任务的连续性不是“永远不停”,而是在不确定时停在可恢复边界。
范围变化先做影响分析,再更新所有状态资产
CR-03 要加入第四市场。周岚用影响表检查章程、任务、证据、产物、工期和费用:
| 影响对象 | 变化 | 处置 |
|---|---|---|
| 章程 | in_scope 增一市场 | 客户批准 1.1 版 |
| 工作项 | 新增 5 项,3 项范围改变 | 重估依赖和窗口 |
| 证据 | 需 9 份新资料 | 权限和日期先审 |
| 图表 | 新增 2 张,4 张需重算 | 旧图保持已接受但标记待复核 |
| 报告 | 预计增加 7 页 | 调整验收和目录 |
| 截止日期 | 增 1.5 天 | 客户选择延期或替换原范围 |
客户最终选择不增加页数,而是用第四市场替换原来的市场 C。章程 -1.1、DEC-06 和受影响关系同时更新;市场 C 的已完成证据进入 归档,但不删除。若只改章程标题,下一会话仍可能继续旧任务清单。
交接包先过一致性检查,再交给下一窗口
结构化字段不自动保证正确。周岚为 交接 写 18 条静态和状态检查,覆盖引用、版本、状态、下一动作、权限、时间和工作区。检查器不判断研究结论是否合理,只拦截能机械发现的断链。
| 检查 | 通过条件 | 失败例 |
|---|---|---|
| 引用编号存在 | 所有编号能在注册表找到 | 写 CHART-05@1.4,但只有 1.3 |
| 当前工作唯一 | 最多一个主要进行中项 | W-13 与 W-18 同时宣称当前 |
| 状态符合账簿 | 摘要等于最后合法事件 | 账簿已退回,摘要仍写待复核 |
| 下一动作可执行 | 输入存在、依赖满足、权限允许 | 下一步依赖已阻塞的 W-14 |
| 已接受有证明 | 已接受必须有复核人和验证 | 只有“看起来没问题” |
| 没有过期依赖 | 下游不用已取代输入 | 报告仍引用旧图 |
| 未收口状态已声明 | 文件摘要与检查点一致 | 有未登记草稿却写工作区干净 |
| 有停止条件 | 高风险动作有停止条件 | 外部上传没有状态未知处理 |
H-08 首轮 代码检查/格式化 通过 15/18。失败三项:next_action 没写预期总数 126;W-14 阻碍项 缺 负责人;CHART-05@1.3 的 摘要 尚未登记。补齐后 18/18,但这仍只是“结构可交接”,不是内容已完成。下一窗口的恢复预检和实际动作继续承担语义验证。
她还做时间陈旧检查:交接 超过 24 小时且期间有新 决策、变更请求 或外部回执时标 过时,必须重建;没有事件的周末不因自然时间自动失效。陈旧依据是状态变化,不只是文件日期。
用关闭历史对话的恢复演练验证交接包
第 7 个窗口结束后,周岚把聊天历史对测试窗口隐藏,只提供状态包和实际工作区。她提出 15 个恢复问题:目标、范围、当前工作、已接受 产物、已阻塞 原因、最新决定、下一动作、禁止动作和验证办法。
| 恢复维度 | 题数 | 必须回答到 |
|---|---|---|
| 目标与范围 | 2 | 章程 -1.1,市场 C 已被 D 替换 |
| 当前进度 | 3 | W-13 状态、已完成市场 A、市场 B 待复算 |
| 产物与版本 | 3 | DATA-02@2.1 已接受、CHART-05@1.3 草稿、旧 1.2 不覆盖 |
| 决策与证据 | 2 | DEC-04 定义、EV-052 阻塞 W-14 |
| 下一动作 | 2 | 第一检查与预期总数 126 |
| 权限与禁止 | 2 | 不发布、不自行解释政策 |
| 工作区完整性 | 1 | CP-08-safe、脏数据/未保存=错误 |
| 合计 | 15 | 任一硬门错误都不算整体恢复通过 |
首轮答对 12/15。三项失败分别是:交接 写“图表待检查”,没有指出 CHART-05@1.3;DEC-04 没写影响第 4 章;当前状态 没标出 CR-03 正在等待客户。修正字段结构和记录后重新创建全新窗口,15/15 能从资产定位答案。
恢复成功不只看口头回答。新窗口还执行一个受控动作:检查 DATA-02@2.1 的 126 行、重算两个分组总数、更新 CHART-05 草稿,但不把它标 已接受。输出摘要与原计划一致,已否决的 标志 计数法没有回流,说明交接既传递事实也传递边界。
她再做一个破坏性较低的负向测试:把 交接 中 DATA-02 版本故意改成不存在的 2.2,预期系统返回 referenced_id_missing;把 脏数据/未保存=错误 保持不变但在工作区加入未登记 CSV,预期返回 workspace_mismatch。两个错误都在执行计算前被拦截。恢复演练既要证明正确状态能续跑,也要证明错误状态不会静默继续。
评分记录区分 检索 和 操作:能说出下一步但选错输入版本,检索 部分失败;说对全部事实却把草稿标 已接受,操作 硬门失败。15/15 只代表状态理解,受控动作通过才代表可继续工作。
合格交接要让下一窗口直接完成第一个动作
handoff_id: H-08
project: market-entry / CHARTER-1.1
session_ended_at: 2026-07-27T18:10:00+08:00
accepted:
DATA-02@2.1 sha256:91a...e20; rows=126; validation=passed
in_progress:
W-13 / CHART-05@1.3; market A complete, market B denominator pending
blocked:
W-14 by EV-052 needs policy-date review from owner
latest_decisions:
DEC-04 channel definition; DEC-06 market C replaced by market D
next_action:
recompute market B from DATA-02@2.1; expect group total=126
stop_if:
total!=126 or SRC-16 date cannot be verified
do_not_do:
do not use website logo count; do not edit accepted CHART-05@1.2
workspace:
dirty=false; last_checkpoint=CP-08-safe
交接不复制全部历史,也不写鼓励性话语。它只携带恢复当前任务所需的高信号状态,并通过 ID 指向完整记录。下一窗口若要理解 DEC-04 的备选方案再按需读取,不把所有决定全文永久塞进上下文。
12 次交接的结果要同时计算维护成本和失败成本
周岚用 6 次模拟新窗口测基线恢复,耗时 20、18、17、22、16、19 分钟,中位数为 18.5 分钟;使用状态包后的 6 次为 4、3、5、4、4、6 分钟,中位数 4 分钟。每次恢复节省约 14.5 分钟,但这是同一教学项目的模拟结果,不是模型能力 基准。
初次建立章程、字段结构、清单和恢复题用了 2.5 小时;首次窗口之后的 12 次恢复毛节省 12×14.5=174 分钟。12 次窗口结束交接的维护中位数为 6 分钟,共约 72 分钟,净节省 102 分钟。第一项项目仍未回收 150 分钟初始投入,差 48 分钟;按每个循环净节省 14.5-6=8.5 分钟,静态回收约需 150÷8.5=17.6 次交接。
| 质量指标 | 旧做法 | 状态包项目 |
|---|---|---|
| 已否决决定重新出现 | 3 次 | 0 次 |
| 同名最终稿覆盖 | 2 次 | 0 次;版本冲突被拦截 |
| 新窗口恢复中位数 | 18.5 分钟 | 4 分钟 |
| 强制恢复题 | 未测试 | 修订后 15/15 |
| 不确定外部动作被重复执行 | 未记录 | 0;状态未知 转人工 |
状态包不一定适合两小时能做完的任务。若预计只有一个窗口,完整交接结构的维护成本可能过高;至少保留目标、当前文件和下一动作即可。项目越长、产物越多、决定越易反复、外部动作风险越高,结构化交接越值得。
她不只统计恢复时间,还看状态包本身是否腐化:
| 月度指标 | 目标 | 触发动作 |
|---|---|---|
| 交接检查 首次通过率 | 不低于 90% | 简化字段或补自动派生 |
| state_mismatch | 0 | 检查 关闭事务 顺序 |
| 陈旧依赖 进入交付 | 0 | 收紧 产物 发布门 |
| 平均交接维护 | 不超过 8 分钟 | 删除重复字段,不降低硬门 |
| 新窗口首个正确动作 | 100% | 增加恢复题或更具体 next_action |
| 30 天未读状态字段 | 标 复核 | 判断是否无用或缺少入口 |
若连续三个项目都只有 4 次以内交接、恢复中位数本来低于 6 分钟,她会退回最小五件套;如果出现外部发送、多个并行产物或两位以上协作者,则保留完整 账簿 和 检查点。交接方案按任务风险升级,不以目录文件越多越专业。
维护时间也不能通过让 AI 自动宣告 已接受 来压缩。自动化适合校验 ID、摘要、状态转换和依赖;研究结论、范围变化和外部动作仍由指定 负责人 批准。把人工判断删掉会让报表变快,却破坏状态可信度。
可以直接复制的长任务状态目录
project/
charter.md # 目标、边界、验收、批准点
current-state.md # 一页最新状态
work-items.csv # 状态、依赖、完成证据
decision-log.md # 追加的决定与影响
progress-ledger.csv # 状态转换事件
evidence.csv # 主张、来源、边界和审核
artifact-register.csv # 文件版本、摘要、替代关系
change-requests/ # 范围和要求变化
checkpoints/ # safe / dirty / unknown
handoffs/ # 每个窗口的交接
recovery-tests.md # 新窗口恢复问题
如果只做最小版,先建 章程、当前状态、决策日志、产物注册表 和 最新交接 五项。每次开始先预检,每次结束只承诺已验证的增量。对话可以结束、压缩或丢失;只要状态资产完整、产物可恢复、下一动作可验证,长任务就不必靠模型“记得上次聊了什么”继续。
来源与进一步阅读
以下资料核验于 2026-07-21,用于支持外部状态、结构化笔记、上下文压缩、增量工作和版本恢复:
- Anthropic:Effective harnesses for long-running agents:长任务需要逐步推进,并为下一会话留下清晰进度资产和可工作的干净状态。
- Anthropic:Effective context engineering for AI agents:讨论 压缩、结构化笔记和按需读取,以有限上下文保持长程连贯。
- GitHub Docs:About Git:说明版本控制可记录改了什么、谁改、何时和为何改变,并恢复早期版本。