Codex 长任务不会交接?我造了一个「会话轮换」技能
长运行的 Codex 任务面临上下文爆炸、模型切换、环境中断——这个技能用持久检查点 + 唯一继任 + 确认回读,让任务身份和工作状态安全转移,不丢上下文、不伪造结果。
问题:Codex 任务跑了三天,上下文快撑爆了
我用 Codex 跑一个长任务,三天下来上下文越来越长,响应越来越慢,甚至想换个更强的模型继续。但问题是:怎么把「当前做到哪了、开了哪些 PR、还有哪些 blockers、Git 状态什么样」安全地交给下一个会话?
直接复制粘贴聊天记录?那里面混杂了大量已废弃的中间结论、试错路径和无关对话。让新会话自己读仓库?它读不到「我为什么选这个方案而不是那个」的决策理由。
365-session-rotation-maintainer 就是来解决这个交接问题的。
核心原则:轮换是「可恢复的转移」
把轮换当作一次可恢复的「工作状态 + 任务身份」转移。在唯一继任任务完成接收、确认和可见交接前,始终保留原任务。
几个铁律:
- 轮换必须用户明确要求;年龄、上下文长度、不方便或新模型发布,不构成授权。
- 最多创建一个继任;不能因为 setup、acknowledgement 或 readback 慢就再建一个。
- 保留无关工作区变更;不 reset、不 clean、不 stash、不 absorb。
- 绝不复制原始 transcript、隐藏推理、凭证、token、私有链接或不必要的日志。
七步轮换流程
- 冻结并盘点原任务 — 停止普通实施,从 durable evidence 捕获当前真相:任务身份、当前目标与交付阶段、已完成工作(带 commit/PR/文件/产物证据)、未决工作与精确 blockers、已知债务和保留决策、活跃外部操作/受保护动作/回调/等待、分支/HEAD/工作区变更与残留归属、排序后的下一步及哪些需要新授权。
- 创建持久检查点 — 用项目现有的交接位置;没有则写入
docs/session-handoffs/<task-slug>.md。检查点包含决策和证据,不是对话历史。 - 审计 — 确认六项条件全过:原任务身份和状态已知、工作区状态已分类保留、无未知活跃受保护动作在飞、检查点与当前工作匹配、无未完结轮换或已创建继任、任务管理工具可用。
- 只创建一个继任 — 在同一项目或显式选择的目标中创建一个继任,初始提示用中性占位符如
WAIT_FOR_VERIFIED_HANDOFF。 - 发送一次结构化交接 — 包含:原任务/继任标识、项目/仓库/分支、检查点路径和摘要、完整工作盘点、保留决策和约束、推荐的首个动作、需要新授权的动作、要求的确认格式。
- 验证继任 — 回读并验证:目标任务收到了交接、标识和检查点摘要匹配、继任能访问所需仓库或产物、完整的 owner-facing kickoff 在其最终答案中可见、未决工作/blockers/保留决策/下一步/授权边界全部存在、无受保护动作从历史授权启动。
- 最后再改名和归档 — 确认通过后才:让继任成为 canonical 活跃任务、按需重命名、归档原任务(仅当其工作区安全且不背负活跃义务时)。
恢复规则
- 继任创建前失败:原任务保持 canonical。
- 继任创建后失败:保留两者,恢复同一继任。
- 陈旧或不匹配的 acknowledgement:只纠正 named mismatch。
- 原任务脏或分歧:可见保留,不归档。
- 活跃受保护动作:等其终端成功或验证回滚。
安装方式
bash git clone https://github.com/laojin1900/365Skill.git ./install.sh 365-session-rotation-maintainer
仓库链接:github.com/laojin1900/365Skill/tree/main/skills/365-session-rotation-maintainer
老金出品 · 用 AI 提效
365SkillAgent Skills 实验仓库:13 个 365 原创技能
365Skill 是我们探索 Agent 技能的公开仓库:SKILL.md 标准格式、deny-by-default 发布策略、evals 验证体系。365 原创技能共 13 个——11 个已公开,2 个内部使用中。Apache-2.0 开源,欢迎 star、安装、提 issue。
更多老金产品:Sellenca · 365AIOrg · AllModelsAPI · 365Loopa · 365 Ops