RedinGhost's picture
Publish curated static research mirror
6f4aa22 verified
|
Raw History Blame Contribute Delete
10.2 kB

使用与安装

最简单的理解

它像一张由插件自动维护的“任务防忘卡”。Agent 遇到上下文压缩、重新进入任务或 交接时,会先核对目标、硬约束、用户纠正、当前工作对象和完成状态,再重新判断下一步。

普通回合不用手工写摘要。插件只在连续性风险可能改变高风险动作时打扰用户。

Codex 用户流程

安装

macOS、Linux 和 Windows 使用同样的命令:

codex plugin marketplace add rrrrrredy/context-continuity --ref v0.2.0-beta.2
codex plugin add context-continuity@context-continuity

随后重启或重新进入任务,打开 /hooks,检查实际安装缓存中的命令,只信任确认过 的精确定义。安装会改变 Codex 插件状态,Hook 信任始终由用户决定。

安装成功时,codex plugin list --json 能找到 context-continuity@context-continuity,/hooks 能看到并信任七组 Hook: SessionStart、UserPromptSubmit、PreCompact、PostCompact、 SubagentStart、SubagentStop 和 SessionEnd。任何 node not found 都表示保护尚未生效。再按根 README 的 60 秒无文件修改测试完成一次真实状态确认。

日常使用

  1. 正常工作。普通提示只做确定性信号检查,不生成摘要,也不额外调用模型。
  2. 需要权威保存时,说“保护当前目标和约束”。
  3. Agent 会列出准备保存的目标、约束等内容,并给出一段精确确认文本。
  4. 内容正确就把确认文本原样发回;不正确就直接指出哪一条要改。
  5. 压缩或恢复后,插件会核对仍有效的内容,并要求重新判断旧的下一步。
  6. 恢复有误时,说“这条恢复错了,正确内容是……”。确认后会保留旧记录和更正 关系,方便审计。

可直接使用的说法:

  • “显示当前连续性状态。”
  • “保护当前目标和约束。”
  • “重建连续性状态。”
  • “导出最小交接。”
  • “关闭/开启这个任务的连续性保护。”
  • “重置/删除这个任务的连续性状态。”
操作 会发生什么 不会发生什么
关闭 停止为该任务新增自动连续性写入;旧状态仍可查看和导出 不删除 ledger
重置 清空当前有效投影并开始新 generation,同时保留追加式历史;诊断 CLI 会归档旧任务目录 不删除项目文件或原始对话
删除 删除当前任务的 Continuity 状态及匹配的 Continuity 归档 不删除项目文件、原始对话、宿主记忆或其他任务

关闭、开启、重置和删除都要确认两次。第二次必须把插件显示的完整确认文本原样发回。 这段文本只对当前任务、当前 generation 和当前一次操作有效,旧确认不能复用。

自动生命周期

  • UserPromptSubmit 记录哈希、长度和信号;仅风险信号保留脱敏片段。
  • PreCompact 原子保存最小状态。
  • PostCompact 记录边界完成。
  • SessionStart(source: compact) 在下一次模型请求前核验并注入恢复投影。
  • SessionStart(source: resume) 核验恢复状态;clear 使旧有效状态失效。
  • SubagentStart 注入有界 handoff;SubagentStop 只产生未验证候选。
  • compact、resume、handoff 和 SessionEnd 都会让旧 next_action 失效。

Hook 未启用、未信任或运行失败时,Codex 继续工作,但该边界不再有连续性保证。

DeepSeek Harness 用户流程

要求 DeepSeek Harness 0.1.1-rc.2、Node.js 20 或更新版本与 pnpm。 <profile> 是 $DSH_HOME/profiles/<name> 下一个可运行组合的名字。可使用已有 profile,也可给预览测试单独取名;官方的首次 dsh plugin --profile <name> add ... 会初始化它。创建和加载规则见 官方 profile/plugin 指南。

dsh plugin --profile <profile> add github:rrrrrredy/context-continuity#v0.2.0-beta.2
dsh --profile <profile> --dump-config

输出必须出现 id 与 name 都为 context-continuity 的 layer/service。 随后启动 profile:

dsh --profile <profile>

启动后可以直接说:

  • “显示当前连续性状态。”
  • “保护当前目标和约束。”
  • “这条恢复错了,正确内容是……”
  • “删除这个任务的连续性状态。”

profile 运行时,插件使用相同状态模型和八个操作:

  • agent/inbox/inserted 绑定可信用户来源;
  • 观察到 compaction/start 后,把最小 ledger 快照排入当前会话队列;
  • compaction/end 成功后才恢复;
  • agent/pre-step 在当前消息之前注入有界投影;
  • resume 和父子 Agent 交接进入相同核验闭环。

DSH 工具参数不能自行提供 task、cwd 或 user source;适配器从宿主会话绑定。DSH session log 不写入插件私有未知事件。

