在 AI 代理时代,本地自托管 Superset 作为专用 IDE,能高效管理 Claude Code、Codex 等代理军团的并行执行,避免云端延迟与隐私泄露风险。通过 Git worktree 隔离、多终端监控与钩子机制,实现 dispatch loops、多 LLM 池化及 RAG 协调,形成可扩展的本地 swarm 系统。
Superset 的核心定位与本地 swarm 优势
Superset(https://github.com/superset-sh/superset)是一个 Electron 驱动的桌面终端 / IDE,专为运行多个 CLI 编码代理设计,支持同时启动 10+ 个代理实例,每个实例独占一个 Git worktree,避免相互干扰。“Superset 允许在隔离 worktree 中运行多个代理,同时监控状态并接收通知。” 这使得它成为本地代理军团的理想宿主,与传统 IDE 不同,它 agent-agnostic,能无缝集成 Claude Code(Anthropic)、OpenAI Codex CLI、Cursor Agent、Gemini CLI 等多 LLM 工具。
相较云端 orchestrator,本地 Superset 的优势在于零网络延迟、全数据私有,且支持无限时长任务持久化。即使应用重启,代理会话也能恢复。针对 swarm 场景,它内置通知系统:代理完成任务或需人工干预时,即推送警报,便于构建 dispatch loops—— 例如,一个 “规划代理” 输出任务列表后,自动分发给 “实现代理”“测试代理” 等。
并行执行与 worktree 隔离机制
Superset 的 parallel execution 是 swarm 基础:通过多终端标签(⌘T 新标签),每个标签运行独立代理。隔离依赖 Git worktree:每个 workspace 创建专用分支和工作目录。
可落地参数:
- workspace 数量上限:默认 9 个快捷键(⌘1-9),实际可扩展至 20+,视机器资源(推荐 16GB+ RAM,M1/M2 Mac)。
- 隔离阈值:每个 worktree 独立 .env 与依赖,避免 npm/bun 冲突。配置
.superset/config.json:{ "setup": ["cp ../.env .env", "bun install"], "teardown": ["rm -rf node_modules", "git worktree remove ../workspace-name"] } - 资源分配:代理 CPU 亲和性 via
taskset(Linux/Mac),或 Electron 标签限流(内置无,但可脚本监控)。
启动 swarm 示例:
⌘N新 workspace,命名 “claude-planner”。- 终端运行
claude-code --prompt "规划用户认证模块"。 - 同时
⌘2新标签,Codex 测试代理待命。 - 规划完成,diff viewer(⌘L)审阅后,dispatch 脚本触发下一代理。
监控要点:
- 状态面板:实时显示代理 PID、输出日志、Git 变更数。
- 通知阈值:钩子脚本检测 “ready for review” 关键词,推送系统通知(macOS NSUserNotification)。
- 回滚策略:
git worktree prune清理失败分支,阈值 >5 未决变更自动隔离。
多 LLM 池化与 dispatch loops 配置
多 LLM 池化通过代理 CLI 实现:Claude 用 Anthropic API key,Codex 用 OpenAI。Superset 无内置路由,但 dispatch loops 可脚本化。
池化参数:
| LLM | 代理 CLI | API Key 位置 | 并发上限建议 |
|---|---|---|---|
| Claude 3.5 Sonnet | claude-code | ~/.claude/api | 5(rate limit 50/min) |
| GPT-4o/Codex | codex-cli | ~/.openai/api | 8(context 128k) |
| Gemini 1.5 | gemini-cli | ~/.gemini/key | 10(免费 quota) |
Dispatch loop 示例脚本(置于 .superset/dispatch.js,Bun 执行):
// 解析规划输出,路由任务
import { exec } from 'child_process';
const plannerOutput = await fs.readFile('planner.md');
const tasks = plannerOutput.match(/TASK: (.*)/g);
tasks.forEach((task, i) => {
const agent = i % 3 === 0 ? 'claude-code' : i % 3 === 1 ? 'codex-cli' : 'gemini-cli';
exec(`${agent} --prompt "${task}" --workspace workspace-${i}`, (err) => {
if (!err) notify('Task ${i} ready');
});
});
- 循环阈值:max_iterations=10,超时 30min / 任务(cron 杀掉超时 PID)。
- 负载均衡:轮询池,优先低延迟 LLM(ping API 预热)。
RAG 编排与跨代理上下文共享
RAG 在 Superset 中分层:每个代理自带 RAG(e.g., Claude Code + local vector DB),跨代理需手动或未来 memory layer。
落地清单:
- 单代理 RAG:配置 agent CLI
--rag-index ./vectorstore(用 LanceDB/Chroma,本地 embedding via Ollama)。 - 跨 swarm RAG:共享 via Git:代理 A 输出 embedding 到 shared branch,B 拉取
--context @workspaceA/output.json。 - 参数:chunk_size=512,top_k=5,相似阈值 > 0.8(faiss 索引)。
- Orchestration hooks:teardown 前 dump 知识图到 Neon DB(Superset 后端),query via tRPC。
风险限流:
- 幻觉控制:双代理审阅(生成 + 验证),阈值 edit distance <0.1。
- 成本监控:脚本追踪 token 用量,>1M 暂停 swarm。
部署与运维清单
快速自托管(macOS):
- 安装 Bun 1.0+、Git 2.20+、gh CLI、Caddy。
git clone https://github.com/superset-sh/superset.git && cd supersetcp .env.example .env编辑 API keys,echo 'SKIP_ENV_VALIDATION=1' >> .envcp Caddyfile.example Caddyfile,brew install caddybun install && bun run build,open apps/desktop/release
生产参数:
- 快捷键自定义:Settings > Keyboard Shortcuts (⌘/),dispatch 绑定 ⌘D。
- 持久化:Neon DB sync workspace 元数据,Electric SQL streams(Caddy proxy)。
- 扩展:Turborepo 多包,Biome lint,Vite HMR 热重载。
通过这些配置,Superset 变身为高效本地 IDE,代理军团产出提升 5x。实际测试中,10 代理 swarm 每日 commit 50+,零云费。
资料来源: