【硬核实战】Mac mini M4 部署 OpenClaw + Ollama 本地大模型:从零到一打通飞书机器人

【硬核实战】Mac mini M4 部署 OpenClaw + Ollama 本地大模型:从零到一打通飞书机器人

文章目录

📅 前言随着 Mac mini M4 的发布,16GB 统一内存成为了本地跑 AI Agent 的绝佳土壤。本文将记录如何利用 OpenClaw 框架,配合 Ollama 运行的 Qwen 2.5 系列模型,通过 WebSocket 长连接 接入飞书,实现一个完全私有化、极速响应的个人助理。

一、 核心环境准备

硬件:Apple Mac mini M4 (16GB RAM)
系统:macOS Sequoia
模型后端:Ollama (运行 Qwen 2.5-7B)
Agent 框架:OpenClaw (v2026.3.2)
Node 版本:v24.14.0 (通过 nvm 管理)

二、 避坑指南:环境初始化在 Mac 终端部署时,首要解决的是权限与路径问题。

1. 终端常用快捷键* Control + C:强制停止当前运行的命令(如安装卡死时)。

  • sudo:以管理员身份运行。若遇到权限不足,在指令前加 sudo 即可。

2. Node.js 环境修复若遇到 zsh: command not found: openclaw,说明 NVM 路径未加载。

3. 临时加载环境

source ~/.nvm/nvm.sh && nvm use 24 

4. 永久写入配置

echo 'export NVM_DIR="$HOME/.nvm"\n[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ~/.zshrc && source ~/.zshrc 

三、 模型选择:M4 性能调优

针对 16GB 内存,我测试了不同参数量的模型:

  1. Qwen 2.5-14B:逻辑极强,但占用约 9GB 显存,响应稍慢。
  2. DeepSeek-R1-8B:推理能力卓越,但对 OpenClaw 的 Tools (函数调用) 兼容性一般。
  3. Qwen 2.5-7B (推荐):秒回速度,完美支持自动化工具协议,是 M4 下的最佳平衡点。

安装命令:

ollama run qwen2.5:7b 

四、 OpenClaw 配置手术 (JSON 详解)

手动编辑 ~/.openclaw/openclaw.json 是解决配置报错的最快方式。
关键配置项说明:

  • baseUrl: 必须指向 http://127.0.0.1。
  • appSecret: 飞书后台的真实密钥(非 cli_ 开头)。

tools.profile: 设置为 minimal 或 none 以减少小模型工具调用的报错。

在这里插入图片描述

最终稳定版配置参考:

{ "models": { "providers": { "custom-127-0-0-1-11434": { "baseUrl": "http://127.0.0.1", "apiKey": "ollama", "api": "openai-completions", "models": [{ "id": "qwen2.5:7b", "reasoning": false }] } } }, "agents": { "defaults": { "model": { "primary": "custom-127-0-0-1-11434/qwen2.5:7b" } } }, "channels": { "feishu": { "enabled": true, "appId": "cli_xxxxxxxx", "appSecret": "xxxxxxxxxxxx", "connectionMode": "websocket" } }, "gateway": { "port": 18789, "mode": "local" } } 

五、 飞书机器人接入:最后的临门一脚

很多同学卡在“机器人已上线但不回复”,请务必检查飞书后台:

  1. 启用机器人:在“应用功能”中确认开启。
  2. 事件订阅:必须添加 接收消息 (im.message.receive_v1) 事件。
  3. WebSocket 模式:在“事件订阅”中开启 WebSocket 模式。

版本发布:改了权限或事件后,必须创建新版本并点击“申请上线”,否则改动不生效!

在这里插入图片描述

六、 运行与调试

启动网关并观察日志:

启动 Gateway

openclaw gateway --allow-unconfigured 

第一次发消息需授权 (Pairing)

openclaw pairing approve feishu [验证码] 
在这里插入图片描述

当日志出现 [ws] ws client ready 时,你的 M4 机器人就已经正式“活”过来了。

在这里插入图片描述

💡 结语

通过 OpenClaw 与本地模型的结合,我们成功让 Mac mini M4 变成了一个 7x24 小时在线的智能助理,当然目前本地部署的7b模型还是远远不够的,后续可以使用付费token提升模型智力
Q&A:

  • Q: 为什么报错 400: deepseek does not support tools?
  • A: 推理模型暂时无法处理 OpenClaw 的 JSON 函数调用格式,建议将 tools.profile 改为 minimal 或换用 Qwen 模型。

如果你也拥有一台 M4 Mac,不妨按此指南尝试部署,开启你的本地 Agent 之旅!

