☰
OpenRig Startup启动投影原理完整指南:6步看懂files与actions如何注入Agent工作区
2026/10/2 15:18:07 网站建设 项目流程

OpenRig Startup启动投影原理完整指南:6步看懂files与actions如何注入Agent工作区

【免费下载链接】openrigBuild your own network of agents from Claude Code, Codex and Pi: persistent teams with roles, shared context and owned work.项目地址: https://gitcode.com/GitHub_Trending/op/openrig

如果你好奇 OpenRig startup启动投影到底在做什么——files与actions是如何被注入到每个 Agent 工作区的,这篇文章会用 6 步把整套机制讲清楚。OpenRig 是一个多 Agent 协作框架(multi-agent harness),让 Claude Code 和 Codex 像一套系统一样协同运行:Daemon 解析 YAML 规格,把技能、指导文件、启动命令"投影"进各 Agent 的工作目录,再自动拉起终端并喂入首批上下文,全程无需你手动粘贴配置。

Startup启动投影解决什么问题

想象你要让 6 个 AI Agent 同时开工,每个都要:装好指定技能、读团队文化文档、执行几条初始化命令。手动操作一遍就要半天,而且每次重启都得重来。

OpenRig 的 startup启动投影把这件事自动化了,整条链路是:解析 YAML → 叠加合并 → 投影资源 → 交付文件 → 拉起终端 → 注入动作,全程由 Daemon 驱动,最后把可重放(replay)的上下文持久化,重启时照样能恢复。

三个核心角色各司其职:

角色文件职责
Startup 解析器startup-resolver.ts把多层 YAML 里的files/actions按固定顺序叠加合并
投影规划器projection-planner.ts规划技能、插件等资源如何落盘到工作区
启动编排器startup-orchestrator.ts驱动"投影→交付→拉起→注入"的完整执行序列

files:7层叠加合并,团队规则逐层生效

启动文件不是简单复制,而是按 Architecture Rule 6 定义的固定 7 层顺序做加法合并(additive,不去重):

  1. Agent 基础层—agent.yaml里的基础startup.files
  2. Profile 层— 角色档案的补充文件
  3. Rig 文化文件— 团队级culture.md,以合成文件条目强制注入
  4. Rig 启动层— 整套 Rig 的全局覆盖
  5. Pod 共享层— 小组内共享的启动文件
  6. 成员覆盖层— 单个节点(member)的个性化文件
  7. 操作员调试层— 永远排最后的排障入口

合并逻辑非常直白,核心实现见 startup-resolver.ts#L30-L72:逐层把files与actions追加进同一队列,先声明者先交付。

每个文件条目还有一个deliveryHint字段(定义在 types.ts#L846-L872),决定它怎么交付:

  • 📁guidance_merge/skill_install— 走文件系统,在终端启动前就写入磁盘
  • 💬send_text— 走TUI,等终端就绪后以文本形式"粘贴"给 Agent
  • 🤖auto— 兼容旧配置的兜底模式,运行时自动判断

actions:让Agent自动执行初始化命令

actions是比文件更进一步的能力——不只是把材料放到位,而是替 Agent 敲命令。当前约束(见 架构文档 §4):

  • 动作类型仅限slash_command(斜杠命令)和send_text(文本注入),不允许任意 shell 命令,这是安全边界
  • 非幂等动作在恢复(restore)场景下不会重放,避免"启动一次执行两遍"
  • 支持startup_proof校验选择,由 resolveStartupProof 统一裁决

启动投影的6步执行序列

启动编排器 startNode 按固定 6 段式推进(完整注释见 startup-orchestrator.ts#L86-L100):

  1. 标记 pending— 会话状态置为启动中,发出node.startup_pending事件
  2. 投影资源— 把技能、指导文件、子代理、插件按 投影计划 落盘到工作区
  3. 交付启动前文件—guidance_merge、skill_install类文件直接写入文件系统(此时终端还没启动)
  4. 拉起终端 + 等待就绪— 通过运行时适配器(Claude Code / Codex / Pi 等)启动 harness,指数退避轮询,默认 30 秒超时
  5. 交付启动后文件—send_text类文件通过 TUI 注入给已就绪的 Agent,再执行after_files/after_ready动作
  6. 持久化上下文— 连同 resume token 一并存库,标记 ready,发出node.startup_ready

其中第 2 步的"投影"最巧妙:规划器会给每个资源做冲突分类(projection-planner.ts#L12-L19),判断目标位置该不该写:

分类含义
safe_projection目标不存在,安全写入
managed_merge目标由框架托管,合并写入
hash_conflict内容不一致且无历史写入记录,保护不覆盖
stale_overwrite目标是我们上次写的旧版,安全覆盖
operator_conflict操作员手动改过,坚决保护

也就是说,投影是"幂等且尊重人工修改"的:重启 10 次也不会把你手改过的文件冲掉。

启动完成后:拓扑视图确认一切就绪

投影成功之后,你可以在 TUI 拓扑视图里看到每个节点的状态——这是验证启动投影是否成功的直观方式:

延伸阅读:这些文件值得收藏 🔖

  • 📖 官方架构文档(spec 解析→投影→启动全流程):agent-spec-and-startup.md
  • 📝 可运行的示例规格:demo/rig.yaml、demo/agents/lead/agent.yaml、demo/culture.md
  • 🧪 合并顺序的行为测试(想深挖细节首选):startup-orchestrator.test.ts、projection-planner.test.ts

一句话总结:OpenRig 的 startup启动投影 = 7 层文件叠加 + 冲突感知的资源落盘 + 前/后两段式交付 + 持久化可重放,让"配置一个 Agent 工作区"从手工劳动变成了声明式 YAML。 🚀

【免费下载链接】openrigBuild your own network of agents from Claude Code, Codex and Pi: persistent teams with roles, shared context and owned work.项目地址: https://gitcode.com/GitHub_Trending/op/openrig

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询