1. 为什么要在 macOS 上折腾 OpenClaw 本地智能体
OpenClaw 是一个跑在你自己电脑上的 AI 智能体平台,它能听懂自然语言指令,然后直接帮你操作文件、控制浏览器、收发消息。所有数据都存在本地~/.openclaw/目录里,默认不上传云端,适合对隐私敏感、又想体验自动化办公的个人或小团队。macOS 因为自带 Unix 环境和 LaunchAgent 守护进程机制,跑这类本地服务天然顺手,10.15 以上系统都能装,推荐 12 以上。
但真正落地时,很多人卡在同一个地方:模型 Key 太分散。OpenClaw 本身支持 DeepSeek、GPT、Kimi 等多个模型,每个模型都要单独申请 Key、单独填 baseUrl、单独管额度。一旦你想切换模型或者加一个备用模型,就得翻好几个平台的控制台,改配置改到怀疑人生。更麻烦的是,有些模型接口地址不统一,写死在openclaw.json里之后,换环境就得重来一遍。
这篇就聚焦 macOS 实操,把 OpenClaw 的部署流程走通,同时用 TaoToken 的统一 Key 把多模型接入这件事收口。你会拿到可直接复制的config.toml和settings.json骨架、TaoToken 接入步骤,以及终端验证连通性的具体命令和预期输出。目标很明确:从装完到能调用模型,闭环跑通。
2. TaoToken 统一 Key 的前置准备
TaoToken 在这里扮演的角色是模型调用的统一入口。你不需要为每个模型单独维护一套 Key 和 baseUrl,而是通过一个统一 Key 来路由到不同模型。对 OpenClaw 这种需要频繁切换模型的场景来说,配置复杂度会明显下降。
先做两件事。第一,注册并登录 TaoToken 控制台,拿到你的 API Key。第二,确认你要用的模型在 TaoToken 的模型列表里,比如 DeepSeek Chat、DeepSeek Reasoner 这些。拿到 Key 之后,OpenClaw 的模型配置里 baseUrl 统一指向https://taotoken.net/api,apiKey 填你申请到的那一个。
这里有个细节要注意:OpenClaw 的模型配置节点在~/.openclaw/openclaw.json的models.providers下面。如果你之前已经配过 DeepSeek 官方地址,现在要改成 TaoToken 的地址,同时把 apiKey 换成 TaoToken 的 Key。改完之后不需要动 agents 里的模型引用,因为模型 id 还是deepseek/deepseek-chat,只是底层走的路由变了。
如果你还没有 Key,可以直接去控制台创建一个。创建时建议给 Key 起个能认出来的名字,比如openclaw-mac,方便后面排查问题时定位。
注意:TaoToken 的 API 地址是
https://taotoken.net/api,不要加多余的路径后缀。OpenClaw 会自动拼接/v1/chat/completions这类端点。
3. macOS 环境准备与 OpenClaw 安装
3.1 装 Node.js 和基础依赖
OpenClaw 需要 Node.js v22 以上。macOS 上最省事的方式是用 Homebrew:
brew install node@22装完之后验证一下:
node -v预期输出类似v22.22.0。如果版本不对,可能是系统里还有旧版 Node,用which node看一下路径,确保指向 Homebrew 装的那个。
如果 brew 安装过程中报权限错误,或者你不想动系统级 Node,改用 nvm 管理:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash然后重新打开终端,或者执行source ~/.zshrc(macOS 默认是 zsh)。接着装指定版本:
nvm install 22.22.0 nvm use 22.22.0 node -v输出v22.22.0就对了。
3.2 安装 OpenClaw 并初始化工作空间
全局安装:
npm install -g openclaw-cn验证:
openclaw --version能输出版本号就说明装好了。接着初始化工作空间:
openclaw workspace init这一步会在~/.openclaw/下生成核心文件。重点看这几个:
| 文件名 | 路径 | 作用 |
|---|---|---|
| openclaw.json | ~/.openclaw/ | 全局配置,模型、通道、权限都在这 |
| IDENTITY.md | ~/.openclaw/workspace/ | 定义 AI 助理身份 |
| SOUL.md | ~/.openclaw/workspace/ | 设定行为准则 |
| MEMORY.md | ~/.openclaw/workspace/ | 长期记忆存储 |
| TOOLS.md | ~/.openclaw/workspace/ | 可用工具列表 |
这些文件不用全部手改,但openclaw.json是必须动的。
4. 可复制的 config.toml 与 settings.json 配置骨架
OpenClaw 的配置分两块:一块是~/.openclaw/openclaw.json,管模型和通道;另一块是工作空间里的settings.json,管智能体行为和工具权限。下面给的是可直接复制的骨架,你只需要替换 Key 和 appId 这类占位符。
4.1 openclaw.json 模型配置(TaoToken 统一 Key)
打开~/.openclaw/openclaw.json,找到models节点,改成这样:
{ "models": { "providers": { "taotoken": { "baseUrl": "https://taotoken.net/api", "apiKey": "你的TaoToken-API-Key", "models": [ { "id": "deepseek-chat", "name": "DeepSeek Chat", "contextWindow": 16384 }, { "id": "deepseek-reasoner", "name": "DeepSeek Reasoner", "contextWindow": 32768 } ] } } }, "agents": { "defaults": { "model": { "primary": "taotoken/deepseek-chat", "fallback": "taotoken/deepseek-reasoner" } } } }关键点:baseUrl统一指向 TaoToken,apiKey只填一个。primary和fallback都走同一个 provider,切换模型时只改 id 就行,不用再动 Key。
4.2 settings.json 工作空间配置
在~/.openclaw/workspace/settings.json里,控制智能体的行为边界:
{ "agent": { "name": "Mac 办公助手", "language": "zh-CN", "maxTokens": 4096, "temperature": 0.7 }, "tools": { "file": { "enabled": true, "allowedPaths": ["~/Desktop", "~/Documents/OpenClaw"] }, "browser": { "enabled": true, "headless": false }, "shell": { "enabled": false } }, "memory": { "enabled": true, "maxEntries": 500 } }allowedPaths限制文件操作范围,避免智能体乱翻目录。shell默认关掉,需要时再开。
4.3 飞书通道配置(可选)
如果你要用飞书发指令,在openclaw.json里加channels节点:
{ "channels": { "feishu": { "accounts": { "default": { "appId": "你的飞书-appId", "appSecret": "你的飞书-appSecret", "enabled": true, "permissions": ["message:read", "message:send"] } } } } }飞书那边需要在开放平台创建企业自建应用,启用消息接收权限,并把事件订阅指向 OpenClaw 的网关地址。
5. 启动网关与验证模型调用
5.1 启动网关
配置改完后,启动 OpenClaw 网关:
openclaw gateway start检查状态:
openclaw gateway status预期输出会显示网关运行中,端口 18789 监听正常。如果状态是 stopped,先看日志:
openclaw gateway status --verbose5.2 验证 TaoToken 连通性
直接用 OpenClaw 的模型测试命令,指定 TaoToken 下的 DeepSeek Chat:
openclaw model test taotoken/deepseek-chat --prompt="用一句话说明当前目录下有哪些文件"如果配置正确,终端会返回模型生成的回答。第一次调用可能会慢几秒,因为要建立连接。如果报错,重点看错误信息里的状态码:401 是 Key 不对,404 是 baseUrl 或模型 id 写错,429 是额度或频率限制。
5.3 用 curl 直接验证 TaoToken 接口
想绕过 OpenClaw 单独确认 TaoToken 通不通,可以用 curl:
curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer 你的TaoToken-API-Key" \ -H "Content-Type: application/json" \ -d '{ "model": "deepseek-chat", "messages": [{"role": "user", "content": "回复 OK"}] }'预期返回 JSON 里choices[0].message.content包含OK。这一步能通,说明 Key 和网络都没问题,问题就缩小到 OpenClaw 配置层面了。
5.4 测试技能调用
装一个基础技能试试:
openclaw clawhub search apple-notes openclaw clawhub install apple-notes openclaw skill test apple-notes --prompt="创建名为 OpenClaw 测试的笔记"如果技能正常执行,说明工具层也通了。
6. 本篇常见错排查
6.1 网关启动失败,端口 18789 被占用
macOS 上常见原因是之前启动的网关没退干净。查占用:
lsof -i :18789找到 PID 后杀掉:
kill -9 [PID]然后重新openclaw gateway start。
6.2 模型调用返回 401
先确认openclaw.json里的 apiKey 是不是 TaoToken 的 Key,而不是 DeepSeek 官方的 Key。两者不通用。如果 Key 没错,检查有没有多余空格或换行。改完配置后必须重启网关:
openclaw gateway restart6.3 模型调用返回 404
大概率是 baseUrl 写错了。TaoToken 的地址是https://taotoken.net/api,不要写成https://taotoken.net/api/v1,OpenClaw 会自己拼/v1。另外确认模型 id 在 TaoToken 的模型列表里存在,比如deepseek-chat和deepseek-reasoner是分开的两个 id。
6.4 飞书消息发不出去
按顺序查三件事:飞书应用有没有开message:send权限;事件订阅的请求地址是不是指向网关的公网地址;网关有没有重启。改完飞书配置后执行:
openclaw channel test feishu看返回的具体错误码。
6.5 技能安装后无法执行
先看技能列表:
openclaw skill list确认技能状态是 installed。然后看技能文档:
openclaw skill docs apple-notes有些技能依赖外部工具,比如 Apple Notes 技能需要 macOS 的自动化权限。去系统设置里给终端开一下辅助功能权限。
7. 接入文档与后续操作入口
配置跑通之后,日常用起来就三件事:改模型、加技能、看日志。改模型只动openclaw.json里的primary字段,Key 不用换。加技能走openclaw clawhub install。看日志用openclaw gateway status --verbose,或者直接翻~/.openclaw/logs/下的文件。
如果你需要管理多个 Key 或者查看调用量,去 TaoToken 控制台的 API Keys 页面。接入文档里有各模型的参数说明和错误码对照,排障时比盲猜快很多。想先试试模型对话效果,可以直接在模型对话页面发一条消息,确认 Key 和模型都正常,再回到 OpenClaw 里配。
长期跑编码任务或者 Agent 工作流的话,Coding Plan 的额度模型更适合高频调用,不用每次担心按量计费的心跳感。先把这篇的闭环跑通,后面扩模型、加通道都是在这个骨架上叠东西。