93758f3720be7f22370be8a2a014f02ef7764856
- local_rig/ 完整包(7 源文件 + ui.html + CHANGELOG) - tests/test_local_rig.py + test_rig_real_agent.py(纯 local_rig 测试) - scripts/15-criterion4-live.sh(判据④活环境门) - README.md(定位/快速开始/与 tutti-selfhost 的关系) - requirements.txt(唯一外部依赖 pyyaml) - .gitignore 来源: figmar/tutti-selfhost @ 3b23853 (2026-10-06) 原 PR #43 已合入 tutti-selfhost main
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。
快速开始
# 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
python3 -m local_rig.cli -f <rig.yaml> # 起 daemon
python3 -m local_rig.cli -f <rig.yaml> --once # 跑一轮就退
测试
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。
Languages
Python
64.8%
Shell
28.8%
HTML
6.4%