Read more

Flutter 三方库 wasm_ffi 深入鸿蒙端侧硬核 WebAssembly 虚拟机沙盒穿透适配全景:通过异步极速 FFI 中继管道打通底层高算力异构服务-适配鸿蒙 HarmonyOS ohos

Flutter 三方库 wasm_ffi 深入鸿蒙端侧硬核 WebAssembly 虚拟机沙盒穿透适配全景:通过异步极速 FFI 中继管道打通底层高算力异构服务-适配鸿蒙 HarmonyOS ohos

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 wasm_ffi 深入鸿蒙端侧硬核 WebAssembly 虚拟机沙盒穿透适配全景:通过异步极速 FFI 中继管道打通底层高算力异构服务并全面实现无损语言壁垒交互 前言 在 OpenHarmony 应用向高性能计算领域扩展的过程中,如何优雅地接入已有的 C/C++ 算法库(如加密引擎、重型图像处理、数学模拟)而又不失跨平台的便捷性?传统的 NAPI 虽然稳健,但在 Flutter 生态中,直接利用 WebAssembly (WASM) 配合 FFI(External Function Interface)的语义可以在一定程度上实现代码的高度复用。wasm_ffi 库为 Flutter 开发者提供了一套在 Dart 环境下调用 WASM

By Ne0inhk
三种适用于Web版IM(即时通讯)聊天信息的加密算法实现方案

三种适用于Web版IM(即时通讯)聊天信息的加密算法实现方案

文章目录 * **第一部分:引言与核心密码学概念** * **1.1 为什么IM需要端到端加密(E2EE)?** * **1.2 核心密码学概念与工具** * **第二部分:方案一:静态非对称加密(基础方案)** * **2.1 方案概述与流程** * **2.2 前端Vue实现(使用node-forge)** * **1. 安装依赖** * **2. 核心工具类 `crypto.js`** * **3. Vue组件中使用** * **2.3 后端Java实现(Spring Boot)** * **1. 实体类** * **2. Controller层** * **3. WebSocket配置** * **2.4 密钥管理、注册与登录集成** * **1. 用户注册/登录时生成密钥** * **2. 密钥设置页面** * **2.

By Ne0inhk
前端代码生成的大洗牌:当 GLM 4.7 与 MiniMax 挑战 Claude Opus,谁才是性价比之王?

前端代码生成的大洗牌:当 GLM 4.7 与 MiniMax 挑战 Claude Opus,谁才是性价比之王?

在 AI 辅助编程领域,长期以来似乎存在一条不成文的铁律:如果你想要最好的结果,就必须为最昂贵的模型买单(通常是 Anthropic 或 OpenAI 的旗舰模型)。然而,随着国产大模型如 GLM 4.7 和 MiniMax M2.1 的迭代,这一格局正在发生剧烈震荡。 最近,一场针对Claude Opus 4.5、Gemini 3 Pro、GLM 4.7 和 MiniMax M2.1 的前端 UI生成横向测评,打破了许多人的固有认知。在这场包含落地页、仪表盘、移动端应用等五个真实场景的较量中,不仅出现了令人咋舌的“滑铁卢”,更诞生了性价比极高的“新王”。 本文将深入拆解这场测试的细节,透过代码生成的表象,探讨大模型在工程化落地中的真实效能与成本逻辑。

By Ne0inhk
【Java Web学习 | 第14篇】JavaScript(8) -正则表达式

【Java Web学习 | 第14篇】JavaScript(8) -正则表达式

🌈个人主页: Hygge_Code🔥热门专栏:从0开始学习Java | Linux学习| 计算机网络💫个人格言: “既然选择了远方,便不顾风雨兼程” 文章目录 * JavaScript 正则表达式详解 * 什么是正则表达式🤔 * JavaScript 正则表达式的定义与使用🥝 * 1. 字面量语法 * 2. 常用匹配方法 * test() 方法🍋‍🟩 * exec() 方法🍋‍🟩 * 正则表达式的核心组成部分🐦‍🔥 * 1. 元字符 * 边界符 * 量词 * 字符类 * 2. 修饰符 * 简单示例🍂 JavaScript 正则表达式详解 正则表达式是处理字符串的强大工具,在 JavaScript 中被广泛应用于表单验证、文本处理和数据提取等场景。本文将从正则表达式的基本概念出发,详细介绍其语法规则和实际应用方法。 什么是正则表达式🤔 正则表达式是用于匹配字符串中字符组合的模式,在 JavaScript

By Ne0inhk