
OpenRig rig fork会话分叉指南从同一个Agent源复制出平行分支【免费下载链接】openrigMulti-agent harness that runs Claude Code and Codex together as one system项目地址: https://gitcode.com/GitHub_Trending/op/openrigOpenRig 是一款多智能体编排框架把 Claude Code 与 Codex 组装成一个统一管理的 Agent 团队。它的rig fork能力允许你从同一个 Agent 源会话复制出平行分支保留源座席seat的全部对话上下文同时派生出一个独立的新座席两条分支互不干扰、并行推进。本指南用 3 种方式带你完成 OpenRig 会话分叉并讲清底层机制。为什么需要会话分叉而不是重开一个在日常使用中某个 Agent 座席往往已经积累了大量有价值的工作上下文项目背景、已完成决策、进行中的任务。此时如果你想探索另一个方向比如保留当前实现思路再试一种架构方案重新开会话意味着从头讲一遍背景。OpenRig 的 fork 机制解决的就是这个问题 fork 派生基于源会话的原生上下文启动一个新座席源会话不受影响父会话继续运行子分支独立演进身份隔离新座席获得全新的会话令牌父会话的令牌永远不会被写到新座席上见 session-source-fork 技能文档 中的Honest UX契约。分叉会话的三种方式方式一一键分叉运行中的座席rig fork最快的路径。只要目标 rig 正在运行一条命令即可把某个座席的上下文分叉为新座席rig fork dev-implopenrig-delivery --rig openrig-delivery --pod dev --member dev-impl-fork常用选项选项作用--rig rig-id目标 rig必填--pod namespace目标 pod 命名空间必填--member id新座席的 ID必填--keep-image额外保存一个固定的 Agent 镜像防清理--image-name name为保留的镜像命名配合--keep-image--json输出 JSON便于脚本处理例如在分叉的同时固化一份可复用的Agent 镜像rig fork dev-implopenrig-delivery --rig openrig-delivery --pod dev \ --member dev-impl-2 --keep-image --image-name impl-primed这条命令只是一个薄客户端它把分叉请求发给守护进程由守护进程在服务端解析原生会话 ID 并完成成员添加原生 ID 不会暴露到 CLI 层。实现见 fork.ts 与守护进程路由 agent-images.ts。方式二在 rig 规格中声明分叉源session_source如果你是在编写 rig 规格或用rig expand动态扩容时希望新成员从某个历史会话分叉可以在成员 YAML 中声明session_sourcemembers: - id: reviewer-2 runtime: claude-code # 或 codexterminal 不支持 agent_ref: specs/agents/reviewer.yaml session_source: mode: fork ref: kind: native_id # v1 仅支持 native_id value: 0b0165d7-cb4d-4650-90de-15c0a1ede9e6关键规则v1mode: fork的ref.kind只接受native_idvalue必填terminal运行时会直接拒绝session_source没有原生分叉原语该字段是启动期输入分叉成功后就定格为历史——之后恢复该座席走的是 restore而不是再次分叉。完整字段说明见官方 CLI 参考 cli-reference.md。方式三从已保存的 Agent 镜像派生rig agent-imagerig agent-image是一套镜像库命令族可以把高产出座席的状态固化为可复用资产PL-016rig agent-image list # 列出所有镜像含 fork 次数、血缘 rig agent-image create dev-implopenrig-delivery --name impl-primed rig agent-image preview impl-primed # 预览装配内容与 starter 片段 rig agent-image pin impl-primed # 固定镜像防止被 prune 清理每个镜像都记录forkCount被分叉次数与lineage血缘链——从镜像 A 分叉出镜像 B 时可用--lineage声明父镜像形成可追溯的派生树。命令细节见 agent-image.ts。底层机制并行分支是如何诞生的OpenRig 对不同运行时各自调用原生分叉命令语义保持一致运行时实际命令形态Claude Codeclaude --resume parent-id --fork-sessionCodexcodex fork parent-idTerminal在 schema 层直接拒绝分叉成功后新座席的continuityOutcome会被记为forked且持久化的是分叉后的新令牌——官方文档明确禁止把这种情况报告为恢复了原座席或快照见 adapters-and-runtimes.md。这就是平行分支的身份保证父与子拥有各自的会话身份从此刻起独立演化。常见问题与最佳实践Q1fork 和 resume / restore 有什么区别fork创建的是新座席restore是让一个已存在的托管座席继续运行。二者互斥——同一成员上不能既恢复又分叉守护进程在三层强制执行该约束。Q2分叉失败会怎样失败模式被显式定义并命名源 ID 不存在、分叉启动失败等座席不会被静默降级为全新会话错误信息会指出具体失败的解析步骤不会假装成功。Q3想让分支长期可复用怎么做分叉时加--keep-image会得到一个 pinned防清理镜像需要清理库时用rig agent-image prune --dry-run先预览可回收项。最佳实践清单✅分叉前先确认目标守护进程确实支持该来源源码与运行中的守护进程可能版本不同新成员 ID 用有语义的命名如dev-impl-fork、dev-impl-2便于在拓扑视图中辨认高价值分支及时--keep-image固化避免只留一次性会话验证分叉结果时检查新座席的实际身份与上下文而不是仅看提示文案。参考资料fork 命令实现packages/cli/src/commands/fork.tsAgent 镜像命令族packages/cli/src/commands/agent-image.ts分叉原语技能规范skills/_canonical/core/session-source-fork/SKILL.md运行时适配器与分叉缝docs/as-built/architecture/adapters-and-runtimes.mdsession_source完整字段说明docs/as-built/cli-reference.md快速上手总览docs/reference/getting-started.md掌握rig fork之后你的 Agent 团队就能像 Git 分支一样探索多条实现路线——同一份上下文源多个平行分支互不拖累。【免费下载链接】openrigMulti-agent harness that runs Claude Code and Codex together as one system项目地址: https://gitcode.com/GitHub_Trending/op/openrig创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考