1. 为什么要在 Mac mini 上折腾 OpenClaw 加飞书这套组合
先说结论:Mac mini 跑 OpenClaw,再通过飞书机器人远程调用,是目前我试过的「家庭 AI 服务器」方案里性价比最高的一种。OpenClaw 是一个完全开源、本地部署的 AI 智能体平台,它和网页版对话工具最大的区别在于——它能直接操作你的 macOS 系统,读写文件、执行脚本、控制浏览器、生成文档,相当于给你的电脑装了一个能动手的 AI 管家。而 Mac mini 功耗低、性能够、可以 7×24 小时挂着不关机,天生就是跑这类常驻服务的料。
但光部署上去还不够。你总不能每次想用 AI 都跑到 Mac mini 面前打开浏览器。所以我们需要把它接入飞书——这样你在手机上发一条消息,家里的 Mac mini 就会立刻帮你处理任务。再配合 cpolar 内网穿透,OpenClaw 生成的网页、搭建的本地服务还能一键暴露到公网,朋友点开链接就能直接体验。
这套流程涉及几个关键环节:Node.js 环境准备、OpenClaw 安装与模型配置、飞书应用创建与事件订阅、cpolar 内网穿透。其中模型调用凭据的管理,我建议用 TaoToken 统一 Key 通道来处理,后面会详细讲怎么配。整篇教程按「能跟着做」的标准来写,每个命令、每段配置都会给全,遇到容易踩坑的地方我会单独标出来。
适合谁看:有一台 Mac mini(M 系列芯片都行)、想让 AI 帮自己干活的开发者或技术爱好者、想搭一个私人 AI 助手但不想把数据传到第三方平台的人。如果你之前没接触过 OpenClaw,也没关系,跟着步骤走就行。
2. TaoToken 统一 Key 前置准备与模型通道配置
在开始装 OpenClaw 之前,先把模型调用的凭据问题解决掉。OpenClaw 本身不提供模型,它需要你接入一个 AI 大模型的 API。你可以直接去各家平台注册拿 Key,但问题是:不同平台的 Key 格式不一样、额度分散、切换模型时要改配置。我实测下来,用 TaoToken 做统一 Key 管理会省事很多——一个 Key 就能调用多种模型,Base URL 统一,切换模型只需要改 Model ID。
TaoToken 的官网入口是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 地址是 https://taotoken.net/api 。注意 API 地址后面不加 UTM 参数,直接填这个就行。
具体操作步骤:先访问官网注册账号,然后进入控制台创建 API Key。控制台地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,API Keys 管理页面在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。创建好 Key 之后复制下来,后面配置 OpenClaw 时要用。
这里有个关键点:OpenClaw 的模型配置支持自定义 Provider,你需要填三个东西——Base URL、API Key、Model ID。用 TaoToken 的话,Base URL 填https://taotoken.net/api,API Key 填你刚创建的那串,Model ID 根据你想用的模型来填。比如你想用 Claude 系列,就填对应的模型标识;想用 GPT 系列,换一个 Model ID 就行,不用改 Base URL 和 Key。
如果你后面要长期跑编码类任务或者 Agent 工作流,可以考虑 Coding Plan,入口在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 。模型对话调试入口在 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite ,接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。Claude Code 相关配置参考 https://taotoken.net/claude-code-anthropic?utm_source=taotoken_aicg_blog_end&utm_content=claude-code-anthropic&utm_campaign=rewrite 。
为什么要提前做这一步?因为 OpenClaw 的配置向导里会让你选模型提供商,如果你选 Custom Provider,就需要当场填 Base URL 和 Key。提前把 TaoToken 的 Key 准备好,到时候直接粘贴就行,不用中途去注册。
另外提醒一点:TaoToken 是统一的 API 通道,不是让你绕过什么限制,它只是帮你把多个模型的调用凭据统一管理起来。你该有的账号注册、额度充值流程一样不少,只是省去了在多个平台之间来回切换的麻烦。
3. Mac mini 环境准备与 OpenClaw 可复制配置片段
这一章是整篇教程的核心操作部分,我会把每一步的命令和配置文件都写全。你可以在 Mac mini 上打开终端(Command + 空格,输入「终端」回车),跟着一步步执行。
3.1 Homebrew 与 Node.js 安装
先检查 Homebrew 是否已安装:
brew -v如果显示版本号就跳过安装。如果没有,执行官方安装脚本:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"安装完成后按照终端提示把 Homebrew 加入 PATH。M 系列芯片的 Mac mini 通常是:
echo 'eval "$(/opt/homebrew/bin/brew shellenv zsh)"' >> ~/.zprofile eval "$(/opt/homebrew/bin/brew shellenv zsh)"接着安装 Node.js 22:
brew install node@22安装完成后把 Node 22 加入系统路径:
echo 'export PATH="/opt/homebrew/opt/node@22/bin:$PATH"' >> ~/.zshrc source ~/.zshrc验证版本:
node -v npm -v git --versionNode.js 版本需要 22 及以上,Git 版本没有硬性要求,macOS 一般自带。
3.2 OpenClaw 安装与模型配置
执行官方一键安装命令:
curl -fsSL https://openclaw.ai/install.sh | bash安装完成后会进入配置向导。如果中途退出了,可以用openclaw onboard --install-daemon重新进入。
在模型提供商选择界面,选 Custom Provider,然后填写:
- API Base URL:
https://taotoken.net/api - API Key:粘贴你在 TaoToken 控制台创建的 Key
- Endpoint 类型:选 OpenAI-compatible
- Model ID:填你要用的模型标识,比如
Pro/MiniMaxAI/MiniMax-M2.5或 Claude 系列对应的 ID
验证成功后会提示 Verification successful。接着设置一个 Model alias(模型别名),随便填一个好记的就行。
如果你习惯用配置文件管理,OpenClaw 的配置通常落在~/.openclaw/目录下。一个典型的模型配置片段(JSON 格式)如下:
{ "models": { "default": { "provider": "custom", "baseUrl": "https://taotoken.net/api", "apiKey": "你的_TaoToken_Key", "modelId": "Pro/MiniMaxAI/MiniMax-M2.5", "endpointType": "openai-compatible" } } }如果你用的是 TOML 格式的配置(部分版本支持),对应写法:
[models.default] provider = "custom" baseUrl = "https://taotoken.net/api" apiKey = "你的_TaoToken_Key" modelId = "Pro/MiniMaxAI/MiniMax-M2.5" endpointType = "openai-compatible"注意:实际配置文件的路径和字段名可能因 OpenClaw 版本不同而有差异,建议以配置向导生成的为准。上面这段是给你一个结构参考,方便你理解三个核心要素——Base URL、Key、Model ID 是怎么组织的。
3.3 飞书插件安装
在配置向导的 Select channel 页面选择 Feishu/飞书,然后选 Download from npm。下载完成后会提示输入 App Secret,说明插件装好了。先别急着填,下一步我们去飞书开放平台创建应用拿凭据。
4. 飞书机器人创建与事件订阅验证请求
4.1 创建企业自建应用
访问飞书开放平台 https://open.feishu.cn/?lang=zh-CN ,登录后点击「开发者后台」,然后点「创建企业自建应用」。填写应用名称、描述、图标,点击创建。
进入应用详情页后,点击「添加应用能力」,找到「机器人」点添加。然后在「如何开始使用」部分点编辑,设置机器人名称。
4.2 批量导入权限
点击左侧菜单「权限管理」,点「批量导入」,粘贴以下 JSON:
{ "scopes": { "tenant": [ "aily:file:read", "aily:file:write", "application:application.app_message_stats.overview:readonly", "application:application:self_manage", "application:bot.menu:write", "cardkit:card:write", "contact:user.employee_id:readonly", "corehr:file:download", "docs:document.content:read", "event:ip_list", "im:chat", "im:chat.access_event.bot_p2p_chat:read", "im:chat.members:bot_access", "im:message", "im:message.group_at_msg:readonly", "im:message.group_msg", "im:message.p2p_msg:readonly", "im:message:readonly", "im:message:send_as_bot", "im:resource", "sheets:spreadsheet", "wiki:wiki:readonly" ], "user": [ "aily:file:read", "aily:file:write", "im:chat.access_event.bot_p2p_chat:read" ] } }粘贴后点「下一步,确认新增权限」,然后点「申请开通」和「确认」。
4.3 获取凭据并填入 OpenClaw
在左侧菜单「凭证与基础信息」页面,复制 App Secret 和 App ID。回到 Mac mini 终端,把 App Secret 粘贴进去回车,再把 App ID 粘贴进去回车。提示 client ready 就说明连接成功了。
接着依次选择 WebSocket (default)、Feishu - China、Allowlist。Group chat allowlist 直接回车跳过(不让机器人加群)。
4.4 完成剩余配置
Search provider 选 Skip for now,Configure skills now 选 NO,Enable hooks 按需勾选(我一般全选),然后等待网关安装完成。安装完成后选 Open The Web UI,浏览器会自动打开 OpenClaw 页面。你可以发一条测试消息:
你好,你是谁,你当前运行在什么操作系统上,接入的是什么模型,你能够干什么,请详细回答。
如果能看到正常回复,说明模型通道和 OpenClaw 本体都通了。
4.5 飞书事件订阅配置
回到飞书开放平台,在左侧「事件与回调」菜单里,把订阅方式改为「长连接」,然后保存。注意:如果 OpenClaw 网关没启动或者渠道没添加,长连接会保存失败。
保存后点右下角「添加事件」,搜索「接收消息」,勾选后确认。然后到「版本管理与发布」页面,点「创建版本」,填写版本号和更新说明,保存后点「确认发布」。
4.6 授权机器人
下载飞书客户端并登录,在「开发小助手」里找到你刚发布的机器人,点「打开应用」。随便发一条消息,会收到类似这样的回复:
OpenClaw: access not configured. Your Feishu user id: ou_xxxxxxxx Pairing code: XXXXXXXX Ask the bot owner to approve with: openclaw pairing approve feishu XXXXXXXX复制最后那行命令,回到 Mac mini 终端执行(把 XXXXXXXX 换成你的实际配对码):
openclaw pairing approve feishu XXXXXXXX出现成功提示后,再在飞书里发消息测试,机器人就能正常回复了。
5. 常见报错排查与 cpolar 内网穿透配置
这一章集中处理几个高频报错,以及 cpolar 的安装和穿透配置。
5.1 模型调用报 401 或 local proxy failed
如果你在 OpenClaw 里发消息后看到 401 错误,大概率是 API Key 填错了或者过期了。检查~/.openclaw/下的配置文件,确认apiKey字段和 TaoToken 控制台里的一致。如果是 local proxy failed,通常是 Base URL 写错了,确认填的是https://taotoken.net/api,不要多加斜杠或路径。
5.2 reading choices 报错
这个报错一般出现在模型返回格式不兼容的时候。检查 Endpoint 类型是否选了 OpenAI-compatible。如果你用的模型 ID 不对,也可能导致返回结构异常。建议先在 TaoToken 的模型对话页面测试一下该模型是否能正常返回,再回到 OpenClaw 里配置。
5.3 OAuth 相关报错
飞书侧如果出现 OAuth 报错,检查应用权限是否全部开通、版本是否已发布、事件订阅是否选了长连接。另外确认 OpenClaw 网关处于运行状态,否则长连接建立不起来。
5.4 cpolar 安装与穿透
cpolar 是一款内网穿透工具,能把本地服务映射到公网。在 Mac mini 上安装:
brew tap probezy/core && brew install cpolar sudo cpolar service install sudo cpolar service start cpolar version然后访问 http://127.0.0.1:9200 登录 cpolar Web UI。注册账号后,在「隧道管理」里创建一个 HTTP 隧道,本地地址填你的服务端口(比如 OpenClaw 生成的网页跑在 8080,就填 8080),地区选 China Top。
创建完成后,在「状态」→「在线隧道列表」里能看到公网地址。比如你的贪吃蛇小游戏跑在 8080,穿透后访问https://你的隧道地址/snake.html就能打开。
如果需要固定域名,去 cpolar 的预留页面保留一个二级子域名,然后在隧道编辑里把域名类型改为「二级子域名」,填入你保留的名称,更新即可。这样每 24 小时不会失效。
5.5 CC Switch / Cline MCP / Codex auth.json 三件套
如果你同时用 CC Switch 或 Cline 这类工具,配置逻辑是一样的:Base URL 填https://taotoken.net/api,Key 填 TaoToken 的 Key,Model ID 填你要用的模型。Codex 的 auth.json 里对应字段也是这三个。不管哪个工具,核心就是这三件套对齐。
6. 接入后的玩法与统一 Key 管理建议
配置跑通之后,你可以让 OpenClaw 帮你做很多事。比如在飞书里发一句「帮我截一张当前屏幕的图发给我」,它就能调用系统工具截图并通过飞书发回来。或者让它「写一个贪吃蛇小游戏,放在桌面并运行起来」,它会生成 HTML 文件、启动本地服务,你通过 cpolar 穿透后就能在手机上玩。
我试过让它做 PPT:说「帮我做一个关于元旦节的 PPT,10 页左右,做完截图给我看」,它会调用本地应用生成文件并截图反馈。如果 Mac mini 上没装办公软件,它还会问你要不要装一个。
这些玩法的前提是模型通道稳定。用 TaoToken 统一 Key 的好处在这里就体现出来了:不管你后面想换 Claude 还是换其他模型,只需要改 Model ID,Base URL 和 Key 都不用动。如果你要长期跑编码任务或 Agent 工作流,Coding Plan 会更划算;如果只是偶尔调试模型,用模型对话页面就够了。
接入文档里有更详细的参数说明和示例,遇到配置问题可以先查文档。API Keys 管理页面可以随时创建、删除、查看 Key 的使用情况,建议定期检查一下额度消耗。
整套流程走下来,你得到的是一个 7×24 小时在线、能操作你 Mac mini 全部文件、可以通过飞书随时随地调用的私人 AI 助手。cpolar 负责把本地服务暴露到公网,TaoToken 负责统一管理模型调用凭据,OpenClaw 负责执行具体任务,飞书负责让你随时随地下达指令。四个环节各司其职,配合起来就是一个完整的家庭 AI 服务器方案。