当前已验证发布版 Host API 生命周期和隔离安装包。完整 DSH CLI profile add 以及 DSH 引擎自动触发压缩尚无本地发布收据,详见 能力记录。

为什么需要第二次精确确认

Hook 或 DSH 观察点只能证明“用户发过一条消息”,不能证明模型生成的结构化目标与 用户原意完全相同。第一条消息只能触发候选;第二条精确确认把完整、可读、绑定当前 task/generation 的提案升级为用户权威状态。

Agent 推断必须带来源、置信度和非 verified 状态。任意转述、引用、旧消息或模型生成 的 source ID 都不能代替确认。

恢复判断

  • 可靠证据足以恢复:自动修复并继续。
  • 不影响当前动作的低风险不确定性:标记后继续只读或可逆工作。
  • 可能改变目标、范围、授权、工作对象、发布、删除、外发或不可逆动作:暂停相关动作, 只问一个必要问题。
  • 宿主摘要与 ledger 不一致:摘要只作不可信缓存。
故障 用户看到的状态 处置
Node 或 Hook 启动失败 Codex 可继续运行,但该边界没有连续性保护 确认 Node.js 20+ 在宿主进程 PATH 中,重启 Codex,检查 /hooks,再跑 60 秒 smoke test
恢复内容错误 受影响的高风险动作应暂停 直接说明正确内容,检查纠正提案,再发送第二次精确确认
ledger 哈希损坏 不恢复,也不继续写入损坏状态 先保留损坏数据;rebuild 只能核验并重建有效 ledger 的投影,不能修复哈希不一致
DSH layer 缺失 DSH 继续运行,但适配器未生效 重新加入固定 tag,重启 profile,并用 dsh --profile <profile> --dump-config 核验

ledger 损坏时,如果精确 task_ref 与实际数据目录都已独立确认,可使用安装包内的诊断 CLI 做按任务删除;task_ref 和 confirm_task_ref 必须完全相同。它会删除该任务 及匹配的 Continuity 归档。任一路径或引用不确定时,保持数据原样并提交 issue,不要 猜测目录、改写 ledger 或删除整个插件数据根。

公共接口边界

Codex MCP 和 DSH native tools 暴露同一组八个有界操作:get state、prepare confirmation、record state、correct state、snapshot、export handoff、import handoff 和 manage state。

公共接口不接受 intent provider token 或 verified-evidence token,也不能让模型把 自身判断写成 verified_evidence。

用最简单的话区分:Context Continuity 负责在有损转换前后保存、搬运和核验任务状态; Execution Fidelity Guard 负责根据当前状态判断待执行动作与完成声明。两者只有冻结的 只读协议边界,没有实时桥接。Continuity 的 DSH 适配器面向 Harness 0.1.1-rc.2,另一个 Guard DSH 适配器面向 0.1.2-alpha.2,不要把它们当成 能在同一 profile 中自动协同的一对组件。

数据位置与卸载

Codex 默认:

$CODEX_HOME/plugin-data/context-continuity/v1

DeepSeek Harness 默认:

$DSH_HOME/plugin-data/context-continuity/v1

隔离测试或托管运行可设置 CONTEXT_CONTINUITY_DATA_DIR。插件默认不复制 transcript、不写长期记忆,也不把宿主摘要当事实源。

Codex 卸载:

codex plugin remove context-continuity@context-continuity
codex plugin marketplace remove context-continuity

DSH 卸载:

dsh plugin --profile <profile> remove context-continuity

卸载不静默删除 ledger。若需彻底清除,先在仍能运行插件时说“删除这个任务的连续性 状态”,把第二次精确确认原样发回,再用“显示当前连续性状态”确认该任务已经消失。 只有插件无法运行时才手工处理目录。

下面的命令只打印默认目录候选,不保证是插件运行时实际使用的路径。 CONTEXT_CONTINUITY_DATA_DIR、自定义 CODEX_HOME / DSH_HOME、Desktop 进程环境和安装缓存推导都可能改变实际位置。删除前必须从运行时配置或已检查的安装命令 独立核对实际目录,不能直接拿候选路径执行删除。

macOS / Linux 打印默认目录候选:

printf '%s\n' "${CODEX_HOME:-$HOME/.codex}/plugin-data/context-continuity/v1"
printf '%s\n' "${DSH_HOME:-$HOME/.dsh}/plugin-data/context-continuity/v1"

Windows PowerShell 打印默认目录候选:

$ccCodexRoot = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $HOME ".codex" }
Join-Path $ccCodexRoot "plugin-data\context-continuity\v1"
$ccDshRoot = if ($env:DSH_HOME) { $env:DSH_HOME } else { Join-Path $HOME ".dsh" }
Join-Path $ccDshRoot "plugin-data\context-continuity\v1"

插件只管理自己的 plugin-data/context-continuity,不会触碰原始对话、项目文件、 宿主记忆或其他插件。

Codex 的安装与 Hook 信任机制以当前官方 插件文档和 Hooks 文档为准。