团队级 AI 编码 Agent 协作指挥中心,基于 Git Worktree 隔离与共享画布实现多 Agent 并行开发。
Agor 是由 Preset 团队(Apache Superset / Apache Airflow 创始人 Maxime Beauchemin 主导设计)开发的团队级 AI 编码 Agent 协作指挥中心。它提供类 Figma 的 2D 共享画布,让 Claude Code、Codex、Gemini、OpenCode、Copilot 等多种编码 Agent 在隔离的 Git Worktree 上并行运行。
三大基础概念#
- Worktrees(工作树):工作单元,一个 Git Worktree 锚定到画布上,拥有独立分支、隔离环境和对话。
- Sessions & Trees(会话与树):Agent 对话及其谱系,支持 Fork 探索替代方案、Spawn 子会话处理子任务。
- Boards & Zones(画布与区域):将 Worktree 拖入 Zone 即可触发模板化 Prompt。
核心特性#
- 多人实时协作:光标、头像堆叠、空间评论、共享多人终端。
- Agor MCP Server:每个会话自动注入 MCP Token,提供 14 个工具,实现"用户能做的 Agent 也能做"——Agent 可自主查询/创建会话、管理 Worktree、委派子任务。
- 持久化助手:带身份、记忆和技能的长生命周期 AI 伴侣,团队可共享。
- Rich Chat UX:逐 Prompt 的 Token/费用核算、模型/effort 选择器、结构化工具块、完成提示音。
- Scheduler:Cron 式定时触发模板 Prompt,驱动助手心跳和自动审计。
- Message Gateway:Slack 和 GitHub 可作为 Agor 会话的入口。
- Artifacts:通过 Sandpack 在画布上渲染实时交互应用。
- Cards(Beta):面向非代码工作流的通用工作流实体。
架构设计#
采用本地优先守护进程架构,基于 Executor Isolation 模型:特权守护进程操作与不可信 SDK/CLI 执行上下文分离,Executor 以独立子进程和独立 Unix 用户运行,通过 Session Token(UUID,24h 过期)与守护进程通信,IPC 使用 Unix Socket + JSON-RPC 2.0。
后端基于 FeathersJS(统一 REST + WebSocket API)+ Drizzle ORM + LibSQL/PostgreSQL,包含 12 个核心服务(sessions、tasks、messages、boards、worktrees、repos、users、mcp-servers、session-mcp-servers、context、terminals、health-monitor)。前端使用 React 18 + Vite + Ant Design + React Flow,实时通信通过 Socket.IO。构建体系为 pnpm monorepo + Turborepo。主要语言为 TypeScript(92.7%),运行要求 Node.js ≥ 22.12。
安装部署#
npm 全局安装(Node.js ≥ 22.12):
npm install -g agor-live
agor init # 创建 ~/.agor/ 和数据库
agor daemon start # 后台运行守护进程
agor open # 打开 UI
Docker Compose:
git clone https://github.com/preset-io/agor.git
cd agor
docker compose up
支持通过 .agor.yml 配置变体(sqlite / postgres / full / docs)。团队扩展可切换 PostgreSQL 后端、启用 Worktree 级 RBAC 和 Unix 用户隔离。
TypeScript Client 示例#
import { createAgorClient } from '@agor-live/client';
const agor = createAgorClient({ url: 'http://localhost:3030' });
await agor.authenticate({ strategy: 'local', email, password });
const { data: worktrees } = await agor.service('worktrees').find({ query: { board_id: boardId } });
const session = await agor.service('sessions').create({ worktree_id: worktrees[0].id, agentic_tool: 'claude-code', initial_prompt: 'Add OAuth login' });
agor.service('messages').on('created', (msg) => console.log(`${msg.role}: ${msg.content}`));
协议信息#
采用 BSL 1.1(Business Source License 1.1),变更日期 2029-01-15,届时自动转为 Apache 2.0。当前最新版本为 agor-live v0.15.0。外部 API Token 认证标记为 Future 状态,尚未实现。