在 Mac mini 上离线运行 Munder Difflin Agent 办公室:本地大模型部署与引擎接线完全指南
2026/9/17 23:34:44 网站建设 项目流程

在 Mac mini 上离线运行 Munder Difflin Agent 办公室:本地大模型部署与引擎接线完全指南

【免费下载链接】munder-difflinA local multi-agent harness that works with your existing Claude Code, Codex subscriptions, allows you to run an office of agents项目地址: https://gitcode.com/GitHub_Trending/mu/munder-difflin

本指南基于 Munder Difflin 0.5.2(截至 2026 年 9 月 10 日的 Apple M6 与 M5 Pro Mac mini 产品线),讲解如何让一个完整的 Munder Difflin 办公室完全离线运行:先按统一内存为模型选机,再用 Ollama 或 LM Studio 架设本地模型服务器,最后把 OpenCode、Crush、Qwen 与 Pi 四个引擎全部指向本地端点。读完本文,你将掌握从选机、内存测算、模型下载到逐引擎接线的完整落地路径,并理解 Munder Difflin 底层如何把本地端点注入每个 Agent。

在单机聊天窗口里跑一个本地模型只是爱好;让一整支 Agent 团队在自己的硬件上工作、没有 API 账单、数据不出房间,是另一回事。Munder Difflin 的"管道"本来就跑在你的机器上:消息路由、邮箱、记忆、日程和 git 历史都是本地优先的(参见 《本地优先的 AI Agent 编排》)。唯一通常要访问互联网的环节是模型。把模型也搬上 Mac mini,Agent 的完整工作循环就留在房间里了。


为什么 Mac mini 是本地 Agent 的天然载体:统一内存

关键在统一内存(unified memory)。在 Apple silicon 上,CPU 与 GPU 共享同一块高速内存池,模型的权重就放在 GPU 直接读写的位置,无需跨总线拷贝。一台 32 GB 的 Mac mini 能容纳在 PC 上需要 32 GB 独立显卡才能承载的模型,而功耗低一个数量级。加上体积小、噪音低,Mac mini 是天生的常开(always-on)服务器。

一个必须先说的前提:内存是芯片的一部分,后期无法升级。选购时应按你计划运行的最大模型来配置,而不是按现在的需求。

需要多少内存:为模型选机,而不是为 Agent 数量选机

内存只需要装得下模型,而不是 Agent。所有 Agent 共享同一个模型服务器——10 个 Agent 和 2 个 Agent 跑同一个模型,内存占用大致相同。

估算规则

  • 4 bit 量化模型大约需要每 10 亿参数 0.6 GB,此外还要给上下文、模型服务器和 macOS 本身留出空间。
  • macOS 默认限制 GPU 可占用的内存量,大约在总内存的三分之二到四分之三。在专用机器上可以用sudo sysctl iogpu.wired_limit_mb=<MB>调高这个上限。
  • 实用经验法则:让模型占用约三分之二的内存

Mac mini 各档位能跑什么(2026 年 9 月,4 bit)

Mac mini内存舒适模型规模
M616 GB约 8B
M624 GB最高约 14B
M632 GB最高约 32B,上下文较短
M5 Pro24 GB最高约 14B,生成更快
M5 Pro48 GB32B 从容运行,或 70B 重度量化
M5 Pro64 GB70B 级,4 bit

M5 Pro 的内存带宽高得多——307 GB/s,对比 M6 最高约 170 GB/s——这个差距直接体现在每秒 token 数上。

各内存档位的具体模型推荐(ollama pull <tag>

内存推荐(Ollama tag)适用
16 GBgpt-oss:20b(偏紧),或qwen3:8bdeepseek-r1:8b留出更多上下文空间最小的可用默认
24 GBqwen3:14bmistral-small:24b宽敞的全能型
32 GBqwen3:30b-a3bqwen3-coder:30bdeepseek-r1:32b甜点区:通用、编程或推理
48 GBglm-4.7-flash(8 bit),或mixtral:8x7b更大上下文
64 GBllama3.3:70bdeepseek-r1:70b70B 级全能型或推理型

这份清单与仓库内置的本地模型快捷选择(Add Agent 弹窗中的 OSS quick-picks)高度一致:在 src/shared/ossModels.ts 中,OSS_LOCAL_PICKS明确标注了每个 Ollama tag 的最低内存要求,例如gpt-oss:20b标注 16 GB、qwen3:30b-a3bqwen3-coder:30b标注 32 GB、llama3.3:70b标注 64 GB,而gpt-oss:120b则需要 96 GB。

Mac mini 跑不了什么。前沿开源旗舰,比如 Kimi K2.6 和 Qwen3 235B,是服务器级模型,远超 64 GB 的承载能力。这类模型应改用云端提供商,参见 《在开源模型上运行 Munder Difflin》。另外gpt-oss:120b需要约 96 GB 内存,意味着需要 Mac Studio 而非 mini。

Step 1:安装一个模型服务器

Ollama 或 LM Studio,二选一。两者都提供 OpenAI 兼容端点,这正是各引擎的对话接口。

Ollama:轻量,适合常开机器

brew install ollama ollama serve # 在 http://localhost:11434 提供 API ollama pull gpt-oss:20b # 按你的内存档位替换 tag

它的 OpenAI 兼容 API 位于http://localhost:11434/v1。Ollama 以后台服务方式运行,适合一直开着的盒子。

LM Studio:带模型浏览器的图形应用

从官网下载 LM Studio,在应用内搜索并下载模型,然后在 Developer 部分启动本地服务器。它在http://localhost:1234/v1提供 OpenAI 兼容 API。

两个可以同时运行:Ollama 占 11434,LM Studio 占 1234,把不同引擎指向不同端口就能对比模型。

Step 2:把每个引擎接到本地服务器

在你的 Mac mini 办公室里,有四个引擎可以用本地模型。设置面板位于Settings → AI Engines,其实现对应源码 src/renderer/src/components/AiEnginesSettings.tsx:面板把每个 CLI 引擎的「本地 base URL + 默认模型」写入配置的providerBaseUrls/providerDefaultModels字段(保存在 src/main/config.ts 的HarnessConfig中),而 API Key 则以只写方式存入密钥存储,永不回读明文。

OpenCode

Settings → AI Engines中把 OpenCode 的本地 base URL 设为http://localhost:11434/v1。Agent 启动时,应用会把它作为本地 provider 注入。模型选择写为local/<tag>,例如local/gpt-oss:20b

这正是仓库里localSlugFor的逻辑:在 src/shared/ossModels.ts 中,OpenCode 的本地 provider 名为local,tag 保留冒号,拼接为local/${tag}

Crush

在同一个面板中设置 Crush 的本地 base URL。Crush 通过应用内置的一个小型本地代理运行,你的模型服务器成为该代理的上游(upstream),因此无需手改任何 Crush 配置。模型写为ollama/<tag>,例如ollama/gpt-oss:20b

从源码看,这一步发生在 src/main/index.ts 的 spawn 流程中:对crush/qwen这类 proxy 层 CLI,应用会把providerBaseUrls里配置的 base URL 写入代理 bridge 的上游环境变量,再交给hive.ensureAgent——也就是说,你在设置面板填的本地端点,最终以代理上游的身份参与每个 Agent 的启动。

Qwen

在同一个面板中设置 Qwen 的本地 base URL 和默认模型。Qwen 与 Crush 使用相同的代理方案。

Pi

Pi 从它自己的文件读取本地模型:~/.pi/agent/models.json,而 Munder Difflin 会在每次启动 Pi Agent 时把该文件复制进该 Agent 的隔离目录。应用的 base URL 字段对 Pi 保留(reserved)。按如下方式添加 Ollama,然后选择ollama/gpt-oss:20b

{ "providers": { "ollama": { "baseUrl": "http://localhost:11434/v1", "api": "openai-completions", "apiKey": "ollama", "models": [{ "id": "gpt-oss:20b" }] } } }

若用 LM Studio,则把baseUrl换成http://localhost:1234/v1models[].id换成 LM Studio 显示的模型 id。

这一行为的源码证据在 src/main/hive.ts 的installPiHooks:它为每个 Pi Agent 创建独立的~/.pi-agent目录(绝不改动用户全局的~/.pi),并把用户主目录下~/.pi/agent/models.jsonmodels-store.json逐一复制进该 Agent 目录,从而让每个 Pi Agent 都继承你在本地模型文件中配置的 provider。

Step 3:运行办公室

模型已就绪、引擎已接线之后,就可以从 Agent Gallery 或 Add Agent 招工,给 Michael(编排者)一个目标,让它跑起来。Agent 之间的消息通过文件邮箱传递,日程由本地定时器触发,git 记录全部历史——离线环境下这些机制照常工作。

面向常开 Mac mini 的几条实战建议:

  • 一个模型,多个工人。所有 Agent 共享同一个模型服务器,因此瓶颈是芯片算力而非每 Agent 内存。在负载下留意每秒 token 数;16 GB 和 24 GB 档位要保持上下文精简。
  • 保持机器清醒。设置 Mac mini 不进入睡眠,或运行caffeinate,确保日程持续触发。此外,Munder Difflin 自身也会在至少一个 Agent 运行时保持机器唤醒:源码 src/main/index.ts 中的syncKeepAwake会在有活跃 PTY 时调用 Electron 的powerSaveBlocker(默认prevent-app-suspension,若开启strongKeepalive配置则升级为prevent-display-sleep),并在没有 Agent 时自动释放。
  • 量化是你的杠杆。模型放不下时,先试更小位数的量化,再考虑换更小的模型。
  • 自由混用引擎。OpenCode、Crush、Qwen 和 Pi 可以共享同一个本地服务器,按 Agent 分别选择即可。

延伸阅读

  • 《在开源模型上运行 Munder Difflin》:补充云端 provider 路线与完整的快捷选择清单。
  • 《为什么本地优先对 AI Agent 很重要》:理解这一切背后的设计理念。
  • 第一次使用本应用?先看 《如何安装和使用 Munder Difflin》。

一句话总结:Mac mini + Ollama/LM Studio + Munder Difflin 的 AI Engines 面板,就能在房间内闭环运行一支完整的 Agent 办公室——选机看内存带宽与容量,接线认准local/ollama/两种模型前缀,常开机器记得同时使用caffeinate与应用自带的电源保持机制。

【免费下载链接】munder-difflinA local multi-agent harness that works with your existing Claude Code, Codex subscriptions, allows you to run an office of agents项目地址: https://gitcode.com/GitHub_Trending/mu/munder-difflin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询