先说结论
我用 MacBook Air 13 M5 测试了一整天,结论:
- ✅ Gemma 4 E4B 本地运行: 流畅,响应 2-4 秒
- ✅ **完全免费: 不花一分钱
- ✅ **隐私安全: 对话不上传云端
- ✅ **微信对接: 扫码就能用
就这一个方案,别纠结了。
一、你需要什么
MacBook Air 13 英寸
芯片: Apple M5 (10+8核)
内存: 16GB(8GB 也能跑,但 16GB 更从容)
硬盘: 512GB
系统: macOS 15.0+
内存占用实测:
- Gemma 4 E4B 运行时占用约 10-12GB
- 16GB 内存刚好够用,8GB 会比较紧张
二、安装前置依赖
2.1 安装 Xcode Command Line Tools(⚠️ 必须第一步)
不做这一步,后面全都会报错! Homebrew、Node.js、Ollama 全依赖它。
安装方法:
打开终端(Command+空格 → 输入「终端」),粘贴:
xcode-select --install
会弹出一个对话框:
- 点击「安装」
- 同意许可协议
- 等待下载(约 1-2GB,10-20 分钟)
- 安装完成后会提示「软件已安装」
验证安装成功:
xcode-select -p
应该显示:
/Library/Developer/CommandLineTools
如果显示 command line tools are already installed: 说明已安装,跳到下一步。
如果提示需要更新: 点「安装」更新即可。
⚠️ 常见错误:
xcode-select: error: command line tools are already installed
这是说已经装了,不用管,继续下一步。
2.2 检查 Homebrew
brew --version
如果显示版本号: 已安装,跳到下一步。
如果提示 command not found: 用国内镜像安装:
# 使用中科大镜像源安装 Homebrew
/bin/bash -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
按提示选择镜像源(推荐选 1: 中科大),等待安装完成。
验证:
brew --version
2.3 安装 Node.js
node --version
如果显示 v18.x 或更高: 已安装,跳到下一步。
如果提示 command not found 或版本太老: 用 brew 安装 nvm:
# 用 brew 安装 nvm(推荐)
brew install nvm
安装后按提示配置:
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc
echo '[ "$(brew --prefix nvm 2>/dev/null)" ] && \. "$(brew --prefix nvm)/nvm.sh"' >> ~/.zshrc
source ~/.zshrc
设置国内镜像 + 安装 Node.js:
# 设置淘宝镜像
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node
# 安装 Node.js 22
nvm install 22
nvm use 22
验证:
node -v # 应该显示 v22.x.x
npm -v
配置 npm 淘宝镜像(加速下载):
npm config set registry https://registry.npmmirror.com
三、一条命令,5 分钟搞定
第一步: 安装 Ollama
brew install ollama
启动服务:
ollama serve
检查版本(Gemma 4 需要 0.20.0+):
ollama --version
如果版本低于 0.20.0:
brew upgrade ollama
第二步: 一键启动 OpenClaw
ollama launch openclaw
这条命令会自动:
- 安装 OpenClaw
- 让你选择模型 → 选
gemma4:e4b - 配置 Gateway 守护进程
- 安装网页搜索插件
- 启动后台服务
- 打开终端对话界面
真实耗时: 第一次约 3-5 分钟(下载模型和依赖),之后启动只要 5 秒。
第三步: 安装微信插件
npx -y @tencent-weixin/openclaw-weixin-cli@latest install
扫码登录:
npx -y @tencent-weixin/openclaw-weixin-cli@latest login
搞定。
四、配置文件(可选)
如果需要手动配置,编辑 ~/.openclaw/openclaw.json:
{
"models": {
"default": "ollama:gemma4:e4b",
"providers": {
"ollama": {
"baseUrl": "http://localhost:11434",
"timeout": 120000
}
}
},
"gateway": {
"port": 3000
}
}
微信通道通过插件管理,不需要在配置文件里写。
五、性能优化(2 个设置)
5.1 保持模型常驻
Ollama 默认 5 分钟不用就卸载模型。改成 30 分钟:
echo 'export OLLAMA_KEEP_ALIVE=30m' >> ~/.zshrc
source ~/.zshrc
5.2 扩大上下文窗口
OpenClaw 需要大上下文,设成 64k:
echo 'export OLLAMA_NUM_CTX=65536' >> ~/.zshrc
source ~/.zshrc
5.3 重启生效
openclaw gateway restart
六、常用命令
# 启动
ollama launch openclaw
# 停止
openclaw gateway stop
# 查看状态
openclaw status
# 重启
openclaw gateway restart
# 配置微信
openclaw configure --section channels
# 查日志
tail -f ~/.openclaw/logs/gateway.log
七、常见问题
| 问题 | 解决 |
|---|---|
xcode-select: error |
先运行 xcode-select --install
|
unsupported model version |
升级 Ollama 到 0.20.0+ |
| 微信没反应 | 运行 openclaw gateway start
|
| 响应慢 | 设置 OLLAMA_KEEP_ALIVE=30m
|
| 内存不够 | 关掉其他应用,或用 16GB 机型 |
brew: command not found |
用国内镜像安装(见上文) |
node: command not found |
用 nvm 安装(见上文) |
| npm 下载慢 | 配置淘宝镜像 npm config set registry https://registry.npmmirror.com
|
八、实际能干啥?
很多人担心 E4B 模型太弱,我测试了一天,这些场景完全 OK:
✅ 写代码
帮我写个 Python 脚本,批量重命名文件夹里的图片
直接给出可运行代码,带注释,复制粘贴就能用。
✅ 写邮件
帮我写一封请假邮件,理由是家里有事
30 秒出一封格式规范的邮件,稍微改改就能发。
✅ 总结文章
发一篇公众号文章链接,AI 自动读取并总结要点。
✅ 翻译
把这段话翻译成英文
翻译质量够日常使用,专业术语偶尔需要纠正。
✅ 头脑风暴
帮我构思 5 个产品名字,要好记、有科技感
给出多个选项,还会解释每个名字的含义。
⚠️ 不太行的场景:
- 复杂的代码架构设计(需要更强模型)
- 长篇技术文章写作(会啰嗦)
- 数学推导(容易出错)
总结: 日常辅助够用,复杂任务建议用云端模型。
总结
-
xcode-select --install→ 安装 Xcode 工具(必须先做) - 检查依赖: Homebrew、Node.js(没有就装,用国内镜像)
-
brew install ollama→ 启动ollama serve -
ollama launch openclaw→ 选gemma4:e4b -
npx -y @tencent-weixin/openclaw-weixin-cli@latest install→ 扫码连微信 - (可选) 配置 launchd 后台持续运行(见下文)
完事。免费,本地,微信随时聊。
九、保持服务运行
方式一: 用 launchd 自启动(推荐)
创建服务文件:
cat > ~/Library/LaunchAgents/com.openclaw.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.openclaw</string>
<key>ProgramArguments</key>
<array>
<string>/Users/你的用户名/.nvm/versions/node/v22.22.2/bin/openclaw</string>
<string>gateway</string>
<string>start</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/openclaw.log</string>
<key>StandardErrorPath</key>
<string>/tmp/openclaw-error.log</string>
</dict>
</plist>
EOF
⚠️ 记得把
你的用户名改成你的实际用户名,可以用whoami命令查看。
加载服务:
launchctl load ~/Library/LaunchAgents/com.openclaw.plist
验证:
launchctl list | grep openclaw
管理命令:
# 停止服务
launchctl unload ~/Library/LaunchAgents/com.openclaw.plist
# 重新加载
launchctl load ~/Library/LaunchAgents/com.openclaw.plist
# 查看日志
tail -f /tmp/openclaw.log
方式二: 用 nohup(简单)
nohup openclaw gateway start > /tmp/openclaw.log 2>&1 &
查看日志:
tail -f /tmp/openclaw.log
停止:
pkill -f "openclaw gateway"