ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

openrig-core 插件深度解析:OpenRig 跨运行时拓扑协作、连续性与操作纪律的规范化技能与钩子层

openrig-core 插件深度解析:OpenRig 跨运行时拓扑协作、连续性与操作纪律的规范化技能与钩子层 人工智能AI Agent多智能体Agent 编排代码智能体CLI【免费下载链接】openrigMulti-agent harness that runs Claude Code and Codex together as one system项目地址https://gitcode.com/GitHub_Trending/op/openrig点击查看免费下载openrig-core 是 OpenRig 内置的规范化插件负责为 Claude Code 与 Codex CLI 两套运行时提供统一的拓扑协作、会话连续性与操作纪律能力。本文以该插件的官方 README 为骨架结合仓库内的钩子清单、技能文档与源码实现完整讲解其技能组成、双清单打包结构、refocus 阈值触发机制、compaction 恢复流程与本地分发版本仲裁策略帮助读者理解这套“跨运行时插件”的真实落地方式与可配置边界。插件定位一套插件两个运行时openrig-core 的官方定位是Canonical OpenRig skills and hooks for cross-runtime agent topology coordination, continuity, and operating discipline即跨运行时代理拓扑协调、连续性与操作纪律的规范化技能与钩子集合。在 OpenRig 的架构语境下一个“运行时runtime”指一种具体的 agent 执行环境——Claude Code 与 Codex CLI。该插件并不为某个运行时特化一套逻辑而是通过双清单dual-manifest打包同时面向两者仓库内同时存在.claude-plugin/与.codex-plugin/两套插件清单测试用例 openrig-core-plugin.test.ts 明确断言“双清单.claude-plugin/plugin.json .codex-plugin/plugin.json必须同时存在”并以 “Obra Superpowers shape” 作为参考形态。插件的内容分两大类Skills19 个规范化的 OpenRig 操作知识包括公开的refocusing技能及其“仅路径”的 topology/work 追踪工具Hooks钩子活动追踪activity tracking、compaction 连续性compaction continuity以及默认开启的 refocus 通道。双清单的验证契约测试套件对两个清单分别校验Claude 清单要求name、version、description且skills指向./skills、hooks指向./hooks/claude.jsonCodex 清单要求name、version、descriptionhooks指向./hooks/codex.json两份清单必须引用同一个skills/子目录以保证跨运行时技能可移植见 openrig-core-plugin.test.ts。这一契约的意义在于任何技能一旦放入该插件的skills/目录就同时被 Claude Code 与 Codex 的插件加载器可见OpenRig 侧再通过plugin_typeauto检测两个清单目录来决定适用运行时。运行时接入方式插件 README 给出了两套运行时的安装路径Claude Code在 OpenRig daemon 首次运行时将openrig-core/供应vendoring到~/.openrig/plugins/openrig-core/之后通过/plugin命令安装在远端分发可用时也可直接通过 Claude Code 自身的插件命令安装Codex CLI在相同的 vendoring 步骤之后通过/plugins命令安装或直接通过 Codex 自身的插件命令安装。也就是说OpenRig 只负责“把插件带到本地”最终激活与否仍由各运行时自己的插件体系决定。你也可以完全绕过 OpenRig直接用 Claude Code 或 Codex 的插件命令管理该插件。Skills19 个规范化技能的构成仓库实际供应的技能目录位于 packages/daemon/assets/plugins/openrig-core/skills/与测试中EXPECTED_SKILLS列表一一对应见 openrig-core-plugin.test.ts覆盖技能核心职责据 SKILL.mdopenrig-operating-model操作模型两棵树、链文件、trace 法则与知识放置规则refocusing长会话的路径式 topology/work 追踪与再聚焦claude-compaction-restoreClaude Code 在/compact前后重建工作心智模型session-compaction-and-restore会话压缩与恢复的通用纪律seat-continuity-and-handover座位连续性与交接occupant 创建 / seat 绑定双结果模型orienting-to-an-inherited-seat继承座位的定向retiring-and-inheriting-a-seat座位退役与继承queue-handoff队列交接mission-slice-sopmission/slice 标准作业程序forming-an-openrig-mental-model建立 OpenRig 心智模型loading-addressable-markdown加载可寻址 Markdownmessaging-the-human与人类沟通applying-a-permission-policy应用权限策略delegating-work工作委派agent-operated-softwareAgent 运维软件agent-operated-workflowsAgent 运维工作流openrig-skills技能自身的使用指南openrig-userOpenRig 用户指引software-for-agents为 Agent 构建软件单版本兼容重定向测试中还验证了 README 中Skills (19)的计数与真实技能目录保持一致见 openrig-core-plugin.test.ts每个技能都必须具备包含namedescription的 frontmatter。唯一特化技能claude-compaction-restore所有技能中只有一个针对特定运行时特化claude-compaction-restore—— 专门用于在 Claude Code 执行/compact之后从 JSONL 会话记录与被触碰文件touched files重建 agent 的工作心智模型。这里有一个容易误解的点该技能不是 Codex 自指向的——Codex 的压缩由内部处理不需要重建 SOP。但 Codex agent 作为编排者orchestrator时经常要恢复一个已压缩的 Claude 同伴因此两个运行时都供应这份技能。其余 18 个技能按设计都是跨运行时通用的。claude-compaction-restore技能本身给出了完整的两段式作业流程见 SKILL.md压缩之前识别当前任务、队列项、mission/slice、分支或提交记录决策、改动文件、运行的命令与测试、证据、阻塞点与下一步创建或更新一份持久化的“心智模型恢复地图”restore map含 ASCII 文件树逐路径标注重要性把不在磁盘上的“胶水上下文”写进交接/恢复地图在压缩摘要中带上恢复地图路径。压缩之后先检查恢复请求与标记、packet、transcript、restore map可用的 packet 直接读取其restore-instructions.md、touched-files.md与命名的 restore map不需要因为压缩发生就重建packet 缺失或不可用时才回退到node ~/.claude/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs /path/to/session.jsonl --out /tmp/claude-compaction-restore读取生成的restore-instructions.md与touched-files.md按声明的阅读预算恢复任务文件最后完成阅读深度审计每一项标记为FULL/PARTIAL/NOT_READ并如实报告——诚实的PARTIAL是正确结果而不是失败。技能还罗列了五类失败模式自信式错误恢复、未上报的部分恢复、跳过项目指令AGENTS.md、CLAUDE.md、README.md、as-built 文档、把 packet 当作穷举清单、把恢复阅读推迟到下一个任务。旗舰技能refocusing 与其路径式追踪README 点名refocusing是公开技能其核心是“仅路径的 topology/work 追踪”。技能文档SKILL.md给出的用法python3 scripts/trace-to-root.py --trees both --depth light--trees topology|work|both选择上下文域--depth light|full控制每个节点贡献多少内容。light 的 work 追踪只合成intent:与名称注记full 则包含完整的节点与 notes 正文。追踪脚本trace-to-root.py通过rig config get解析topology.root与workspace.root当无法推导当前节点时可设置环境变量OPENRIG_REFOCUS_TOPOLOGY_NODE/OPENRIG_REFOCUS_WORK_NODE或传入对应的--*-start选项。脚本从当前节点沿目录逐级上升穿过rigs、pods、seats、missions、slices这些“货架”目录而不在它们身上停留在每一级读取固定文件名topology 树读LEARNED.mdwork 树读SPEC.mdfallbackREADME.md的intent:字段加NOTES.md。缺失的链文件本身就是证据报告缺口并继续绝不跟随指针去虚构第二个父节点。refocusing的定位是“保留长会话积累的专业知识同时重新锚定到当前意图与真实上下文”——它不是重启、唤醒或阶段检查点。Hooks钩子清单与触发语义插件的钩子配置分两份清单存放hooks/claude.json 与 hooks/codex.json两者共享三个脚本hooks/scripts/activity-relay.cjs—— 活动追踪中继hooks/scripts/compaction-restore-bridge.cjs—— 压缩恢复桥hooks/scripts/refocus.cjs—— refocus 通道。Claude 侧钩子分布事件动作SessionStartactivity-relay.cjs超时 5scompactmatcher 的compaction-restore-bridge.cjsUserPromptSubmitactivity-relaycompaction-restore-bridgerefocus.cjs --runtime claudePreCompactclaude-compaction-restore/scripts/precompact-hook.mjs超时 30sPostCompactcompaction-restore-bridge.cjsrefocus.cjs --runtime claudeStopactivity-relay.cjsrefocus.cjs --runtime claudeNotificationactivity-relay.cjsCodex 侧钩子分布事件动作SessionStartactivity-relay.cjsUserPromptSubmitactivity-relay.cjsrefocus.cjs --runtime codexStopactivity-relay.cjsPostCompactrefocus.cjs --runtime codexPermissionRequestactivity-relay.cjs对比可见活动追踪在两个运行时都挂满生命周期事件refocus 在 Codex 侧不挂在Stop上PreCompact 写包动作只属于 Claude因为该技能针对 Claude 的压缩语义。refocus 的触发模型与状态机README 对 refocus 的描述可概括为双运行时 post-compaction 后触发、Claude 侧阈值触发、双运行时按需触发、可配置关闭、绝不在全新会话启动时运行。源码 refocus.cjs 精确实现了这一语义默认阈值DEFAULT_THRESHOLD 2_600_000字节约 2.6MB可用环境变量OPENRIG_REFOCUS_BYTES覆盖开关OPENRIG_REFOCUS_ENABLED默认开启0/false/off/no视为关闭、OPENRIG_REFOCUS_NOW按需强制默认关闭状态键按 occupant 而非 seatOPENRIG_SESSION_NAME推导 seatKeyidentity 由session_id/transcriptPath推导超长 key 追加稳定短哈希避免不同身份碰撞基线机制首次观测以当前 transcript 大小为基线之后只统计增长量transcript 缩小时清除 pending 并重置基线这是“reset 时机去重”的关键事件约束SessionStart直接退出全新会话的定向属于 onboarding pack 的职责即使手动触发也 no-op非UserPromptSubmit事件只记录 pending上下文只在UserPromptSubmit边界投递因为 harness 只有在这个边界才能真正携带additionalContext投递载荷先渲染公共 tracetrace-to-root.py再按内容阶梯解析 refocus 内容最终以hookSpecificOutput.additionalContext形式输出附上触发原因“just compacted — your picture is lossy”或“X MB of work since your last refocus”。refocus 内容阶梯content ladderREADME 未展开、但技能参考文档references/refocus.md给出了无需改插件即可替换默认内容的优先级最高优先在前OPENRIG_REFOCUS_CONTENT_REF—— 由rig context get解析的上下文引用OPENRIG_REFOCUS_CONTENT_FILE—— 操作者自建文件$OPENRIG_HOME/refocus/REFOCUS.md—— 实例级内容插件内置默认三问“对方真正想得到的是什么”“我此刻做的这件事是否推动它”“我没打开文件、没运行命令就得出了什么结论”以及“不适感就是信号漂移感觉像工作”。源码中的readConfiguredContent()正是按此顺序回退任一来源失败都保留错误信息并回退到内置默认且不会因 ref 失败而递归失败。全新座位则另由 onboarding 资源openrig-onboarding-01.md/openrig-onboarding-02.md覆盖refocus 只引用这些资产、不复制它们的 world install。分发与版本仲裁本地优先、远端只探测插件的 npm 包在 daemon 的assets/plugins/openrig-core/下携带离线基线。daemon 在尝试网络拉取之前先按配置的 OpenRig home安装副本通常位于~/.openrig/plugins/openrig-core/解析本地插件权威。分发实现位于 plugin-discovery-service.ts 与 startup.ts 的启动装配路径中。四种安装状态的本地 vendoring 行为安装状态本地 vendoring 行为缺失植入seed捆绑插件清单版本较旧从更新的捆绑版本推进文件清单版本相等保留已安装内容对字节级相同的文件可协调可执行模式清单版本较新保留已安装副本版本权威来自插件清单。一个存在但没有清单的目录保持原样无效或互相矛盾的清单版本会被上报而不是猜测。因此更新 CLI 不会无条件覆盖相等/较新版本或独立管理的插件副本。本地解析之后daemon 才会尝试 GitHub release 端点拉取openrig-core.tar.gz超时 5 秒。README 明确说明该路径当前只取回并记录响应不解压、不比版本、不安装内容。拉取失败包括 404 与网络错误不会影响已解析的本地副本成功拉取也不会改动它。README 特别注明这是对“取回实现”的描述而非声明远端仓库当前存在该 release 构件——事实边界在这里被刻意划清。与 OpenRig 操作模型的呼应openrig-core不只是钩子与技能的堆叠它承载了 OpenRig 的操作模型Operating Model。openrig-operating-model技能SKILL.md把模型浓缩为两棵树topology 树fleet → instance → rig → pod → seat描述“工作如何被做”与 work 树project → mission → slice → proof item描述“产品如何被构建”链文件法则同一文件名在每个层级出现topology 树是CULTURE.md/LEARNED.mdwork 树是SPEC.md/NOTES.md/PROOF.md/PROGRESS.md单父法则trace 只沿目录路径上升绝不跟随指针、不解析 serves、不分支——“路径式上升只会在明显的方式上失败”这是 trace 作为困惑 agent 求助工具的立身之本trace 与rig walk是同一想法的两端PULLagent 主动compose.py up渲染链与 PUSHorchestrator 用rig walk --through files --pace n逐条送入 pane二者共享“节奏pacing”这一承重机制知识放置规则上下文住在最窄的作用域链文件装“位置”知识不可共享路径即身份插件装“种类”知识可共享、可版本化、跨 harness。插件里的脚本必须能在陌生机器上原样运行——路径一律从配置rig config get workspace.root解析绝不写死“只对作者自己有效的脚本不可分发”。refocusing的技能元数据stage: product与操作模型技能的stage: draft也体现了技能文档中“成熟度maturity是行内属性”的分级枚举wip | provisional | established | canonical | superseded | retired。使用前提与限制插件的最终生效依赖对应运行时Claude Code / Codex CLI的插件加载机制OpenRig daemon 只负责本地 vendoring 与权威解析refocus 默认阈值 2.6MB 是 Claude 侧 transcript 增长触发若使用 Codex 运行时阈值触发不适用Codex 侧仅在PostCompact与按需时触发网络拉取路径目前只探测不安装需要远端 release 构件真正可用才能形成闭环插件技能目录中的脚本如操作模型的scripts/在部分平台带有 macOS 风格的stat -f调用跨平台使用前需验证见操作模型技能的 Pitfalls 一节。结语openrig-core 通过“双清单打包 19 个规范化技能 两套钩子清单”把拓扑协调、连续性恢复与操作纪律沉淀为可版本化、可离线分发的插件资产。它的设计取舍清晰可辨refocus 是“长会话功能而非启动定向”compaction 恢复是“证据优先、预算受限的诚实阅读”分发是“本地权威优先、远端只探测”。对于想深入 OpenRig 插件机制或自行编写跨运行时插件的读者这份插件同时是规范与范本。赞分享人工智能AI Agent多智能体Agent 编排代码智能体CLI【免费下载链接】openrigMulti-agent harness that runs Claude Code and Codex together as one system项目地址https://gitcode.com/GitHub_Trending/op/openrig点击查看免费下载相关推荐OpenRig v0.4.4 技术解读多主机拓扑基座 Living Notes 信号层 操作员 UX 升级OpenRig v0.4.4 技术解读多主机拓扑基座 Living Notes 信号层 操作员 UX 升级 OpenRig 是一个将 Claude C人工智能AI Agent多智能体Agent 编排代码智能体CLIopenrig Chain-File 约定CE-v2拓扑树与项目树的分层上下文文件规范openrig Chain File 约定CE v2拓扑树与项目树的分层上下文文件规范 本篇技术指南是 openrig让 Claude Code 与 C人工智能AI Agent多智能体Agent 编排代码智能体CLIOpenRig v0.5.7 版本解析弹性拓扑生命周期与一致性工作交付OpenRig v0.5.7 版本解析弹性拓扑生命周期与一致性工作交付 OpenRig 0.5.7 是当前仓库 docs/releases/v0.5.7.md人工智能AI Agent多智能体Agent 编排代码智能体CLI上一篇SVG-Edit 免费开源 SVG 编辑器指南不装软件四步在浏览器里完成改图导出下一篇冒险岛资源修改与地图创作一套工具就能全部搞定创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表