ARTICLE DETAIL

资讯详情

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

OpenRig cross-host架构深度解析:在多台机器上运行一个Agent团队

OpenRig cross-host架构深度解析:在多台机器上运行一个Agent团队 OpenRig cross-host架构深度解析在多台机器上运行一个Agent团队【免费下载链接】openrigMulti-agent harness that runs Claude Code and Codex together as one system项目地址: https://gitcode.com/GitHub_Trending/op/openrigOpenRig 是一个开源的多智能体运行框架multi-agent harness能把 Claude Code 与 Codex 组合成一支可持久化、可恢复、可观测的 Agent 团队。它的 cross-host跨主机架构更进一步让你把这支 Agent 团队拆开放到多台机器上运行却仍然像一个统一系统那样协调、寻址和通信。一、为什么 Agent 团队需要多台机器单台机器运行多个 Agent 会遇到三个瓶颈️资源挤占多个模型会话同时编译、测试CPU 和上下文窗口互相争抢环境割裂有的 Agent 需要 macOS 环境有的更适合 Linux 服务器隔离不足不同权限、不同密钥的 Agent 挤在同一台机器上信任边界模糊。OpenRig 的单机模型是一份 YAML 拓扑RigSpec→rig up一条命令启动 → 每个 Agent 一个 tmux 会话由本地 DaemonHTTP 服务 SQLite统一管理。TUI 里可以直接看到团队全貌cross-host 架构在这个模型之上只做一件事的扩展把一台机器上的一个 Daemon变成N 台机器上的 N 个 Daemon外加一张把它们连起来的注册表。二、三层骨架本地 Daemon、主机注册表与传输通道层次职责关键实现本地控制面每台主机独立运行自己的 OpenRig Daemon、SQLite 数据库与 tmux 会话并持有一个 daemon 端铸造的selfHostIdserver.ts主机注册表记录我的对等机器是谁主机别名、传输方式、认证指针host-registry.ts传输通道跨主机执行 rig 命令HTTP 直连或 SSH 单跳中继cross-host-executor.ts注意每个容器/主机一个 Daemon、本地数据库、本地 HOME唯一共享面是网络这条原则——它保证了任何一台机器宕机都不会污染其他主机的状态。三、一行命令注册远程主机rig host 速览主机注册表就是主机之间的通讯录。常用动词rig host add --id 主机id --transport http --url http://B:7433 --bearer-env TOKEN_ENV rig host ls --json # 查看已注册主机 rig host select id # 持久化当前主机指针类似 kubectl 的 current-context rig host doctor # 分步体检连通性、认证、daemon 可达性 rig host pair # 双向配对握手两条值得记住的设计细节保留字kernel、host、local以及虚拟域令牌永远不能被注册为主机别名避免寻址歧义见 host-registry.ts 的RESERVED_HOST_IDS密钥卫生注册表里只存认证指针环境变量名或文件路径任何代码路径都不会把 token 明文落盘。四、两种传输方式HTTP 直连与 SSH 单跳HTTP 直连Daemon 以 HTTP 暴露后注册表记录url bearer 指针即可。这里有一道强制护栏Daemon 一旦绑定非 loopback 地址必须同时配置OPENRIG_AUTH_BEARER_TOKEN否则拒绝启动——跨网络可达性与鉴权是耦合在一起的。SSH 单跳适合没有开放端口的场景。执行器通过一次 ssh 调用在远端跑sh -lc rig ...并且刻意区分五种失败模式让你知道该修哪一层failedStep含义你该做什么ssh-unreachable连不上远程 shell修 SSHpermission-gate认证被拒修 bearer/权限remote-daemon-unreachable到了远端但 Daemon 不可达修远端 Daemonremote-command-failed命令执行返回非零修远端 rigremote-command-not-found远端找不到rig修远端 PATH/安装把修 SSH和修远端 Daemon混成一个 failed是多数多机系统的通病OpenRig 在 cross-host-types.ts 中把它们显式拆开了。五、跨主机寻址三段式地址 seatrighostOpenRig 里的座位地址是成员rig如dev-ownerfirst-project。cross-host 加了一段主机限定rig send dev-mainrig-bB ping --host B解析规则很克制见 cross-host-target.ts形如XYZ且Z恰好是已注册主机 id → 拆成targetXY、hostZZ不是已注册主机 → 原样透传并响亮报错绝不下沉成静默歧义优先级显式--host 目标糖语法 rig host select持久化选择同一命令里两者冲突会直接报错。六、身份三重奏跨主机消息如何精确回家跨主机协作最容易出 bug 的是回信。OpenRig 用身份三重奏成员rigselfHostId解决id 是读的不是猜的每台主机的selfHostId由 daemon 端铸造、存为永不改写的单例你只能从/healthz捕获它L5 runbook 明确要求 adopt-by-read发送即盖章跨主机 send 会把来源主机写进发件人身份From: orchrig-aA回复原样回到 A同名 rig 碰撞A、B 两台机器各有一个叫shared的 rig 时回复只落回来源主机的座位绝不误投给本地同名替身优雅降级来源 Daemon 停止后From:降级为两段式而不是崩溃fail-open 控制实验就内置在测试夹具里。这套行为有完整的可复现验证脚本L5 多主机 runbook 用两个容器模拟两台命名主机把注册、盖章、碰撞、降级全部跑成自动化证据。七、动手实践在两台机器上运行一个 Agent 团队第 0 步两台机器装好前置Node.js 22/24 tmux然后npm install -g openrig/cli。第 1 步先在本机看团队长什么样启动 UI 后在左侧 Explorer 点选demorig 加载实时拓扑拓扑图里每个 Podorch、dev、rev内的座位都标注了运行器Claude/Codex点开 lead 座位的 CMUX 按钮可直接进入编排者终端第 2 步让 B 机对外暴露 HTTPOPENRIG_HOST0.0.0.0 OPENRIG_AUTH_BEARER_TOKEN你的token rig daemon start curl -fsS http://127.0.0.1:7433/healthz # 记下 selfHostId第 3 步在 A 机注册 B 机id 用第 2 步捕获到的值rig host add --id B的selfHostId --transport http --url http://B:7433 --bearer-env B_TOKEN rig host doctor第 4 步跨主机发送第一条消息rig send dev-mainmy-rig ping --host B的别名到这一步你就在两台机器上拥有了一个统一寻址、身份可溯源、回复精确回家的 Agent 团队。八、关键源码与文档路径模块路径项目总览与安装README.md主机注册表与认证解析packages/cli/src/host-registry.ts跨主机命令执行器packages/cli/src/cross-host-executor.ts三段式目标解析packages/cli/src/cross-host-target.tshost 命令族add/ls/doctor/pairpackages/cli/src/commands/host.ts多主机测试 runbookdocker/testbed/runbooks/L5-multi-host-and-51-09.md碰撞/回信活体实验夹具packages/daemon/test/fixtures/self-host-live-legs/RUNBOOK.md小结OpenRig 的 cross-host 架构没有引入复杂的消息中间件而是用本地 Daemon 主机注册表 双传输通道三层薄结构把多机问题还原成通讯录 寻址 身份盖章三个可独立验证的问题。对新手而言记住三段式地址seatrighost和rig host命令族就拿到了多机 Agent 团队的全部入口。【免费下载链接】openrigMulti-agent harness that runs Claude Code and Codex together as one system项目地址: https://gitcode.com/GitHub_Trending/op/openrig创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表