munder-difflin:本地多智能体编程编排工具
本地多智能体线束
蒙德·迪夫林
特工安全带来管理你的克隆人办公室
免费、开源且性能优良——一个多代理连接器,可以配合你已经付费订阅的服务,按小时付费。它会把你已经运行的终端代码CLI变成你的克隆体,一个在你不在时继续工作,并在你自己的机器上协调整个代理办公室的人。
包裹克劳德密码反重力(双子座),OpenAI手册,xAI 格罗克,Kimi Code,Qwen,OpenCode,压碎,pi.dev, 和GitHub Copilot CLI—— 配备自带密钥和本地大型语言模型。
这些代理负责消息、路由和记忆,协调你的克隆体(迈克尔)并被想象成在共用办公楼层工作的虚拟形象。
电子·反应 ·TypeScript ·Pixi.js ·xterm.js ·节点-pty
注释
世界上最顶尖的特工。世界上最糟糕的纸务公司。Munder Difflin 会使用你已经运行的终端代理 CLI ——claude,agy,codex,grok,kimi,qwen,opencode,crush,pi, 和copilot——并将他们变成一个自我协调的团队:每个特工拥有长期记忆、一个邮箱和一张二维办公楼层的办公桌——你的克隆体(迈克尔)路线在他们之间工作,你看着。
他是这层楼的老板;你还是他的老板。
目录
是什么
Munder Difflin 是一款桌面应用,可以打包真实终端代理CLI作为完全有能力的特工,他们被连接到一个蜂巢意识, , 并你的克隆体负责人——迈克尔,唯一的特工你沟通以完成事情。
引擎盖下它运行着世界上最快的内存层所以每个客服都能记住自己学到的内容,并能立刻回忆起来。
- 每个终端都是代理。每人
claude,agy,codex,grok,kimi,qwen,opencode,crush,pi,copilot,或者自定义会话作为伪终端中的真实进程运行(node-pty),字节逐字节真实,采用xterm.js表示。 - 每个特工都是化身。Sessions以Pixi.js办公室层级的角色形象出现——他们一边工作一边走向工作站,信封在桌间飞来飞去,当他们互相发消息时。
- 蜂巢负责协调它们。特工读取他们的记忆并抽干邮箱;路由器负责在收件箱之间传递消息;GOD代理只在需要你时进行裁决、分配和升级。
- 瞬间的记忆。带有语义回忆索引的 markdown 优先内存层意味着代理跨会话记忆,回忆时间为毫秒级。
工作原理
you ── talk to ──► ┌─────────────┐
│ GOD agent │ orchestrator / supervisor
│ (Michael's │ roster · routing · adjudication
│ office) │ blackboard · task ledger
└──────┬──────┘
│ assigns · routes · escalates
┌────────────────────────┼────────────────────────┐
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ agent A │ message │ agent B │ message │ agent C │
│ provider │ ─────────► │ provider │ ─────────► │ provider │
│ + memory │ │ + memory │ │ + memory │
└───────────┘ └───────────┘ └───────────┘
└──────── shared hive: memory · mailbox · blackboard · log ───────┘
- 你会生成特工—— 每个都是正常的终端过程(
claude,agy,codex,或自定义),拥有自己的工作目录、身份和提供者特定的生命周期。 - 代理通过蜂巢协作——一个本地的 Git 仓库,包含普通文件。他们写给自己人
outbox/;线束的路由器会将信号送达收件人的inbox/.没有代理会接触 git(单提交者设计避免了index.lock腐败)。 - GOD特工掌控着整个场地——它读取每一个请求,自行解决常规请求(保持系统完全自主),并且只会升级关键物品(花费、破坏行动、范围变更)进入审批队列,你会根据它行动。
- 一切都是可见的——你看着虚拟形象移动,信封飞舞,以及终端直播;你可以重新输入任何会话,浏览其文件,阅读它的 git 历史。
参见HIVE.md对于完整的多智能体设计,SPEC.md对于终端/事件平面,DESIGN.md用于视觉系统。
特色
地板
- 每个终端都是真正的代理。Claude Code、Antigravity(Gemini)、OpenAI Codex、xAI Grok、Kimi Code、Qwen、OpenCode、Crush,pi.dev、GitHub Copilot CLI,或自定义命令——每个命令都有其独特的功能
node-ptyPTY,用xterm.js渲染。 - 每个特工都是化身。一个Pixi.js的办公楼层,特工们走到站点,信封在桌间飞来飞去,虚拟形象反映着真实的工作。
- 你会和一个上帝的策划者交谈。它负责分配任务、裁定流量,并只升级需要人工的任务。或者媒体谈话并用声音跑舞。
- 每个代理的 git 工作树。可选隔离,避免平行代理在分支上碰撞。
记忆与协调
- 蜂巢—— 每个代理内存、原子文件邮箱、共享黑板、仅附加事件日志、单提交 git。
- 语义回忆—— Markdown 内存被挖掘成共享宫殿,用户界面可搜索,并加以凝结,防止无限增长。
- 企业知识图谱——你自己的文件和保单,任何代理人都可以查询。
控制与安全
- 人类之门——支出、范围和破坏性行动都会升级到你手中。在奔跑中途转向或优雅停下。
- 断路器——一个→约束→阻碍中止梯,帮助那些陷入反复、失误或超支的代理人。
- 预算与遥测—— 每个代理人的代币预算、转录实际成本、耐用账本、OTel跨度和工具瀑布。
指挥中心
- 带依赖的看板任务、定时任务+心跳、实时舰队监控、内存搜索、活动日志和CI监控器。
- 技能——每个代理已经能在Claude Code、OpenCode和Codex上做这些事,此外还能浏览227个目录,包含搜索、筛选、安装和卸载功能。
- 内置 Monaco IDE— 文件树、编辑器标签页、保存,加上更改·历史·比较带有提交图、差异、分支比较和守护检查的 git rails。所有 fs/git 访问都是通过主系统经纪的。
进出工作
- Slack与webhook—— 向频道发送消息或发布 webhook;迈克尔可以生成一个短暂的工人,在帖子里回复,然后将其摧毁。
- 可共享招聘 + 经纪人画廊— 从
munderdifflin://hire链接;导入只会预先填写表单,还是会有人类生成。浏览经纪人画廊. - BYOK密钥+本地大型语言模型—— 每个提供者的密钥,包含只写的秘密代理,以及 Ollama / LM Studio / vLLM 的基础 URL。指南:开放模型·Mac Mini.
- 自动更新—— 新版本在后台下载;你点击重启,笔记会以设计页面的形式出现,而不是版本号。
- 前提条件——一个设置页面,显示你拥有哪些支持工具(uv、git、Node、MemPalace、每个代理CLI)、各自用途,以及一个按钮,要求Michael安装缺失的部分。
注释
状态:v0.4.4 — Windows 代理终于可以相互通信了。在Windows上,代理从未被告知可以互相消息:协议通过多行命令行传递给他们,cmd.exe在第一条新线处切开。
他们开始了,看起来健康,却永远忽视了对方。如果你在Windows上用Munder Difflin,团队只是坐着不动,那就是这个bug。还有修复:全新安装现在会自动启动消息路由器,不用等重启,安装向导可以完成,暗黑模式也会重建以便阅读。
本次发布新增内容:技能,前提条件以及带有独立页面的发布说明。如果你用的是0.3.8版本,更新一下:该构建的使用限制守卫从未释放它所持有的特工,且已被完全移除。
macOS(签名并公证)、Windows和Linux版本都在发行页面.
(↑ 返回顶部)
入门
前提条件
- macOS、Windows 或 Linux.
- Node.js 18+以及NPM。
- AC/C++ 工具链对于
node-pty原生插件——在macOS上安装Xcode命令行工具:xcode-select --install - 至少有一个支持的代理CLI在你的
PATH—克劳德密码(claude,为默认),反重力(agy),OpenAI 手本(codex),xAI 格罗克(grok),Kimi Code(kimi),Qwen(qwen),OpenCode(opencode),压碎(crush),pi.dev(pi),或GitHub Copilot(copilot).大多数缺失的CLI会自我修复:线束在终端中运行安装程序,然后继续进入新的二进制文件。 - 可选: 你自己的API密钥和本地LLM在AI引擎→设置(Ollama / LM Studio / vLLM)。
- 可选:即时跨会话回忆的语义记忆索引——Markdown Memory 无需它也能工作。
安装并运行
git clone https://github.com/chaitanyagiri/munder-difflin.git
cd munder-difflin
npm install # postinstall rebuilds node-pty against Electron's ABI
npm run dev # launches the Electron app with hot reload
第一次发射时,你会通过入门向导,然后落地。用途添加代理触发你的第一场会议——GOD特工会自动坐进迈克尔的办公室。
其他文字
npm run build # production build via electron-vite
npm run preview # preview the production build
npm run typecheck # type-check the node (main/preload) and web (renderer) projects
如果node-ptyElectron升级后加载失败,重新运行npm install(postinstall钩子跑electron-rebuild与当前的电子ABI相对)。
建筑
两个数据平面为一个渲染器供电:
┌───────────────────────────────────────────────────────────────┐
│ Electron Renderer (React) │
│ ┌──────────────────┐ ┌──────────────────────────────┐ │
│ │ Office Floor │ │ Terminal + Command Bar │ │
│ │ (Pixi.js) │ │ Files + Git tabs (xterm.js) │ │
│ └─────────▲────────┘ └────────────▲─────────────────┘ │
│ │ avatar state │ pty bytes / fs / git │
└─────────────┼──────────────────────────┼───────────────────────┘
│ IPC (contextBridge: window.cth)
┌──────┴──────────┐ ┌──────┴─────────────┐
│ Event Plane │ │ Terminal Plane │
│ hooks / hive │ │ node-pty PTYs │
│ router + GOD │ │ + fs + git │
└────────▲────────┘ └──────▲─────────────┘
│ hook payloads │ stdin / stdout
└─────────┬──────────────┘
┌──────┴──────────────┐
│ claude / agy / codex│
└─────────────────────┘
- 航站楼。主进程拥有
PtyManager该系统生成每个代理人为node-pty进程和流在每个ID的IPC输出(pty:data:).渲染器只通过打字方式进行对话window.cth桥梁(src/preload/index.ts),该文件还暴露了沙箱文件系统和 Git 辅助工具。 - 蜂巢/事件位面。
hive.ts是磁盘上的多智能体层;hooks.ts运行钩子服务器,该服务器将POST生命周期负载桥接到(cth-hook对于克劳德代码,agy-hook用于反重力)。memory.ts将语义记忆CLI包裹起来。路由器负责发送消息,耗尽提供商的收件箱,GOD代理负责裁决,空闲/收件箱唤醒则让员工不断清理邮件。
项目结构
src/
main/ Electron main process (Node)
index.ts window, IPC handlers, quit guard
pty.ts node-pty manager (spawn/write/resize/kill/stream)
hive.ts on-disk multi-agent layer (memory, mailboxes, router)
hooks.ts hook server + provider hook shims (`cth-hook`, `agy-hook`)
memory.ts semantic memory layer (CLI wrapper, degrade-to-noop)
config.ts harness config persistence + home setup
transcript.ts reads ~/.claude/projects/ JSONL transcripts for real token/cost telemetry
telemetry.ts live OTel collector + usage/cost feed for observability
usage.ts / pricing.ts UsageProvider seam + per-model cost attribution
breaker.ts / control.ts cost/runaway circuit breaker (steer/constrain/stop) + HITL gate / steer / stop
reflect.ts MemoryReflector — memory condensation
db.ts SQLite durable store (window bounds + history) + durable cost ledger
github.ts GitHub issue + CI run ingestion via the gh CLI
shellEnv.ts resolve PATH and shell env for child processes
fs.ts / git.ts sandboxed filesystem + git bridges
preload/ contextBridge → typed window.cth API
renderer/src/
App.tsx top-level layout + wiring
design/ tokens.css / tokens.ts / global.css (design source of truth)
components/ PixelPanel, AgentDetailPanel, CommandBar, ApprovalsPanel, MemoryPanel, …
CommandCenterPanel, Michael's control surface (Terminal/Floor/Memory/Activity/Tasks/Triggers/Handbook tabs)
ToolWaterfall, per-agent tool-span waterfall for the observability view
TasksKanban, dependency-aware kanban board (Tasks tab)
ThreadsPanel, hive message conversation viewer (Messages tab)
MessageQueueComposer, park messages for a busy agent
scene/office/ Pixi office floor: OfficeFloor, Character, Camera, cast, pathfinding, …
store/ · hooks/ zustand store, event loop, PTY parser, typewriter
assets/ tilesets, maps, character sheets (see ATTRIBUTION.md)
docs/ `logo.png`, `banner.png`, landing page (GitHub Pages → munderdiffl.in)
docs/media/ `og.png` (social previews) + rendered Remotion clips
landing-remotion/ Remotion project that renders the landing page's "how it works" clips
HIVE.md · SPEC.md · DESIGN.md multi-agent · terminal/event · visual design
docs/message-queue.md who may type into an agent's terminal, and when
(↑ 返回顶部)
设计系统
美学是动物之森 × 地球冒险 × SNES 菜单界面——像素快照,粗壮,友好。DESIGN.md是正典;每个组件都源自其代币。Munder Difflin品牌叠加了邓德-米夫林栗色(#6E1423)金色(#F4D35E顶部用于标志和镀铬。15个化身是办公室,通过头发/皮肤/衬衫配方来区分。
路线图
运输v0.4.3——十个代理引擎,配备BYOK密钥和本地LLM,语音编排,蜂巢(内存·邮箱·黑板·事件日志),带看板和日程的指挥中心,内置带git rails的Monaco IDE,集成注册表+秘密代理,Slack生成的工人,可共享招聘和代理画廊,可观察性和断路器,持久性,会话恢复,多窗口层级,以及可运行的自动更新。
完整历史见CHANGELOG.md.
接下来:
- 更多聊天集成—— Telegram 和更丰富的聊天桥接,将通道插入迈克尔的队列,回复路由返回。
- 更多引擎和集成模板——继续扩大引擎阵容和集成注册表。
- 更完整的头像覆盖——将剩余的站点访问和工具泡沫完全排除在真实的挂钩事件之外。
- 耐用布局与指挥历史——将持久性扩展到代理布局和每会话历史。
(↑ 返回顶部)
贡献
欢迎贡献——这是一个早期原型,拥有较大的表面积。从以下开始CONTRIBUTING.md.简短版:分叉,npm install && npm run dev,保持npm run typecheck绿色,且从衍生任何新UI。DESIGN.md代币.好的起步部分包括:布线真实钩事件、添加代理流程、配置抽屉和跨平台工作。
遥测
官方版本发送一小部分匿名使用事件(应用程序打开、代理生成、功能使用)——从不提示、代码、文件路径或代理输出。完整的活动列表、匿名保证以及三种退出方式(设置切换,DO_NOT_TRACK,或从源代码构建——分支编译时没有密钥且不发送任何东西)文档TELEMETRY.md.
许可
重要
资产授权。捆绑的像素艺术(瓦片集、地图以及Office角色重新上色的基础角色卡)来自LimeZu街道shahar061/the-office在LimeZu 免费版本许可 — 仅限非商业用途.重新上色的精灵继承了这个限制。
参见src/renderer/src/assets/ATTRIBUTION.md.商业化时,可以替换这些资产或获得付费的LimeZu许可。
该源代码该许可证以麻省理工学院许可—— 参见LICENSE.MIT的资助仅涵盖代码;上述非商业资产限制在LICENSE范围说明。蒙德·迪夫林是一部充满感情的恶搞,与NBC无关办公室或者邓德·米夫林。