Spaces:
Running
Running
File size: 36,095 Bytes
6f4aa22 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 | # 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 门槛。
~~~
|