跳转至

压缩与镜像

在 Codex 轮次中,谁拥有压缩,以及 OpenClaw 转录镜像保留什么。这是 Codex harness runtime 指南的一部分;每个章节移动到的位置 列出了每个章节。

压缩与转录镜像

当所选模型使用 Codex harness 时,Codex app-server 拥有原生 token 压力压缩和手动线程压缩。OpenClaw 单独拥有其转录镜像。当 agents.defaults.compaction.maxActiveTranscriptBytes 设置为正值时,OpenClaw 会在普通轮次和心跳轮次之前检查该镜像。当字节守卫触发时,OpenClaw 要求通过其所选宿主上下文引擎进行语义压缩,然后才接纳该轮次。此宿主压缩本身不会替换或重写 Codex 的规范原生线程。

宿主镜像压缩提交后,OpenClaw 可以请求 thread/compact/start 以同步符合条件的原生线程。此请求是次要的:OpenClaw 不会为宿主隔离操作或具有受限原生权限的绑定发送它,并且不可用或失败的原生同步不会回滚已提交的宿主压缩。

显式压缩请求,例如 /compact 或插件请求的手动压缩操作,会通过 thread/compact/start 启动原生 Codex 压缩。OpenClaw 会保持请求和共享客户端租约打开,直到 Codex 发出匹配的 contextCompaction 完成项,然后报告压缩轮次已完成。如果该终结轮次超过配置的压缩超时,OpenClaw 会请求原生轮次中断。租约和每线程压缩栅栏会保持持有,直到 Codex 报告终结状态或确认中断 RPC。如果 Codex 未在中断宽限期内确认,OpenClaw 会在释放栅栏之前退役连接。远程连接还会分离匹配的线程绑定,以便后续工作不会与未确认的远程轮次重叠。退役连接上的其他轮次会失败,并可在新的客户端上重试。客户端关闭、请求取消或失败的压缩轮次会返回失败操作。自动原生 token 压力压缩仍是 Codex 的职责。除上述次要同步外,OpenClaw 仅为显式手动请求启动原生压缩。

独立的冷压缩操作不会运行 prompt-build 钩子,也不会建立普通轮次配置。它在操作后释放其订阅;下一个普通轮次会验证配置,并通过正常恢复路径刷新通用策略。热压缩只返回它实际获取的配置所有权。

如果上下文引擎压缩轮换了 OpenClaw 会话代际,即使 Gateway 在提交新代际后立即停止,下一个 Codex 轮次、压缩或侧边问题也会继续同一原生线程。只能采用该会话键下记录的前驱。在恢复的线程执行前,原生工具目录、连接所有权和监督检查仍然适用。

成功的本地回退或分支切换是上下文变更。它作为转录变更的一部分使旧原生绑定失效,并在返回前释放其订阅。下一个 Codex 轮次会使用所选 OpenClaw 历史启动新的原生线程;被擦除的轮次无法通过原生恢复返回。无效切分和已回滚的转录变更会保留绑定。

当 OpenClaw 将现有会话的连续性投影到新的 Codex 线程时,它会包含已保存的压缩和分支摘要,即使没有更早的用户消息。上下文引擎投影也会保留这些摘要条目。摘要仍作为先前上下文引用,与当前请求分开,并仍受投影大小限制约束;过大的摘要或较早的上下文可能被截断。此交接不会改变原生 Codex 压缩的所有权。

当上下文引擎请求 Codex 线程引导投影时,OpenClaw 会将工具调用名称和 ID、输入形状以及脱敏的工具结果内容投影到新的 Codex 线程中。它不会将原始工具调用参数值复制到该投影中。

镜像包含用户 prompt、最终助手文本,以及 app-server 发出时的轻量级 Codex 推理记录。推理保留类型化的 thinking 内容,而不是普通最终答案文本,因此 OpenClaw 现有的推理可见性和历史控制适用。OpenClaw 会记录原生压缩开始和终结状态,但不会暴露人类可读的压缩摘要,也不会提供可审计的列表来说明压缩后 Codex 保留了哪些条目。

同一压缩项的重复完成通知只计一次,并且不会重复完成钩子或活动计划恢复。

由于 Codex 拥有规范原生线程,tool_result_persist 不会重写 Codex 原生工具结果记录。它仅在 OpenClaw 写入 OpenClaw 拥有的会话转录工具结果时适用。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw