关于 polyphony
Polyphony 是多 Agent 编排系统,可在隔离的 Docker 工作区中运行任务。它依据可配置规则和复杂度评分,将任务分配给 Claude、Codex 或 Kimi,并为每项任务创建独立克隆和分支。
主要功能
- 01每项任务使用隔离的 Docker 工作区
- 02在 Claude、Codex 和 Kimi 之间路由
- 03按五个维度评估复杂度
- 04支持 GitHub Issues 或本地 SQLite 任务源
- 05管理任务生命周期与工作区
适用场景
- 01在隔离工作区中并行运行 Agent 任务
- 02按任务类型和风险分配任务
- 03管理任务从执行、验证到交付的流程
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ alinaqi/ maggy --skill polyphony安装后在 Claude Code 中输入/polyphony确认已加载。
详细介绍
Polyphony —— 多 Agent 编排
通过容器隔离工作区,实现 Agent 并行执行。每个 Agent 都有自己的 Docker 容器,并在自己的分支上拥有完整的 Git 克隆副本。互不冲突、独立测试、生成干净的 PR。
架构(6 层)
- 工作来源 —— 来自 GitHub Issues(
gh api)或本地 SQLite 队列的任务 - 编排器 —— 监督循环:发现 -> 认领 -> 路由 -> 配置 -> 运行 -> 验证 -> 合入
- 路由器 —— 纯函数:任务 x 策略 -> RunSpec(5 维复杂度评分)
- 身份代理 —— 将命名凭据解析为卷挂载和环境变量覆盖项
- 工作区管理器 —— 每个任务执行
git clone --reference、检出分支并清理 - 工作进程运行时 —— Docker 容器的创建/启动/停止/日志生命周期
任务生命周期
DISCOVERED -> CLAIMED -> ROUTED -> PROVISIONED -> RUNNING -> VERIFYING -> LANDED
| |
v v
FAILED --> BLOCKED
|
v
CLAIMED (retry)
前置条件
- 已安装并运行 Docker 或 OrbStack
- 至少有一个可用的 Agent CLI(Claude、Codex 或 Kimi)
- 已配置 CLI 订阅(而非 API 密钥)
检查:
command -v docker &>/dev/null || command -v orbctl &>/dev/null
配置
所有配置均位于 ~/.polyphony/:
| 文件 | 用途 |
|---|---|
config.yaml | 工作区根目录、轮询间隔、最大并发数 |
identities.yaml | 包含卷路径的命名凭据包 |
agents.yaml | Agent 配置文件(CLI 命令、优势) |
routing.yaml | 路由规则和回退链 |
使用 polyphony init 初始化
路由规则
规则按从上到下的顺序评估;匹配第一个规则后即停止。每条规则都有一个 match 谓词和一个 agent 目标。
rules:
- match: { task_type: docs, risk: low }
agent: kimi
- match: { task_type: bugfix }
agent: codex
- match: { risk: high }
agent: claude
default:
agent: claude
fallback: [codex, kimi]
复杂度评分(5 个维度)
每个维度评分为 0-2。总分为 0-10。
| 维度 | 来源 |
|---|---|
| 圈复杂度 | LOC + 作用域大小 |
| 扇出 | 调用方数量 |
| 安全边界 | Auth/PII 关键词 |
| 并发性 | 锁/事务关键词 |
| 领域不变量 | 风险级别 + 任务类型 |
路由阈值:
- 0-3:交由 Kimi 单独处理
- 4-6:Kimi + Codex 评审
- 7-10:由 Claude 直接处理
容器隔离
每个任务都拥有:
- 一个基于
polyphony-worker:latest创建的专属 Docker 容器 /workspace下的完整 Git 克隆副本(不是工作树)- 以只读方式挂载的身份验证卷(例如
~/.claude:/home/worker/.claude:ro) - 独立的测试执行环境
- 用于 PR 的专属分支
CLI 命令
polyphony init # Create ~/.polyphony/ with config templates
polyphony spawn "Fix auth bug" # Create and route a task
polyphony status # Show task states
polyphony cleanup # Remove completed workspaces
与现有技能的集成
- cross-agent-delegation:使用 Polyphony 的复杂度评分进行路由决策
- agent-teams:使用 Polyphony 的工作区隔离,而非共享目录
- spawn-team:使用 Polyphony 的容器配置功能为功能 Agent 提供环境
评论
支持 Markdown