Munder Difflin 论文去重工具
chaitanyagiri/munder-difflin
访问 GitHub ↗
一句话简介
基于 TypeScript 的开源项目,聚焦于论文与文档的查重与差异比对,帮助用户高效识别重复内容并管理文本版本。
标签
适用应用场景
- 学术论文投稿前查重
- 科研文档版本对比
- 团队协作中的内容去重
- 文献库整理与去重
README 中文摘要
项目概述
Munder Difflin 是一个桌面端多代理调度平台,将本地已有的终端编码 CLI 包装为可相互协作的代理团队,并在可视化办公场景中实时呈现其工作状态。
设计动机
每个开发者通常已在使用终端代理 CLI(如 claude、agy、codex 等),并支付了相应的订阅额度。Munder Difflin 的目标是在不改变这些工具使用习惯的前提下,让它们形成一个"自我协调的团队",在用户离开时继续工作,并通过"分身"——Michael(GOD 代理)来统一调度任务、分配资源、裁决冲突,仅在涉及支出、破坏性操作或范围变更等关键事项时升级给用户决策。
核心特性
- 每个终端即代理:支持 Claude Code、Antigravity(Gemini)、OpenAI Codex、xAI Grok、Kimi Code、Qwen、OpenCode、Crush、pi.dev、GitHub Copilot CLI 等十余种 CLI,每个会话以
node-pty进程运行,xterm.js 渲染。 - 每个代理即头像:Pixi.js 构建的 2D 办公楼层,代理以角色形象走动至工位,信封在桌面间传递以表示消息流转。
- GOD 编排器:单一入口代理 Michael,负责路由、裁决、升级;用户也可通过 Talk 语音直接下达指令。
- 共享记忆与协作(Hive):本地 git 仓库承载每代理的
outbox/与inbox/,路由器按收件箱投递,黑板与事件日志提供共享状态;单提交者设计避免index.lock冲突。 - 语义记忆层:以 markdown 为基础的持久记忆,配合语义检索索引实现毫秒级跨会话召回,并支持自动压缩防止无限膨胀。
- 预算与熔断机制:基于 token 配额与实时成本的熔断器,提供 steer → constrain → stop 三级保护;OTel span 与工具瀑布图提供完整观测能力。
- Command Center:看板任务(带依赖)、定时任务与心跳机制、舰队监控、CI 监听、内置 Monaco 编辑器(含 git 历史与 diff 视图)。
- 技能市场:内置 Claude Code、OpenCode、Codex 的现有技能,并提供 227 项可浏览、可安装的扩展技能目录。
- 外部集成:Slack 与 Webhook 入口、可分享的代理招募链接(
munderdifflin://hire)、BYOK 密钥与本地 LLM(Ollama / LM Studio / vLLM)支持。 - 运维辅助:一键自检前置依赖(uv、git、Node、MemPalace、各 CLI),缺失项可由 Michael 自动安装;后台自动更新与设计化发布说明页。
技术架构
系统由两条数据面共同驱动单个 Electron 渲染器:
- 终端面(Terminal Plane):主进程的
PtyManager通过node-pty生成每个代理进程,按pty:data:<id>经 IPC 流式传输字节;渲染端只能通过window.cth(contextBridge)调用沙箱化的文件系统与 git 接口。 - 事件面(Event Plane):
hive.ts实现基于文件的多代理层;hooks.ts运行 hook 服务器,接收各 provider 的生命周期载荷(cth-hook、agy-hook);memory.ts封装语义记忆 CLI;路由器负责消息投递、空闲与收件唤醒以保证代理持续处理任务。
GOD 代理位于架构顶端,独立处理常规请求,仅在关键事项上将任务推入用户的审批队列。
关键 CLI 用法
git clone https://github.com/chaitanyagiri/munder-difflin.git
cd munder-difflin
npm install # postinstall 会针对 Electron ABI 重建 node-pty
npm run dev # 启动 Electron 应用并开启热重载
其他常用脚本:
npm run build # 通过 electron-vite 生产构建
npm run preview # 预览生产构建
npm run typecheck # 对主进程与渲染进程做类型检查
配置示例
启动后进入引导向导完成初始设置。在 Settings → AI Engines 中可填入各 provider 的 BYOK 密钥或本地 LLM 的 base URL(Ollama / LM Studio / vLLM),密钥仅写入只读密钥代理,不会上传。用户也可启用/关闭匿名遥测,或通过 DO_NOT_TRACK 环境变量、源码构建完全退出。
项目结构概览
src/
main/ # 主进程:PtyManager、hive、hooks、memory、telemetry、breaker 等
preload/ # contextBridge → 类型化 window.cth API
renderer/src/ # 渲染端:React 应用、Pixi 楼层场景、zustand 状态、Monaco 编辑器
docs/ # 设计文档(DESIGN.md)、多代理规范(HIVE.md)、终端规范(SPEC.md)
landing-remotion/# 用于着陆页 "how it works" 动画的 Remotion 项目
路线图(下一阶段)
- 扩展聊天集成(Telegram 等)以将频道消息接入 Michael 队列
- 持续扩充 provider 引擎与集成模板
- 让所有工位访问与工具气泡完全由 hook 事件驱动
- 持久化代理布局与会话级命令历史
摘要更新于 2026-08-21 00:31:59
· 原文 21127 字符
· md5 bd59f77d4653…