# local-rig 单机轻量 Agent 团队 —— OpenRig 哲学 + ACP(Agent Coordination Protocol)。 从 `tutti-selfhost` 拆出(2026-10-06),独立仓库维护。 ## 是什么 `local_rig` 是一个**单机多 Agent 调度器**: - 一个 `rig.yaml` 定义成员(member)+ 运行环境(runtime)+ 协作边(edge) - daemon 起 HTTP server(默认 `:27900`) - 支持两种 runtime:**hermes-cli**(调 Hermes Agent)和 **terminal**(跑 shell 命令) - 任务队列持久化(SQLite),支持幂等复验 - 自带 Web UI(`/ui`) **不是** tutti-selfhost 的 bridge —— 它是更底层的「单机 Agent 团队」原语,bridge 可以调用它,但它不依赖 bridge。 ## 快速开始 ```bash # 1. 装依赖 pip install pyyaml # 2. 准备 rig 配置 cat > my-rig.yaml << 'EOF' members: - id: coder runtime: hermes-cli profile: default - id: tester runtime: terminal command: "echo 'test passed'" edges: - from: coder to: tester EOF # 3. 起 daemon python3 -m local_rig.cli -f my-rig.yaml # 4. 开 UI open http://127.0.0.1:27900/ui ``` ## CLI ```bash python3 -m local_rig.cli -f # 起 daemon python3 -m local_rig.cli -f --once # 跑一轮就退 ``` ## 测试 ```bash python3 -m unittest discover -s tests -v ``` ## 文件结构 ``` local_rig/ __init__.py # 包入口 cli.py # CLI 入口(python3 -m local_rig.cli) daemon.py # HTTP daemon + 任务调度 queue.py # SQLite 持久化任务队列 rig_schema.py # rig.yaml 解析 + 校验 runtime_hermes.py # hermes-cli runtime(调 Hermes Agent) runtime_terminal.py # terminal runtime(跑 shell 命令) ui.html # Web UI(单文件,无构建) CHANGELOG.md # 变更记录 tests/ test_local_rig.py # 单元测试(纯 local_rig,无外部依赖) test_rig_real_agent.py # 真 agent 端到端测试 scripts/ 15-criterion4-live.sh # 判据④活环境门(两档判定/幂等复验) ``` ## 依赖 - Python 3.9+ - `pyyaml`(唯一外部依赖) ## 与 tutti-selfhost 的关系 | | local-rig | tutti-selfhost bridge | |---|---|---| | 定位 | 单机 Agent 团队原语 | 多 Agent 协作工作台的事件桥 | | 依赖 | 纯 stdlib + pyyaml | 依赖 local_rig + Matrix + tuttid | | 部署 | 任何有 Python 的机器 | 需要 tuttid + Matrix + hermes | bridge 通过 `RigDispatcher` 调用 local_rig,但 local_rig 不反向依赖 bridge。 ## 来源 从 `gitea.apescale.com/figmar/tutti-selfhost` 拆出(commit `3b23853`,2026-10-06)。 原 PR #43(feat(local_rig): 单机轻量 Agent 团队)已合入 tutti-selfhost main。