Spaces:
Running
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
36.1 kB
| # Context Continuity 调研结论与产品需求文档 | |
| 版本:0.1 | |
| 冻结日期:2026-08-28 | |
| 产品阶段:Codex public beta;产品效果尚待真实三臂评估 | |
| ## 给普通用户的四句话 | |
| 1. 这个插件会在 Agent 压缩上下文、恢复旧任务或把工作交给另一个 Agent 前后,自动保护那些一旦丢失就会让工作走偏的信息。 | |
| 2. 大多数时候用户不会看到它;只有恢复出错、目标或权限不确定、工作对象版本变化时,用户才会看到修复提示或一个必要问题。 | |
| 3. 不使用它,Agent 仍能继续说话和执行,但可能继续旧目标、忘记纠正、把争议写成共识,或在错误版本上重复工作。 | |
| 4. 宿主自带的长上下文、摘要和记忆主要解决“还能看到什么”,没有同时保证来源、时序、覆盖、冲突、工作版本和压缩前后动作等价。 | |
| ## 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](https://arxiv.org/abs/2307.03172) | | |
| | LongMemEval 把知识更新和应当拒答列为长期记忆核心能力;其研究报告长上下文与商业助手在持续交互记忆上出现明显下降。 | 连续性协议必须表达覆盖关系、失效和不确定性,不能只做命中率。 | [LongMemEval](https://arxiv.org/abs/2410.10813) | | |
| | 递归摘要能改善长对话一致性,但摘要仍是模型生成的派生物。 | 摘要可作恢复缓存,不能成为唯一权威来源。 | [Recursive Summarization](https://arxiv.org/abs/2308.15022) | | |
| | MemGPT 通过分层存储和上下文搬运扩展可用记忆。 | 分层和搬运解决容量问题,不自动解决来源、冲突与当前有效性。 | [MemGPT](https://arxiv.org/abs/2310.08560) | | |
| | Generative Agents 使用观察记录、检索、反思和规划,消融实验显示这些部件影响行为。 | 事件记录与选择性检索有价值,但“反思”是新的模型推断,不能自动晋升为用户事实。 | [Generative Agents](https://arxiv.org/abs/2304.03442) | | |
| | Codex 插件可打包 Skill、MCP 和 Hooks;当前官方 Hook 文档包含 PreCompact、PostCompact、SessionStart(compact/resume);App Server 可发起并观察压缩。 | Codex MVP 能验证真实压缩前后闭环,不必默认依赖压缩后猜测。 | [插件打包](https://developers.openai.com/plugins/build/plugins)、[Hooks](https://learn.chatgpt.com/docs/hooks)、[App Server](https://learn.chatgpt.com/docs/app-server) | | |
| | Claude Code 当前文档列出 PreCompact、PostCompact、SessionStart 的 compact/resume 来源,并支持插件级 Hooks。 | 第一个跨平台适配器可复用大部分生命周期语义。 | [Claude Code Hooks](https://code.claude.com/docs/en/hooks) | | |
| | Cursor 当前文档提供 sessionStart、preCompact、transcript_path 和子 Agent Hooks;preCompact 明确是只读观察,文档未列出 postCompact。 | 可在压缩前保存,但压缩后只能用会话 epoch、状态摘要和下一回合信号推断,保证弱于 Codex。 | [Cursor Hooks](https://prod.cursor.com/docs/hooks) | | |
| | Gemini CLI 的 PreCompress 异步触发,不能阻止或修改压缩;SessionStart 只列 startup/resume/clear。 | 可以保存近实时状态,但不能保证写入先于压缩完成,也没有直接压缩后配对点。 | [Gemini CLI Hooks](https://github.com/google-gemini/gemini-cli/blob/main/docs/hooks/reference.md) | | |
| | CodeBuddy Code v1.16.0+ 文档列出 PreCompact、PostCompact、SessionStart(compact/resume),但 Hooks 标为 Beta;Agent SDK 与 WorkBuddy 桌面产品是不同能力面。 | CodeBuddy 可做实验适配;不能把 SDK 回调能力外推成所有 WorkBuddy 表面都可用。 | [CodeBuddy Hooks](https://cloud.tencent.com/document/product/1831/137030)、[插件参考](https://cloud.tencent.com/document/product/1831/137036) | | |
| ### 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: | |
| 1. 对应至少一种高代价连续性故障; | |
| 2. 有可靠来源或可验证办法; | |
| 3. 删除它会在冻结案例中改变下一步或最终结果; | |
| 4. 收益高于注入 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. 任务不变量与数据生命周期 | |
| 1. 用户提示或可验证工件变化产生来源事件。 | |
| 2. 只有改变动作的状态项增量写入 ledger;写入使用 generation 乐观并发控制。 | |
| 3. 投影按 authority、status、supersedes 和 namespace 确定当前有效状态。 | |
| 4. PreCompact 生成包含投影摘要、工作区指纹、事件位置和覆盖缺口的最小快照。 | |
| 5. 恢复时从 hash-chain ledger 重建投影,与快照和当前工作区比较。 | |
| 6. 最多保留三个快照;ledger 达硬上限时拒绝连续性写入,不静默删除历史。 | |
| 7. clear 使当前状态失效;MCP reset 追加重置边界,CLI reset 先归档旧目录;delete 只删除经过词法路径和 realpath 双重边界核验的精确任务目录。 | |
| 8. 任务状态与长期记忆隔离;任何长期提升都必须重新验证,不由本插件自动完成。 | |
| ## 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 中的实现与使用 | |
| ### 普通用户流程 | |
| 1. 从 GitHub marketplace 安装。 | |
| 2. 打开 /hooks 查看插件 Hook 并选择是否信任。 | |
| 3. 正常工作;需要时用自然语言要求显示、纠正、导出或删除状态。 | |
| 4. 压缩或重进任务后,通常直接继续;只有材料风险才出现提示或问题。 | |
| 5. 卸载时先按任务删除所需状态,再移除插件和 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。 | |
| ### 三臂 | |
| 1. 完整上下文、不压缩; | |
| 2. 只使用宿主原生压缩或记忆; | |
| 3. 使用 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 或提前编写代码;只有用户明确要求实施后才开始。 | |
| ~~~text | |
| 目标:根据 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 门槛。 | |
| ~~~ | |