Spaces:
Running
Download mirror/docs/prd.md from RedinGhost/context-continuity: direct link, hf CLI and curl.
- Browser
- Download file 36.1 kB
-
https://huggingface.co/spaces/RedinGhost/context-continuity/resolve/main/mirror/docs/prd.md
- Command line
-
hf download hf://spaces/RedinGhost/context-continuity/mirror/docs/prd.md
-
curl -L -o prd.md https://huggingface.co/spaces/RedinGhost/context-continuity/resolve/main/mirror/docs/prd.md
Context Continuity 调研结论与产品需求文档
版本:0.1 冻结日期:2026-08-28 产品阶段:Codex public beta;产品效果尚待真实三臂评估
给普通用户的四句话
- 这个插件会在 Agent 压缩上下文、恢复旧任务或把工作交给另一个 Agent 前后,自动保护那些一旦丢失就会让工作走偏的信息。
- 大多数时候用户不会看到它;只有恢复出错、目标或权限不确定、工作对象版本变化时,用户才会看到修复提示或一个必要问题。
- 不使用它,Agent 仍能继续说话和执行,但可能继续旧目标、忘记纠正、把争议写成共识,或在错误版本上重复工作。
- 宿主自带的长上下文、摘要和记忆主要解决“还能看到什么”,没有同时保证来源、时序、覆盖、冲突、工作版本和压缩前后动作等价。
1. 一句话产品定义
Context Continuity 是一个本地优先、默认静默的 Agent 插件:它在有损上下文转换前保存最小的、带来源的任务不变量,转换后核验恢复结果,并只在不一致会改变目标、范围、授权、工作对象或不可逆动作时要求用户确认。
2. 目标用户和高频使用场景
目标用户
- 用 Codex 持续完成数小时到数周工程任务的个人开发者和小团队。
- 经常暂停、恢复、切换模型或把子任务交给子 Agent 的高级用户。
- 需要保留用户纠正、证据链、版本位置和授权边界的高责任工作。
- 已经使用用户意图插件或执行防偏插件,希望三者共享同一有效状态投影的用户。
高频场景
- 长任务触发一次或多次自动压缩。
- 用户在中途纠正 Agent 或改变目标,随后发生压缩。
- 项目隔天恢复,工作区或 Git 版本已经变化。
- 主 Agent 把子任务交给子 Agent,再接收其结果。
- 从一个 Agent 产品迁移或交接到另一个产品。
- 检索、摘要或长期记忆提取把旧信息重新拼进当前上下文。
3. 核心问题与非目标
核心问题
有损转换后的 Agent 通常不会显式报错。它会生成一段连贯的新回答,却可能已经:
- 把旧目标当成当前目标;
- 遗漏硬约束或授权边界;
- 复活被用户纠正或覆盖的信息;
- 丢掉决定的理由,重新打开已经关闭的选择;
- 把未决分歧压成虚假共识;
- 引用失效证据,或丢掉证据来源;
- 在错误目录、分支、提交或文件版本继续;
- 把“计划做”误记为“已经验证完成”;
- 选择与压缩前不等价的下一步。
非目标
MVP 不保存完整聊天记录,不构建用户画像,不做跨项目长期记忆,不做向量检索,不替 Agent 规划任务,不决定权限,不拦截工具执行,不调度任务,不提供云同步,不解析隐藏推理,也不成为第二套 Harness。
4. 调研结论:事实、推断与假设
4.1 已确认事实
| 已确认事实 | 产品含义 | 直接来源 |
|---|---|---|
| 即使模型支持长上下文,相关信息位于中间时性能仍可能显著下降。 | “保留全部上下文”不等于 Agent 能稳定使用关键不变量。 | Lost in the Middle |
| LongMemEval 把知识更新和应当拒答列为长期记忆核心能力;其研究报告长上下文与商业助手在持续交互记忆上出现明显下降。 | 连续性协议必须表达覆盖关系、失效和不确定性,不能只做命中率。 | LongMemEval |
| 递归摘要能改善长对话一致性,但摘要仍是模型生成的派生物。 | 摘要可作恢复缓存,不能成为唯一权威来源。 | Recursive Summarization |
| MemGPT 通过分层存储和上下文搬运扩展可用记忆。 | 分层和搬运解决容量问题,不自动解决来源、冲突与当前有效性。 | MemGPT |
| Generative Agents 使用观察记录、检索、反思和规划,消融实验显示这些部件影响行为。 | 事件记录与选择性检索有价值,但“反思”是新的模型推断,不能自动晋升为用户事实。 | Generative Agents |
| Codex 插件可打包 Skill、MCP 和 Hooks;当前官方 Hook 文档包含 PreCompact、PostCompact、SessionStart(compact/resume);App Server 可发起并观察压缩。 | Codex MVP 能验证真实压缩前后闭环,不必默认依赖压缩后猜测。 | 插件打包、Hooks、App Server |
| Claude Code 当前文档列出 PreCompact、PostCompact、SessionStart 的 compact/resume 来源,并支持插件级 Hooks。 | 第一个跨平台适配器可复用大部分生命周期语义。 | Claude Code Hooks |
| Cursor 当前文档提供 sessionStart、preCompact、transcript_path 和子 Agent Hooks;preCompact 明确是只读观察,文档未列出 postCompact。 | 可在压缩前保存,但压缩后只能用会话 epoch、状态摘要和下一回合信号推断,保证弱于 Codex。 | Cursor Hooks |
| Gemini CLI 的 PreCompress 异步触发,不能阻止或修改压缩;SessionStart 只列 startup/resume/clear。 | 可以保存近实时状态,但不能保证写入先于压缩完成,也没有直接压缩后配对点。 | Gemini CLI Hooks |
| CodeBuddy Code v1.16.0+ 文档列出 PreCompact、PostCompact、SessionStart(compact/resume),但 Hooks 标为 Beta;Agent SDK 与 WorkBuddy 桌面产品是不同能力面。 | CodeBuddy 可做实验适配;不能把 SDK 回调能力外推成所有 WorkBuddy 表面都可用。 | CodeBuddy Hooks、插件参考 |
4.2 基于证据的推断
- 任务连续性失败的核心不是“文本不够多”,而是当前有效状态缺少可核验的来源、覆盖和工作位置。
- 摘要、检索和长期记忆都应被当成候选信息通道;只有能够追溯到用户事件或当前证据的项,才能进入有效投影。
- 目标、硬约束和纠正的缺失通常立即降低回答质量;工作对象、完成状态和决定理由的缺失更常在后续执行中暴露,返工成本更高。
- 没有压缩后事件的平台仍能提供部分价值,但不能承诺“已核验压缩完成”;产品必须显示能力降级而不是伪造等价闭环。
- 保存完整 transcript 会扩大隐私、存储和检索成本,同时仍不能判断哪条信息当前有效,因此不应成为默认解法。
4.3 尚未验证的产品假设
- 在冻结真实任务上,插件能把重大目标或约束偏移率相对宿主原生方案降低至少 50%。
- 800 token 的默认恢复预算足以覆盖 95% 以上的有效不变量。
- 用户只在高风险不一致时被询问,能把中断率控制在 5% 以下。
- 独立安装能产生足够可感知价值,而不仅是另外两个插件的内部状态模块。
- Claude Code 适配器可在不改变核心数据协议的情况下达到 Codex MVP 的主要指标。
这些假设在三臂真实评估完成前均不得写成市场效果宣称。
5. 故障模型
5.1 有损转换、丢失对象和暴露时间
| 有损转换 | 最易丢失或改写 | 首次暴露 | 典型后果 |
|---|---|---|---|
| 自动/手动压缩 | 纠正、分歧、决定理由、覆盖关系、下一步 | 下一次回答或工具调用 | 继续旧目标、错误执行 |
| 长对话截断 | 早期目标、授权、证据来源 | 信息再次被需要时 | 违反范围、无法解释结论 |
| 跨会话恢复 | 工作位置、完成状态、未决项 | 恢复后的首个动作 | 重做、误报完成、改错版本 |
| 模型或 Agent 切换 | 隐含计划、置信度、保留意见 | 新 Agent 重新规划时 | 偷偷扩大或缩小目标 |
| 子 Agent 交接 | 委托范围、父任务约束、证据标准 | 子 Agent 执行或回传时 | 越权、把候选结论当事实 |
| 检索结果重组 | 时间顺序、反例、被覆盖信息 | 检索回答或规划时 | 旧信息复活、选择性证据 |
| 对话总结 | 分歧、不确定性、理由和来源 | 摘要被后续引用时 | 虚假共识、错误确信 |
| 短期转长期记忆 | 临时偏好、错误摘要、过期事实 | 未来无关任务 | 长期污染、跨项目误用 |
| 项目暂停再开始 | 当前版本、外部状态、下一步 | 首次编辑、发布或删除 | 在过期状态上采取不可逆动作 |
5.2 立即损害与延迟损害
- 立即损害:当前目标、硬约束、授权、明确纠正、未决分歧和下一步丢失。它们会直接改变下一段回答或第一个动作。
- 延迟损害:决定理由、证据来源、工作对象版本和已验证完成状态丢失。Agent 可能先表现正常,直到重新选择方案、复查证据、提交或发布时才暴露。
- 高风险损害:任何影响权限、范围、发布、删除、支付、外部消息或其他不可逆行为的信息丢失。该类不确定性必须暂停并询问。
6. 现有机制覆盖矩阵
| 机制 | 实际解决 | 没有解决 | 失败残留与成本 |
|---|---|---|---|
| 更长上下文 | 延后截断,保留更多原文 | 中间信息利用、当前有效性、覆盖、冲突 | token/延迟高,关键内容仍可能被忽略 |
| 平台摘要 | 用较少 token 延续主题 | 来源、逐项有效性、证据版本、虚假共识 | 摘要错误会被后续递归放大 |
| 事件日志 | 保存顺序、来源和可审计历史 | 直接提供紧凑的当前状态 | 需要投影逻辑;日志过大会增加存储 |
| 检索式记忆 | 从大量历史中选择相关片段 | 时间覆盖、缺失检测、检索未命中的事实 | 召回错误或陈旧命中会污染回答 |
| 状态快照 | 快速恢复某一时刻的投影 | 快照之后的更新、来源真实性 | 单快照可能过时或损坏 |
| 文件/工作区检查点 | 恢复可执行资产和版本 | 用户目标、争议、授权 | 只能证明工件状态 |
| 交接协议 | 显式传递范围、状态和下一步 | 发送者的错误、接收后的新变化 | 手工维护负担;无验证时会传播错误 |
| 本插件的最小组合 | 事件日志提供来源,投影提供当前状态,事件触发快照提供恢复速度,核验处理更新与冲突 | 不替代宿主推理、权限和完整记忆 | 增加有限本地状态、Hook 延迟和恢复 token |
MVP 只采用最后一行的最小组合,不引入数据库、向量索引、后台模型或完整 transcript。
7. 最小可行产品
7.1 字段进入 MVP 的证伪条件
一个对象只有同时满足以下四项才进入 MVP:
- 对应至少一种高代价连续性故障;
- 有可靠来源或可验证办法;
- 删除它会在冻结案例中改变下一步或最终结果;
- 收益高于注入 token、延迟、存储和冲突处理成本。
7.2 最小任务不变量
| 对象 | 决策 | 证据 |
|---|---|---|
| 当前目标 | 必须保留 | 丢失会立即改变成功条件和下一步 |
| 硬约束与授权 | 必须保留 | 丢失可产生越界或不可逆错误 |
| 用户明确纠正 | 必须保留 | 防止已否定信息复活;必须带 supersedes |
| 当前有效决定及理由 | 条件保留 | 仅当理由会阻止重开选择或改变动作时保留 |
| 未解决问题与分歧 | 必须保留 | 防止摘要制造虚假共识 |
| 证据及来源 | 保留引用和摘要哈希,不保留完整证据 | 支撑复核,同时控制隐私与 token |
| 当前工作对象和版本 | 必须保留 | 防止在错误路径、分支、提交或文件上继续 |
| 已验证完成状态 | 必须保留 | 防止重做或把计划误当完成 |
| 下一步动作 | 必须保留为动作游标,但转换后必须重验 | 是压缩前后行为等价的直接 oracle;直接执行旧游标会放大压缩错误 |
| 普通闲聊、完整输出、完整 transcript | 舍弃 | 不稳定、成本高,通常不改变动作 |
7.3 每条状态的最小语义
- id:稳定项标识。
- namespace:intent 或 operational。
- kind:事实、目标、约束、授权、纠正、决定、问题、争议、工作对象、完成状态、下一步等。
- statement:最短可执行表述。
- source_ref 与可选 evidence_digest:来源引用及证据摘要。
- recorded_at:记录时间。
- status:active、superseded、disputed、unverified。
- authority:user、verified_evidence、agent_inference;platform summary 和 imported handoff 不直接进入权威集合。
- verification 与 confidence:已验证程度和不确定性。
- supersedes:被后续信息覆盖的项。
- scope:任务及必要的子任务边界。
冲突项并列存在,不通过模型总结强行合并。有效状态是 append-only ledger 的确定性投影,不是某个 Markdown 文件或平台摘要。
8. 用户使用流程
安装与启用
用户从 GitHub marketplace 安装插件,打开 Codex 的 /hooks,检查并信任明确的 Hook 命令。插件随后默认自动工作,不要求用户维护状态文件。
日常使用
- 普通回合保持沉默,不调用额外模型。
- 当提示包含目标改变、纠正、硬约束、授权、分歧或完成状态信号时,插件只记录有界来源事件。Agent 推断可作为 unverified 候选写入;若需要用户权威,必须先展示完整、可读、绑定 generation 的提案,再由用户第二条消息精确确认。
- 用户可说“显示当前连续性状态”查看有效项、来源、缺口和工作版本。
压缩或恢复后
- 没有动作游标且状态等价:静默继续;存在旧 next_action 时先标记 stale 并重新推导。
- 可从 ledger 自动修复:显示一条简短修复说明后继续。
- 有低风险不确定性:标记缺口,继续不依赖该缺口的动作。
- 影响目标、权限、范围、工作版本或不可逆操作:只问一个必要问题。
纠正、关闭与删除
用户的新陈述先形成可读纠正提案,第二次精确确认后通过新增项覆盖旧项,不改写历史。用户可以对单个任务 off/on、rebuild、reset 或 delete;MCP off/on/reset/delete 都使用“明确请求 → 一次性确认短语 → 第二条原样用户提示”的两阶段流程,诊断 CLI 使用精确 task_ref 二次确认。
9. 任务不变量与数据生命周期
- 用户提示或可验证工件变化产生来源事件。
- 只有改变动作的状态项增量写入 ledger;写入使用 generation 乐观并发控制。
- 投影按 authority、status、supersedes 和 namespace 确定当前有效状态。
- PreCompact 生成包含投影摘要、工作区指纹、事件位置和覆盖缺口的最小快照。
- 恢复时从 hash-chain ledger 重建投影,与快照和当前工作区比较。
- 最多保留三个快照;ledger 达硬上限时拒绝连续性写入,不静默删除历史。
- clear 使当前状态失效;MCP reset 追加重置边界,CLI reset 先归档旧目录;delete 只删除经过词法路径和 realpath 双重边界核验的精确任务目录。
- 任务状态与长期记忆隔离;任何长期提升都必须重新验证,不由本插件自动完成。
10. 压缩前、压缩时和压缩后
压缩前
- 由 PreCompact 触发原子快照,不每轮生成摘要。
- 保存当前投影摘要、ledger 位置、工作对象指纹、下一步、未决项和覆盖缺口。
- 若 Hook 失败,宿主 fail-open 继续,但插件不得声称这次转换受保护。
压缩时
- 插件不改写宿主摘要,也不把它当事实来源。
- 有 PostCompact 的宿主记录配对完成;不可见宿主只记录“压缩结果未知”。
- 来源、时序、覆盖、冲突和不确定性保留在插件 ledger,而不是压入一段无结构文本。
压缩后
- 在 SessionStart(compact) 或最接近的恢复入口比较:快照摘要、当前 ledger 投影、工作区指纹和数据根持久性。
- 分类为 equivalent、repaired、continue_with_markers 或 ask_before_high_risk。
- 可核验证据自动修复;非阻塞缺口标记;高风险不一致暂停询问。
- 注入默认不超过 800 tokens,硬上限 1500 tokens;按授权、硬约束、目标、纠正、工作对象、下一步、分歧、完成状态排序裁剪。
11. 跨会话、跨 Agent、模型切换和长期记忆
- 跨会话恢复:使用相同 task_ref 重建投影,重新核验工作区和数据根;不能只依赖旧摘要。
- 模型切换:模型是消费者,不改变状态所有权;新模型获得同一最小恢复上下文。
- 子 Agent 交接:父 Agent 导出带范围和摘要哈希的 capsule;子 Agent 得到的授权不超过父任务;回传结果是 candidate-only,父 Agent 验证后才能写入有效状态。
- 跨 Agent 产品:适配器只把各平台事件映射到同一核心协议,不复制一套产品逻辑。
- 长期记忆提取:连续性项只是候选来源;长期记忆系统必须重新验证有效期、范围和来源,单次摘要不得自动提升。
12. Codex 中的实现与使用
普通用户流程
- 从 GitHub marketplace 安装。
- 打开 /hooks 查看插件 Hook 并选择是否信任。
- 正常工作;需要时用自然语言要求显示、纠正、导出或删除状态。
- 压缩或重进任务后,通常直接继续;只有材料风险才出现提示或问题。
- 卸载时先按任务删除所需状态,再移除插件和 marketplace;插件不会偷偷删除 ledger。
技术实现
- 插件包:.codex-plugin/plugin.json、Skill、bundled stdio MCP 和 Hooks。
- Hooks:UserPromptSubmit、PreCompact、PostCompact、SessionStart、SessionEnd、SubagentStart/Stop。
- 状态核心:本地每任务 append-only hash-chain ledger、原子写、单任务锁、generation 并发控制和确定性投影。
- MCP:公开八个查询、确认、记录、纠正、快照、handoff 和状态管理工具;读取操作不创建任务状态,公共表面不暴露 provider/token 或 verified-evidence 写入。
- Skill:告诉 Agent 何时调用 MCP,并明确平台摘要和 imported handoff 的非权威地位。
- App Server:只用于真实生命周期验证或宿主集成,不能演变成第二套 Harness。
能力边界
| 分类 | Codex MVP |
|---|---|
| 可可靠实现 | PreCompact 前快照;PostCompact 配对;compact/resume 恢复注入;本地持久化;真实 manual/auto 生命周期观测 |
| 替代方案 | 没有可用数据目录时使用 volatile 状态并标高风险;App Server 用于验证而非运行依赖 |
| 暂不能保证 | 所有未来 Codex 版本兼容;宿主摘要内容正确;真实 thread/resume 与所有子 Agent 形态;跨设备同步 |
13. 其他 Agent 的适配方式
核心 ledger、投影、恢复分类、capsule 和数据 schema 保持不变,只替换事件适配层。
| 平台/表面 | 原生已支持 | 插件可控制 | 只能观察/降级 | 无法保证 |
|---|---|---|---|---|
| Claude Code | 插件 Hooks、PreCompact、PostCompact、SessionStart(compact/resume)、transcript 路径、子 Agent 事件 | 压缩前写快照、压缩后配对、恢复注入 | 企业策略可禁用非托管 Hooks | 不同版本和云环境的持久目录一致性 |
| Cursor IDE/CLI | 插件/项目 Hooks、sessionStart、preCompact、稳定 conversation_id、可选 transcript、子 Agent Hooks | 压缩前写快照;sessionStart 注入 | preCompact 只能观察;无文档化 postCompact,用 epoch/digest 在下一回合检测 | 精确判断压缩何时完成;Cloud Agent 早期只读阶段 Hooks |
| Gemini CLI | command Hooks、BeforeAgent、SessionStart(resume)、PreCompress、transcript 路径 | BeforeAgent 可注入恢复上下文 | PreCompress 异步且 advisory-only;以下一回合和摘要 digest 推断 | 保存一定先于压缩;直接压缩后事件 |
| CodeBuddy Code | v1.16.0+ Beta Hooks、Pre/PostCompact、SessionStart(compact/resume)、插件 Hooks | 与 Codex 类似的前后闭环 | Beta 接口需版本门槛和契约测试 | Beta 稳定性;所有 WorkBuddy 产品表面等价 |
| CodeBuddy Agent SDK | SDK 回调与 PreCompact | SDK 集成方可主动持久化 | 需宿主应用自行提供后事件和注入 | SDK 能力自动出现在桌面 WorkBuddy |
| WorkBuddy 桌面/企业 Agent | 以实际产品文档和管理员配置为准 | 只有暴露插件/Hooks 的表面可接入 | 否则最多通过显式 handoff capsule | 内部压缩前后不可见时的强连续性保证 |
用户差异仅体现在安装、Hook 信任和降级提示;状态查看、纠正、handoff 和删除语义保持一致。第一个适配器选择 Claude Code。
14. 与用户意图插件、执行防偏插件和 Harness 的边界
单一真相
最终有效状态只有一个投影:
- 用户事件和当前可验证证据是最终权威。
- 用户意图插件拥有 intent namespace,负责形成和更新目标、约束、授权、纠正、偏好与分歧。
- Context Continuity 拥有转换事件、工作对象、版本、验证完成状态、快照、恢复核验和 handoff 运输;它不自行改写已绑定的意图。
- 执行防偏插件只读 execution_guard_view,输出继续、提醒、询问或阻止判断,不回写有效状态。
- Harness 拥有模型调用、权限、工具执行和生命周期;平台摘要只是不可信缓存。
接口
- 意图输入必须有不可变 contract_ref、单调递增 contract_version、规范化内容摘要和带来源的状态项。
- 同版本不同摘要、版本回退或悄悄切换 contract_ref 必须拒绝。
- 防偏输出读取 contract 版本、阶段、开放承诺、证据引用和捕获时间,不取得状态写权限。
- 如果意图插件尚未提供稳定版本和规范哈希,自动绑定保持关闭;不能从生成时间或展示文本伪造版本。
是否值得独立
当前判断:独立呈现、底层共享。
独立价值在于:只安装它也能在真实压缩和恢复后保护目标、工作位置和下一步;用户无需安装执行阻断或完整意图建模。它同时适合作为另外两个插件共享的状态与生命周期基础模块。
证伪门槛是:若真实三臂评估不能在宿主原生能力上减少偏移和返工,或用户只把它感知为 Hook 包装,应停止独立市场扩张并降为共享基础模块。即使平台未来内置摘要和记忆,独立价值仍可能存在于跨平台状态协议、来源/覆盖核验、可移植 handoff、版本证据和供应商无关评估;若平台也原生提供这些保证,则应缩减或退出。
15. 防止插件反过来限制 Agent
- 不每轮摘要;只在状态变化信号和有损转换事件上增量处理。
- 用户新意图优先,通过新增项与 supersedes 生效;旧快照不能覆盖新用户事件。
- Agent 可以探索假设和改变判断,但推断保持 agent_inference/unverified,不能偷偷改变用户目标。
- 单一 ledger 投影是插件间接口;宿主摘要、状态文件和长期记忆没有并列最终所有权。
- 普通回合不调用模型;恢复上下文 800/1500 token 预算;每任务 ledger、快照、事件和活动项都有硬上限。
- 无风险、无转换、无状态变化时保持沉默。
- 明确 clear/reset、任务身份变化、工作区不匹配或 contract_ref 变化时丢弃旧有效投影并重建。
- Hook 和 MCP 失效时宿主 fail-open,仍可正常工作;只撤销“受连续性保护”的保证。
16. 隐私、存储、删除和数据保留
- 默认本地、任务作用域、无网络、无遥测、无运行时依赖。
- 不复制完整 transcript、隐藏推理、完整工具输出或项目文件。
- 每条非空提示保存 SHA-256、长度和信号;只有连续性风险信号才保存最多 512 字符脱敏片段。它不能证明规范化语义。用户权威必须由用户第二次精确确认完整提案;普通提示不保存正文,也不复制完整提示或 transcript。
- 常见凭据模式在落盘前脱敏,但脱敏不是秘密管理器。
- 最多三个快照、每任务 8 MiB ledger、2000 个事件、128 个活动项;超限拒绝连续性写入,不隐式删历史。
- 30 天只是建议清理期,不后台自动删除。
- MCP reset/delete 需要一次性挑战和第二条原样用户确认;CLI 需要精确任务引用二次确认;路径删除必须通过词法路径和 realpath 核验证明目标位于插件数据根。
- 卸载不默认删除用户 ledger;市场测试环境应在卸载前显式清除合成数据。
17. 失败模式与降级方案
| 失败 | 检测 | 降级 |
|---|---|---|
| PreCompact 未运行或写入失败 | 无匹配快照/Hook 错误 | 宿主继续;标记未保护,不声称恢复等价 |
| PostCompact 缺失 | transition epoch 无完成事件 | continue_with_markers;高风险动作前询问 |
| ledger 哈希损坏 | hash-chain 校验失败 | 连续性恢复 fail-closed;宿主低风险工作 fail-open |
| 快照过时 | ledger generation 晚于快照 | 从较新可核验投影 repaired 恢复 |
| 平台摘要含错误 | 与有效投影冲突或无来源 | 作为候选丢弃/标记,不覆盖 |
| 旧信息被新信息覆盖 | supersedes/status | 只投影新项,保留审计历史 |
| 外部意图回滚或碰撞 | version/hash/ref 校验 | 拒绝绑定,保持最后可验证版本 |
| 工作区或 Git 指纹变化 | 当前指纹不等于快照 | 已完成状态变 stale;高风险动作询问 |
| 数据目录不可持久 | data-root capability | 标记 volatile,高风险恢复询问 |
| 子 Agent 返回错误 | candidate-only、来源/证据复核 | 不直接改变父任务有效状态 |
| token 超限 | 确定性预算器 | 按风险裁剪并公开 omitted count |
| 插件完全失效 | Hook/MCP 非零或超时 | fail-open 宿主;不执行隐式拦截 |
18. 可证伪评估方案与成功指标
评估集
冻结 30 个任务:自动压缩、多次压缩、用户改目标、用户纠正、未解决分歧、长暂停恢复、跨 Agent 交接、摘要错误、旧信息被覆盖、原始对话不可保留十类各两个单项案例,再加十个复合案例。
优先使用真实历史任务和真实用户纠正;缺口使用具有确定性验收条件的合成任务。每个案例冻结模型、工具、工作区、输入、压缩点和 oracle。
三臂
- 完整上下文、不压缩;
- 只使用宿主原生压缩或记忆;
- 使用 Context Continuity。
Oracle
由可检查约束、文件/工具结果、Git 或资源版本、证据引用、用户纠正记录和真实任务完成情况组成。模型评审只能辅助归类,不能单独决定成功。
指标与预注册门槛
- 关键目标、硬约束和授权保留率 100%;全部有效不变量加权保留率至少 95%。
- 下一步动作等价率至少 90%。
- 重大目标或约束偏移率相对原生方案下降至少 50%。
- 错误或已失效信息恢复率不高于 1%。
- 每次转换注入 P50 不超过 800 tokens、P95 不超过 1500 tokens。
- 无转换普通回合不调用额外模型,用户中断率不高于 5%。
- 记录压缩后返工工具动作/人工分钟和恢复时间。
- 最终用户接受率比原生方案提高至少 10 个百分点,且不以高风险误拦截换取。
协议 fixture、单元测试、Hook 次数和模型评分不能证明效果。当前版本已有真实生命周期技术证据,但真实三臂效果仍是 NO RESULT。
19. MVP 明确不做什么
- 不提供通用记忆数据库、语义搜索或用户画像。
- 不自动读写长期记忆。
- 不备份或重放完整对话。
- 不自动判断并改写用户意图。
- 不阻止工具、不做权限或合规引擎。
- 不提供任务看板、计划器、工作流编排或后台 daemon。
- 不做云服务、账户系统、遥测、团队同步和 UI dashboard。
- 不承诺所有 Agent 产品达到 Codex 同级保证。
- 不向 Codex universal plugin directory 宣称 GA,直到真实三臂和独立 dogfood 通过。
20. 单点工期估算
共同假设
- 一名熟悉 Agent 插件、本地状态系统和 Node.js 的高级工程师。
- 每工作日 8 小时。
- 已有一台 Windows 和一套 POSIX 测试环境。
- Codex 当前 Hooks/插件/App Server 接口可用。
- 不含公开市场人工审核等待。
- 完成标准包括源码、测试、可复核真实生命周期收据、安装/卸载路径、隐私说明和发布文档,不以“代码写完”代替。
Codex 可验证原型:12 个工作日
| 工作 | 天数 |
|---|---|
| 官方能力与故障案例冻结 | 2 |
| 最小状态协议与来源/覆盖投影 | 2 |
| ledger、Hook、MCP 最小闭环 | 4 |
| 真实 manual/auto 压缩验证 | 3 |
| 插件打包与原型说明 | 1 |
Codex MVP:28 个工作日
| 工作 | 天数 |
|---|---|
| 可验证原型 | 12 |
| 并发、损坏、路径、容量和脱敏硬化 | 5 |
| resume、clear、subagent 和降级生命周期 | 4 |
| 30 例协议评估与可复现 oracle | 3 |
| 安装、升级、卸载及跨平台 CI | 1 |
| 隐私、支持、开源与发布文档 | 3 |
首个 Claude Code 适配器:9 个工作日
| 工作 | 天数 |
|---|---|
| Hook/schema 映射与版本门槛 | 2 |
| 数据目录和任务身份适配 | 2 |
| Pre/PostCompact、resume 和子 Agent 生命周期 | 2 |
| 插件安装/卸载与用户文档 | 1 |
| Windows/POSIX 契约与真实生命周期测试 | 2 |
21. 发布判断
- 独立可感知价值:技术上成立,真实压缩后可恢复最小状态;效果增益尚未测定。
- 共享基础模块价值:成立,最适合承载三插件共享的来源、版本、覆盖、快照和恢复协议。
- 独立安装方式:public beta 保留,便于只需要连续性、不需要意图建模或执行阻断的用户。
- 最终状态所有权:一个投影,不是三个插件各一份;意图插件拥有 intent,连续性拥有 lifecycle/operational,防偏只读。
- 当前市场结论:可以发布 GitHub public beta;不能宣称 GA 或已证明降低返工。
- 下一道产品闸门:完成真实三臂和独立用户 dogfood。未达门槛则降为共享基础模块。
22. 可复制的实施 Goal 提示词
这段提示词是独立交付物。不要在仅阅读或规划它的任务里调用 create_goal、自动执行 Goal 或提前编写代码;只有用户明确要求实施后才开始。
目标:根据 Context Continuity PRD 实现 Codex 版本的最小可验证闭环,并用真实压缩生命周期验证。产品只保护跨有损转换会改变后续动作的任务不变量,不扩展为完整记忆平台、任务管理器、权限系统或第二套 Harness。
开始前:
1. 冻结 PRD、当前 Codex 官方插件/Hook/App Server 文档、CLI 版本、测试模型和工作区。
2. 先做决策门槛:确认当前 Codex 确实提供 PreCompact、PostCompact、SessionStart(compact/resume) 和插件打包能力;不存在的能力必须降级并标为未验证,禁止虚构 Hook。
3. 不调用 create_goal。先输出实现计划和风险;收到用户明确实施授权后再写代码。
最小架构:
- 一个本地、任务作用域、append-only、hash-chain ledger 和确定性有效状态投影。
- 每条状态表达 id、namespace、kind、statement、source_ref、recorded_at、status、authority、verification/confidence、supersedes、scope。
- intent namespace 可由外部用户意图插件拥有;连续性插件不得悄悄改写它。
- operational/lifecycle namespace记录工作对象指纹、验证完成状态、下一步、转换事件、快照和恢复结果。
- 平台摘要、Agent 推断、检索结果和 imported handoff 默认 candidate-only。
- generation 乐观并发、原子写、单任务锁;不做 last-write-wins。
生命周期:
- UserPromptSubmit 只记录来源和变化信号,普通回合不调用额外模型。
- PreCompact 原子生成最小快照。
- PostCompact 记录配对完成;缺失时标记未知,不伪造完成。
- SessionStart(compact/resume) 比较快照、最新 ledger 投影、工作区指纹和持久目录,分类为 equivalent、repaired、continue_with_markers 或 ask_before_high_risk;所有旧 next_action 先失效并重新推导。
- 可核验信息自动修复;低风险缺口标记继续;影响目标、权限、范围、工作版本或不可逆动作时询问用户。
- 子 Agent capsule 限定范围和授权;回传只作候选。
- Hook/MCP 失败时宿主 fail-open;ledger 损坏只使连续性恢复 fail-closed。
接口:
- 公开提供查询、提案确认、记录、纠正、handoff 导入/导出和精确状态管理;外部意图绑定只保留内部适配协议,不通过公共 MCP 暴露。
- 读取不得创建持久状态。
- 未来外部 contract 必须由模型不可见、持有运维凭据的宿主 adapter 提供稳定 ref、单调 version、规范 snapshot sha256 和 items_digest;拒绝版本回退、同版本任一内容碰撞和无 reset 的 ref 切换。模型或用户不能提供该凭据。
- 为执行防偏插件提供只读、最小 execution_guard_view,不授予写权限。
隐私与成本:
- 默认本地、无网络、无遥测、无运行时依赖。
- 不保存完整 transcript、隐藏推理、完整工具输出或项目文件。
- 每条非空提示保存哈希、长度和信号;只有连续性风险信号才保存最多 512 字符的
脱敏片段,普通提示不保存正文,也不复制完整提示或 transcript。
- 默认恢复预算 800 tokens、硬上限 1500;公开 omitted count。
- 对 ledger、事件、快照、活动项、单次写入和 handoff 设置硬上限,不静默扩容或删除历史。
- MCP reset/delete 使用一次性挑战和第二条原样用户确认;CLI 使用精确 task_ref 二次确认;删除验证词法路径与 realpath 均位于数据根。
测试:
- 单元和故障测试覆盖来源、supersession、冲突、并发、hash 损坏、原子写恢复、路径穿越、脱敏、容量、token 裁剪、外部 contract、只读查询和 candidate-only handoff。
- Hook/MCP smoke 测试使用真实 stdio JSON。
- 安装后的缓存包必须完成跨进程写入/恢复、Skill 与许可证可读、脱敏和两阶段精确删除 E2E。
- 至少验证一次真实手动压缩和一次真实自动压缩,并观察 PreCompact、PostCompact、SessionStart(compact) 与 App Server contextCompaction started/completed;若自动压缩无法可靠触发,明确降级为未验证,不能用模拟替代。
- 另行建立 30 例、三臂真实评估:不压缩、宿主原生、插件。Oracle 使用可检查约束、文件/工具结果、版本、用户纠正和真实完成状态;模型评分只能辅助。
验收:
- 官方插件 validator、仓库 validator、全测试、Hook/MCP smoke、依赖审计、Windows/POSIX CI 通过。
- 真实生命周期收据不包含原始提示、线程 ID、秘密或本机绝对路径。
- 安装、升级、卸载和数据删除说明可由首次用户执行。
- 技术发布与产品效果分开:生命周期闭环通过可发布 beta;真实三臂门槛未通过前不得宣称降低偏移或返工。
- 最终报告列出精确测试数、真实事件证据、已知限制、未验证项、回滚/卸载结果和是否达到 beta/GA 门槛。