它是 harness + orchestration + control plane + visualization
它不实现通用 LLM 推理,也不替代 Claude Code、Codex 或 Gemini CLI 的 agent loop。它把这些已有 CLI 变成可创建、可隔离、可观察、可通信、可回收的本地 worker。
- 01Harness:拼装命令、环境变量、模型/权限/恢复参数并托管终端。
- 02Orchestration:Hive registry、任务、邮箱路由、God/worker 分工、调度与 Closing Time。
- 03Control plane:Electron Main 内执行进程、文件、Git、数据库、网络与安全决策。
- 04Visualization:React + Zustand + Pixi + xterm 把真实运行状态映射为 office world。
系统边界:管理 Agent,而非实现 Agent
package.jsonL1-L57dependenciesscripts依赖同时出现 Electron、node-pty、better-sqlite3、Pixi、xterm 与 Zustand,证明它是桌面编排壳而非模型库。
src/shared/agentProvider.tsL20-L60AgentProviderBridgeDescriptorProvider 列表和 bridge 类型把外部 CLI 明确放在运行边界之外。
src/main/index.tsL2521-L2941spawnAgentCorepty:spawn统一 spawn 入口完成 provider 推断、worktree、Hive 注入与 PTY 启动。
多 Agent 发生在“多个独立 CLI 进程 + 一个本地协调层”
每个活跃 Agent 对应一个 PtyManager session 和一个 node-pty 子进程。它们共享 Hive 协议与任务账本,但拥有独立 CLI 会话、上下文窗口、终端、可选 worktree 和 provider 配置。
关键边界:Munder Difflin 管理 CLI 进程;CLI 再连接各自的 LLM Provider。模型推理不在 Electron 主进程中。
核心链与外围能力必须分开读
核心链是 Renderer → Preload → Main → Hive/PTY → 外部 CLI。Realtime voice、Slack/Webhook、tunnel、PostHog 和 updater 都挂在控制面外缘,不应被误认成 Agent 编排本体。
模块依赖地图
遇到新需求,用所有权测试把它放回正确层
不要凭目录命名决定位置。问它需要什么权限、谁负责失败与清理、事实由谁裁决,再决定落在 Renderer、Main、外部 CLI 还是协议文件。
一个‘自动整理代码’按钮横跨四层:按钮在体验层,授权和编排在控制层,CLI 在执行层,任务与结果在事实层。