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 路径未加载。
临时加载环境
source ~/.nvm/nvm.sh && nvm use 24
永久写入配置
echo 'export NVM_DIR="$HOME/.nvm"\n[ -s "$NVM_DIR/nvm.sh" ] && \ . "$NVM_DIR/nvm.sh"' >> ~/.zshrc && source ~/.zshrc
三、模型选择:M4 性能调优
针对 16GB 内存,测试了不同参数量的模型:
- Qwen 2.5-14B:逻辑极强,但占用约 9GB 显存,响应稍慢。
- DeepSeek-R1-8B:推理能力卓越,但对 OpenClaw 的 Tools (函数调用) 兼容性一般。
- 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"
}
}
五、飞书机器人接入
很多同学卡在'机器人已上线但不回复',请务必检查飞书后台:
- 启用机器人:在'应用功能'中确认开启。
- 事件订阅:必须添加 接收消息 (im.message.receive_v1) 事件。
- 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 模型。


