多代理任务协调器

ATC是一个用于协调多个AI编码代理的多代理任务协调器,提供任务锁定、Git工作树隔离和实时仪表板监控功能。

  • by JSCOP
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 JSCOP/atc-kanban

使用说明

ATC——代理任务协调员

使用看板为AI编码代理进行多代理任务编排。

ATC协调多个AI代理(Claude Code、Codex、Gemini CLI、OpenCode)在同一代码库上工作,提供任务锁定、通过git工作树进行分支隔离,以及一个实时仪表板来监控一切。

为什么选择ATC?

当你在一个项目上运行多个AI编码代理时,它们会相互踩踏。两个代理编辑同一个文件,分支冲突,没有人知道谁在做什么。

ATC通过充当中央协调员来解决这个问题:

  • 任务锁定 --一次只能有一个代理处理一个任务(30分钟TTL,如果代理死亡,则自动过期)
  • Git工作树隔离 --每个任务都有自己的工作树和分支,没有文件冲突
  • 合并冲突检测 --存在合并冲突时阻止任务完成
  • 代理健康监测 --基于PID的检查会自动断开死代理并释放其锁
  • 每个项目一个编排器 --强制执行单个主代理以防止指令冲突

特性

  • 🔌 MCP服务器 --AI代理通过以下方式进行交互 模型上下文协议 工具
  • 📋 看板仪表板 --实时React 19+WebSocket用户界面 http://localhost:4000
  • 🌳 Git工作树隔离 --每个代理在自己的目录中处理自己的分支
  • 🔒 TTL任务锁定 --自动过期的专用锁(默认30分钟)
  • ✅ 审查工作流程 --使用自动挤压合并回基础分支来批准任务
  • 🔗 依赖DAG --具有循环依赖验证的任务依赖关系
  • 💀 死特工清理 --每10秒进行一次PID轮询,断开崩溃的代理
  • 🚫 合并冲突阻止 --阻止完成可能破坏基础分支的任务

快速开始

# Start HTTP server + dashboard
npx atc-kanban

# Open dashboard at http://localhost:4000

对于AI代理集成(MCP模式):

npx atc-kanban --mcp

MCP集成

将ATC添加到AI代理的MCP配置中:

开源代码 (opencode.json):

{
  "mcpServers": {
    "atc": {
      "command": "npx",
      "args": ["atc-kanban", "--mcp"]
    }
  }
}

克劳德代码 (claude_desktop_config.json):

{
  "mcpServers": {
    "atc": {
      "command": "npx",
      "args": ["atc-kanban", "--mcp"]
    }
  }
}

连接后,代理可以注册、声明任务、报告进度并提交审查——所有这些都可以通过MCP工具完成。

任务流程

todo → locked → in_progress → review → done
                                      → failed
  • 主剂 (编排器)——创建任务、审查工作、管理依赖关系。每个项目最多1个。
  • 工人代理人 (执行者)——索赔任务,在隔离的工作树中工作,提交审查。

当任务获得批准时,ATC会自动将工作树分支挤压并合并回基础分支。

建筑

pnpm monorepo有三个包:

包装 堆叠 用途
@atc/core Drizzle ORM+SQLite 域服务、模式、业务逻辑
atc-kanban (服务器) Hono+WebSocket+MCP SDK HTTP API,实时事件,MCP stdio服务器
@atc/dashboard React 19+Vite+Tailwind v4 看板UI,代理监控

数据存储在平台特定位置的本地SQLite数据库中(通过 env路径):

操作系统 默认数据库路径
窗户 %LOCALAPPDATA%\atc-kanban-nodejs\Data\atc.sqlite
macOS ~/Library/Application Support/atc-kanban-nodejs/atc.sqlite
Linux ~/.local/share/atc-kanban-nodejs/atc.sqlite

配置

变量 默认值 描述
PORT 4000 HTTP服务器端口
DB_PATH (特定平台) SQLite数据库文件路径
LOCK_TTL_MINUTES 30 任务锁到期时间(分钟)

通过环境变量设置或 .env 文件。

发展

git clone https://github.com/JSCOP/atc-kanban.git
cd atc-kanban
pnpm install
pnpm dev        # API (:4000) + Dashboard (:5173) with hot reload
pnpm build      # Build all packages
pnpm test       # Run unit tests
pnpm lint       # Biome linter

看 贡献.md 公约和准则。

支持

如果ATC对您有用,请考虑赞助该项目以支持正在进行的开发。

许可证

麻省理工学院 ©JSCOP