Hotdry.
ai-systems

自托管 Superset 作为本地 AI 代理军团 IDE:Claude Code/Codex 分发循环与多 LLM 池化

自托管 Superset IDE 运行 Claude Code/Codex 等代理军团,支持本地分发循环、多 LLM 池化与 RAG 编排,提供隔离 worktree、并行执行参数与监控要点。

在 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 示例:

  1. ⌘N 新 workspace,命名 “claude-planner”。
  2. 终端运行 claude-code --prompt "规划用户认证模块"
  3. 同时 ⌘2 新标签,Codex 测试代理待命。
  4. 规划完成,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。

落地清单

  1. 单代理 RAG:配置 agent CLI --rag-index ./vectorstore(用 LanceDB/Chroma,本地 embedding via Ollama)。
  2. 跨 swarm RAG:共享 via Git:代理 A 输出 embedding 到 shared branch,B 拉取 --context @workspaceA/output.json
  3. 参数:chunk_size=512,top_k=5,相似阈值 > 0.8(faiss 索引)。
  4. Orchestration hooks:teardown 前 dump 知识图到 Neon DB(Superset 后端),query via tRPC。

风险限流

  • 幻觉控制:双代理审阅(生成 + 验证),阈值 edit distance <0.1。
  • 成本监控:脚本追踪 token 用量,>1M 暂停 swarm。

部署与运维清单

快速自托管(macOS)

  1. 安装 Bun 1.0+、Git 2.20+、gh CLI、Caddy。
  2. git clone https://github.com/superset-sh/superset.git && cd superset
  3. cp .env.example .env 编辑 API keys,echo 'SKIP_ENV_VALIDATION=1' >> .env
  4. cp Caddyfile.example Caddyfilebrew install caddy
  5. bun install && bun run buildopen 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+,零云费。

资料来源

查看归档