Multi-agent engineering orchestration framework
Project description
Paddock
多 Agent 工程研发编排框架 | Multi-agent engineering orchestration framework
你睡觉的时候,Paddock 在帮你 merge PR。
是什么
AI 编码助手已经能独立完成复杂编程任务。但在真实工程项目中,"调用一次 agent"远远不够:
- 任务太多:一个功能迭代可能涉及十几个相互依赖的子任务
- 并发风险:多个 agent 同时修改同一个仓库,冲突如何处理?
- 质量控制:agent 完成的工作如何验收?谁来 review?谁来 merge?
- 失控风险:agent 跑偏了怎么办?修改了不该改的文件怎么办?
- 持续性:任务需要跑几个小时甚至过夜,如何保证稳定运转?
Paddock 是解决这些问题的工程控制平面。它不关心"怎么调用 agent",而是关心"agent 调用之后怎么不乱、不冲突、不失控、能交付"。
核心能力:
- 多 agent 并发调度:依赖图驱动,自动解锁,路径冲突检测
- Git worktree 隔离:每个任务独立分支,自动 merge,互不干扰
- 结构化工作层次:Goal → Milestone → Phase → Objective,Planner 自动拆解
- Session budget 控制:commit 数 + 时间双维度限制,超时强制终止
- 三层失败恢复:自动重试 → 自动扩展 scope → 人工升级
- 完整可观测性:事件日志、session 日志、Admin dashboard
支持的 agent:Claude Code、OpenAI Codex、Kimi CLI,以及任何接受 prompt 文件的命令行工具。
安装
pip install paddock-agent
# 包含 Admin dashboard
pip install 'paddock-agent[admin]'
快速开始
1. 初始化工作空间
mkdir ~/paddock-workspace && cd ~/paddock-workspace
paddock init
2. 注册你的项目
paddock project add ~/code/my-project
# 自动生成 projects/my-project.yaml,推断 repo_root 和 worktrees_root
3. 在 Admin dashboard 设置 Goal
paddock admin start
# 打开 http://127.0.0.1:8100,添加 Goal 和 Milestone
4. 启动 Supervisor
paddock supervisor start
就这些。Supervisor 会自动规划、调度 agent、review、merge,你只需要偶尔查看 dashboard。
命令参考
paddock init [dir] # 初始化工作空间
paddock project add <path> # 注册项目(自动推断配置)
paddock project list # 列出所有项目
paddock supervisor start # 启动调度循环
paddock supervisor start -p my-proj # 只处理指定项目
paddock supervisor status # 查看活跃 session
paddock planner --project my-proj # 手动触发一次规划
paddock admin start # 启动 dashboard(需要 [admin])
paddock admin start --port 9000 # 指定端口
paddock version # 查看版本
架构
┌─────────────────────────────────────┐
│ Goal 人类设定的长期目标 │
├─────────────────────────────────────┤
│ Milestone 可验证的阶段成果 │
├─────────────────────────────────────┤
│ Phase 里程碑内的工作阶段 │
├─────────────────────────────────────┤
│ Objective 分配给 agent 的任务 │ ← Planner 自动生成
├─────────────────────────────────────┤
│ Session 单次 agent 执行过程 │ ← Supervisor 调度
├─────────────────────────────────────┤
│ Checkpoint 单次 git commit │ ← 自动 review & merge
└─────────────────────────────────────┘
Supervisor 每 20 秒运行一次七阶段循环:
Harvest → Review → Merge → Unlock → Planner → Apply → Dispatch
每个 Objective 在独立的 git worktree + 分支上执行,agent 可以在一次 Session 中自主迭代多个 commit,直到验收标准满足或预算耗尽。
接入新 Agent
在 Admin dashboard 的 Agents 页面添加,或直接编辑数据库。任何接受 prompt 文件的命令行工具都可以接入:
id: my-agent
cli_command: my-agent-cli
command_template: my-agent-cli --prompt {prompt_file} --dir {worktree}
Agent 需要遵守的协议:在 stdout 输出结构化的 ---SESSION_SUMMARY--- 块,Supervisor 据此判断成功/失败/重试。详见 templates/session-worker.md。
环境变量
| 变量 | 说明 | 默认值 |
|---|---|---|
PADDOCK_ROOT |
工作空间目录 | 当前目录 |
PADDOCK_DB |
数据库路径 | runtime/paddock.db |
PADDOCK_PROXY |
agent 子进程代理,如 http://127.0.0.1:7897 |
不设置 |
PADDOCK_POLL_SECONDS |
Supervisor 轮询间隔(秒) | 20 |
PADDOCK_PLANNER_COOLDOWN |
Planner 触发冷却时间(秒) | 300 |
PADDOCK_LOG_LEVEL |
日志级别 | INFO |
与其他框架的对比
| 能力 | Paddock | OpenHands | autoresearch | Slock.ai |
|---|---|---|---|---|
| 多 agent 并发 | ✓ 依赖图调度 | ✗ 顺序 | ✗ 单 agent | ✓ 频道路由 |
| Git worktree 隔离 | ✓ 自动管理 | ✗ | ✗ | ✗ |
| 自动 merge | ✓ | ✗ | ✗ | ✗ |
| 任务依赖图 | ✓ | ✗ | ✗ | ✗ |
| Session budget 控制 | ✓ commit+时间 | ✗ | ✓ 固定时间 | ✗ |
| 三层失败恢复 | ✓ | ✗ | ✓ git revert | ✗ |
| 多项目支持 | ✓ | ✗ | ✗ | ✗ |
| 无人值守过夜 | ✓ | ✗ | ✓ | ✗ |
| 人机实时交互 | ✗ 批处理 | ✓ | ✗ | ✓ |
Paddock 的定位是无人值守的工程交付,不是聊天协作。详细对比见 docs/PADDOCK_OVERVIEW.md。
项目结构
paddock/ 核心包(config、db、utils、cli)
paddock/admin/ Admin 后端(FastAPI)
paddock/templates/ Agent prompt 模板
scripts/ Supervisor、Planner 调度脚本
projects/ 项目配置示例
tests/ 框架测试
开发
git clone https://github.com/Roganic/paddock.git
cd paddock
pip install -e ".[dev,admin]"
pytest tests/
详见 CONTRIBUTING.md。
License
MIT © Paddock Contributors
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file paddock_agent-0.3.0.tar.gz.
File metadata
- Download URL: paddock_agent-0.3.0.tar.gz
- Upload date:
- Size: 178.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9304e3da6dced1dba6850b8a1cee4bd2c4ad78c42eda2bd54a9356878809ae67
|
|
| MD5 |
09600bbca68b64d82f742d8aa434bb9e
|
|
| BLAKE2b-256 |
00e1a2b9177db17e72426f8967a349db2cd3c42cd54d8064c57a111185e7e6ed
|
Provenance
The following attestation bundles were made for paddock_agent-0.3.0.tar.gz:
Publisher:
publish.yml on Roganic/paddock
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
paddock_agent-0.3.0.tar.gz -
Subject digest:
9304e3da6dced1dba6850b8a1cee4bd2c4ad78c42eda2bd54a9356878809ae67 - Sigstore transparency entry: 1235238345
- Sigstore integration time:
-
Permalink:
Roganic/paddock@38cd44b5f98609d334985a0001d1ece22e73fbea -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Roganic
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@38cd44b5f98609d334985a0001d1ece22e73fbea -
Trigger Event:
push
-
Statement type:
File details
Details for the file paddock_agent-0.3.0-py3-none-any.whl.
File metadata
- Download URL: paddock_agent-0.3.0-py3-none-any.whl
- Upload date:
- Size: 186.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec0777b7008ddfec909afc2959371371263e2d1fa2d17c5f33bbf268bc38761e
|
|
| MD5 |
a2165c95061d1b4b0f594ffd0d06e570
|
|
| BLAKE2b-256 |
d0b34c5589267e333550606e21f3bd5f29ab820234b9ef8ba709117d57e22a57
|
Provenance
The following attestation bundles were made for paddock_agent-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on Roganic/paddock
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
paddock_agent-0.3.0-py3-none-any.whl -
Subject digest:
ec0777b7008ddfec909afc2959371371263e2d1fa2d17c5f33bbf268bc38761e - Sigstore transparency entry: 1235238393
- Sigstore integration time:
-
Permalink:
Roganic/paddock@38cd44b5f98609d334985a0001d1ece22e73fbea -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Roganic
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@38cd44b5f98609d334985a0001d1ece22e73fbea -
Trigger Event:
push
-
Statement type: