Munder Difflin 论文去重工具

chaitanyagiri/munder-difflin 访问 GitHub ↗
🔤 TypeScript ★ 3127 ⑂ 0 daily #10 (+507) 抓取 2026-08-21

一句话简介

基于 TypeScript 的开源项目,聚焦于论文与文档的查重与差异比对,帮助用户高效识别重复内容并管理文本版本。

标签

  • TypeScript
  • 论文查重
  • 文本差异
  • 开源工具
  • 文档管理

适用应用场景

  • 学术论文投稿前查重
  • 科研文档版本对比
  • 团队协作中的内容去重
  • 文献库整理与去重

README 中文摘要

项目概述

Munder Difflin 是一个桌面端多代理调度平台,将本地已有的终端编码 CLI 包装为可相互协作的代理团队,并在可视化办公场景中实时呈现其工作状态。

设计动机

每个开发者通常已在使用终端代理 CLI(如 claudeagycodex 等),并支付了相应的订阅额度。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.cthcontextBridge)调用沙箱化的文件系统与 git 接口。
  • 事件面(Event Plane)hive.ts 实现基于文件的多代理层;hooks.ts 运行 hook 服务器,接收各 provider 的生命周期载荷(cth-hookagy-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…