
OpenRig context pack上下文包完整指南打包、安装与ref安全校验【免费下载链接】openrigMulti-agent harness that runs Claude Code and Codex together as one system项目地址: https://gitcode.com/GitHub_Trending/op/openrigOpenRig 是一个让 Claude Code 与 Codex 协同工作的多智能体运行框架multi-agent harness。它的context pack上下文包机制允许你把参考文档、世界设定、操作约定等打包成一个带manifest.yaml的目录通过rig context命令打包、安装到本地库并支持按段落地址按需加载。本文带你走完「打包 → 安装 → ref 安全校验」的完整流程帮你在多 Agent 团队中安全地分发上下文。一、什么是 context pack 上下文包一个 context pack 就是一个普通目录核心是一份 manifest.yaml 清单文件它声明了包的名称、版本、分类taxonomy以及每个文件的角色与摘要。以项目内置的参考包为例name / version包名与版本是库中的唯一身份标识taxonomy包的分类如world、reference决定它在语义上是什么files文件清单每个文件必须声明path包内相对路径与role角色可选summary摘要atoms / profiles可选把文件进一步切分为可寻址的原子按 situationfresh / handover / post-compaction和运行时claude / codex组合投放参考 world-public/manifest.yaml所有内置包的清单源码都放在 context-packs-src/ 目录是学习格式的最好范本。二、如何打包从零创建并查看你的上下文包所有操作都围绕rig context命令族实现见 context.ts典型工作流是1. 本地编写包目录在context.root配置指向的目录下新建一个文件夹放入manifest.yaml和若干.md/.yaml/.txt/.sh等文件。manifest 必须是合法 YAML 对象且name、version、taxonomy、files四个字段缺一不可——缺失时校验器会给出带修复指引的错误提示。2. 同步索引并查看命令作用rig context sync重新扫描发现根目录刷新库索引rig context list列出所有包ref、版本、分类、文件数、预估 tokenrig context show name-or-ref查看 manifest 与逐文件元数据rig context preview name-or-ref组装出完整 bundle 预览不投递并报告缺失文件rig context compose --out ref --from files...把多个有序文件合成为一个新的持久 ref3. 按需拉取pull 语义rig context get ref是面向 Agent 的拉取动词输出就是组装后的 bundle 原文支持pack-ref/file#H2-slug/H3-slug形式的段落实地址让 Agent 只加载需要的部分而不是整个包。三、安装 context pack目录、URL 与 Git 三种方式rig context add source是唯一的安装入口context.ts支持三种来源本地目录rig context add ./my-pack。要求源目录不是符号链接、必须包含manifest.yaml安装名默认取 manifest 的name可用--name覆盖。同名包已存在时会明确拒绝避免静默覆盖。URLrig context add https://.../manifest.yaml。先抓取并校验 manifest再逐个拉取声明的文件全程先落到临时目录、最后一步 rename 原子发布——manifest 格式错误、URL 不可达或文件缺失都不会留下半个包atomic by construction见 installPackFromUrl。Git 仓库rig context add repo --git。用你现有的 Git 凭据克隆仓库、发现其中的包快照并保留更新关系之后rig context source inspect/update ref可查看本地修订、显式 fetch/merge 上游并选择更新冲突时保留旧选择绝不 push 或 reset。安装成功后 CLI 会自动触发一次 daemon 库同步让新包立即可被list/get检索。四、ref 安全校验为什么这些规则如此严格这是 OpenRig 上下文包最值得新手理解的部分每个 ref 都会被当作潜在的敌对输入处理。逐段字符白名单ref 采用路径式多段格式如packs/compaction-restore每一段必须匹配正则[A-Za-z0-9][A-Za-z0-9._-]{0,63}见 ref-safety.ts。这条白名单一次性封死了./..路径穿越首字符必须是字母数字点文件直接被拒绝对路径、空段双斜杠/尾斜杠空白、引号、冒号等 YAML / ID 注入字符版本字段同样受约束单个无分隔符 token、≤32 字符防止伪造name:version存储 ID 或撑爆操作系统文件名长度限制manifest-parser.ts。安装边界的三重防线CLI 侧在写入任何本地文件之前执行与 daemon 镜像一致的校验context-install.tsref 逐段校验assertSafeInstallRef——不安全的安装名在创建目录前就被拒绝符号链接扫描assertTreeHasNoSymlinks——包目录内任何符号链接直接拒绝防止用链接把文件指向包外命名空间包含检查assertDestinationNamespaceContained——即使 ref 在词法上合法只要目标路径的某个父目录段是符号链接或非目录复制就会逃逸出上下文存储根同样拒绝。manifest 中的文件路径也受限必须是包内相对路径禁止..、禁止前导/且后缀必须在允许清单内.md、.markdown、.yaml、.yml、.txt、.sh、.ts等未登记的扩展名会在摄取期响亮失败而不是静默服务一个不完整的 bundle。URL 安装还有一层同源边界manifest 声明的每个文件 URL 必须解析到 manifest 自身目录之下陌生 manifest 无法让安装器跨源抓取或爬出包目录。错误可见性daemon 侧context-pack-library-service.ts对每个写/解析点执行同样的校验顺序不安全的 ref 抛出结构化的unsafe_ref错误在任何文件系统操作之前失败错误信息直接告诉你哪条规则被触发、如何修复。相关行为由 context-pack-ref-safety.test.ts 与 context-pack-add-ref-safety.test.ts 两测试文件持续守护。五、上手清单✅ 先读一个内置 manifest.yaml 抄结构✅rig context sync→list→preview三连确认 token 预算再投放✅ 安装优先用--git方式保留可审计的更新关系✅ 收到外部包时把 ref 当作不可信输入——校验器会替你把关但你也应先看show输出✅ 用get的段落实地址做按需加载控制每个座位seat的上下文开销context pack 让给 Agent 发文档从一次性拷贝变成了带版本、带校验、可寻址的持续供给。理解了 ref 安全规则你就掌握了这个机制中最能防止上下文污染的一道闸门。【免费下载链接】openrigMulti-agent harness that runs Claude Code and Codex together as one system项目地址: https://gitcode.com/GitHub_Trending/op/openrig创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考