hermes-mac13 93758f3720 feat: 从 tutti-selfhost 拆出 local_rig 独立仓
- 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
2026-10-06 13:36:14 +08:00

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。

S
Description
单机轻量 Agent 团队 —— OpenRig 哲学 + ACP 协议(从 tutti-selfhost 拆出)
Readme
68 KiB
Languages
Python 64.8%
Shell 28.8%
HTML 6.4%