1. 手机跑 OpenClaw 接入飞书,到底难在哪
先说结论:一部闲置安卓手机,装好 OpenClaw 中文整合包,再通过 ADB 无线调试和 cpolar 内网穿透,确实能做到「手机揣兜里当服务器,飞书发条消息 AI 就开始干活」。但这条路我走了三天,踩的坑比想象中多。
OpenClaw 是一个完全开源的 AI 智能体平台,它不只是聊天,还能直接操控设备——写代码、管文件、跑脚本。原本它只能在电脑端跑,后来有开发者用 Flutter + proot Ubuntu 的方案,让安卓手机无需 root 就能一键跑起 OpenClaw 网关。我基于这个思路做了中文整合版,UI 全部汉化,打好 APK 直接装上就能用。
那为什么还要折腾飞书和 ADB?因为手机端跑通只是第一步。你不可能一直盯着手机屏幕敲命令,真正好用的形态是:飞书当遥控器,手机当执行器。飞书发消息,OpenClaw 在手机上执行操作,结果再回传到飞书。这中间需要解决三个问题:手机上的 OpenClaw 怎么被飞书调用、手机怎么被远程控制、外网怎么访问家里的手机。
这篇教程面向想在移动端跑通 AI 助手的开发者,交付可复制的 ADB 调试命令、cpolar 内网穿透配置与飞书机器人回调设置,并给出消息收发验证动作。目标是一次性跑通手机端到飞书的闭环。
适合谁看:手里有闲置安卓机、想低成本跑一个随身 AI 智能体、愿意折腾 ADB 和飞书开放平台的开发者。如果你只是想体验聊天,直接用网页版就行;但如果你想让它真正「动手干活」,这套流程值得走一遍。
我试过用备用机部署,过程中遇到过网关启动失败、飞书长连接保存不了、ADB 配对码过期等问题,后面会逐个拆解。下面从环境准备开始,一步步来。
2. TaoToken 前置:给 OpenClaw 接一个稳定的大模型入口
OpenClaw 本身只是壳,真正干活的是背后的大模型。手机端部署完成后,第一件事就是配置模型提供商。你可以选 MiniMax、Qwen、硅基流动等平台,也可以用一个兼容 OpenAI 接口的中转服务。
这里我推荐用 TaoToken 作为模型接入层。它的好处是接口格式统一,Base URL 和 API Key 配置简单,适合在 OpenClaw 里做自定义提供商。官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 地址是 https://taotoken.net/api 。
在 OpenClaw 的终端配置向导里,选择 Custom Provider,然后填写:
- API Base URL:https://taotoken.net/api
- API Key:你在 TaoToken 控制台创建的密钥
- Model ID:按你实际使用的模型名称填写
如果你还没创建 Key,可以先去控制台生成:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite 。创建完成后复制密钥,回到 OpenClaw 终端粘贴即可。
为什么要在手机端用 TaoToken 而不是直连某个平台?因为手机端切换模型很麻烦,每次都要进终端改配置。TaoToken 的兼容接口让你可以在 OpenClaw 的「AI 提供商」页面里直接切换,不用反复敲命令。而且它的模型对话入口也方便你单独验证模型是否可用:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 。
配置完成后,OpenClaw 的网关日志里会显示模型加载成功。如果日志里出现reading choices之类的报错,通常是 Base URL 或 Model ID 填错了,回到配置页检查。
另外,如果你打算长期跑编码类任务,可以了解下 Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 。它适合需要频繁调用模型、做 Agent 开发的场景。手机端跑 OpenClaw 本身就是一种轻量 Agent 实践,配合稳定的模型入口,体验会好很多。
接入文档在这里:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,里面有完整的参数说明和示例。API Keys 管理页:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。
3. 可复制配置:ADB 无线调试 + cpolar 穿透 + 飞书回调
这一节是核心操作区,所有命令和配置都可以直接复制。建议按顺序来:先开 ADB 无线调试,再配 cpolar,最后设飞书回调。
3.1 ADB 无线调试配置
在手机设置里开启开发者选项,找到「无线调试」并启用。进入后记住三个信息:无线调试地址和端口、配对码、配对码的地址和端口。例如:
# 无线调试地址和端口 192.168.50.225:38687 # 配对码 08225 # 配对码的地址和端口 192.168.50.225:42515然后在 OpenClaw 的飞书对话里,让它帮你安装 ADB 工具。你可以直接发:
请你在当前运行的操作系统上安装一个 ADB 工具,我稍后要做无线调试功能。安装完成后,把配对信息发给它:
我的无线调试地址和端口是 192.168.50.225:38687, 配对码的地址和端口是 192.168.50.225:42515, 配对码是 08225。OpenClaw 会执行adb pair和adb connect命令。成功后,在手机的「已配对设备」里会看到新增的@localhost设备。
如果你在电脑上手动操作,命令格式如下:
adb pair 192.168.50.225:42515 08225 adb connect 192.168.50.225:38687 adb devices注意:配对窗口不能关闭,关闭后配对码和端口会变更。
3.2 cpolar 内网穿透配置
cpolar 可以把手机局域网的 SSH 端口映射到公网。先在手机 Ubuntu 环境里安装:
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | bash由于当前 Ubuntu 没有 systemd,需要配置伪自启动。执行:
cat << 'EOF' >> ~/.bashrc # --- Cpolar 自动化守护逻辑 --- if ! pgrep -x "cpolar" > /dev/null; then echo "正在初始化 Cpolar 环境..." nohup cpolar start-all -daemon=on -dashboard=on -config=/usr/local/etc/cpolar/cpolar.yml -log=/var/log/cpolar/access.log > /dev/null 2>&1 & echo "Cpolar 已在后台运行 (Web 面板端口:9200)" fi # --------------------------- EOF source ~/.bashrc然后在浏览器访问http://192.168.50.225:9200进入 cpolar Web UI。默认会有一个 ssh 隧道指向 22 端口,但我们的 SSH 服务端口是 8022,需要编辑隧道,把本地地址端口改为 8022。
保存后,在「在线隧道列表」里会看到一条公网地址,例如:
tcp://1.tcp.cpolar.top:11491用这个地址测试 SSH:
ssh root@1.tcp.cpolar.top -p 11491如果想固定 TCP 地址,去 cpolar 后台预留一个固定端口,然后在隧道编辑里选择「固定TCP端口」,填入预留地址即可。
3.3 飞书机器人回调配置
飞书开放平台创建企业自建应用,添加机器人能力,然后在权限管理里批量导入以下 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" ] } }导入后申请开通。然后在「凭证与基础信息」里复制 App ID 和 App Secret,回到 OpenClaw 的「接入消息平台」页面填入并保存。
重启网关后,在飞书开放平台的「事件与回调」里,把订阅方式改为「长连接」,添加「接收消息」事件,然后创建版本并发布。
如果长连接保存失败,说明 OpenClaw 网关未启动或渠道未添加。先确认网关日志里有Gateway is healthy。
3.4 工具集配置
OpenClaw 默认使用 coding 工具集,如果要让 AI 控制手机、发消息、操作浏览器,需要切换到 full:
openclaw config set tools.profile full然后重启网关。注意:full 工具集权限很大,建议只在受信任环境使用。
4. 验证请求:从飞书发消息到手机执行
配置完成后,验证分三步:飞书消息能否到达 OpenClaw、OpenClaw 能否调用模型、模型能否通过 ADB 控制手机。
第一步,在飞书里给机器人发一条消息。首次会收到授权提示:
OpenClaw: access not configured. Your Feishu user id: ou_xxxxxxxx Pairing code: PDTJ8KKR Ask the bot owner to approve with: openclaw pairing approve feishu PDTJ8KKR复制最后一行命令,在手机终端或 SSH 里执行:
openclaw pairing approve feishu PDTJ8KKR授权成功后,再发消息就能收到回复。
第二步,验证模型。在飞书里问:
你好呀,你是谁,你当前运行在什么操作系统上面,接入的是什么大模型?如果回复正常,说明模型接入成功。如果报错reading choices,检查 TaoToken 的 Base URL 和 Model ID。
第三步,验证 ADB 控制。在飞书里发:
帮我打开相机,延时 3 秒拍一张照片,然后把照片文件传给我在飞书上看一眼。OpenClaw 会通过 ADB 执行am start打开相机,然后screencap截图,再通过飞书发送文件。实测下来,第一次可能返回的是截图而不是真实照片,多调教几次就能修复。
再试一个:
帮我打开抖音,每隔 5 秒向上滑动一次屏幕,模拟刷短视频的操作,循环执行 3 次。它会用adb shell input swipe模拟滑动。如果遇到登录弹窗,可以继续发:
继续刷 2 次,屏幕上有一个登录弹出,你刚才没有给我叉掉,导致只刷了一次,我叉掉了弹窗。这样就能看到它成功执行滑动操作。
验证成功后,你可以在飞书里像指挥真人助手一样操控手机。出门在外,只要有网络,就能远程让手机干活。
5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth
这一节整理我在部署过程中真实遇到的报错和解决方法。
401 Unauthorized
通常出现在模型调用阶段。原因:API Key 填错、Key 被删除、Base URL 不匹配。检查 TaoToken 控制台里的 Key 是否有效,Base URL 是否为https://taotoken.net/api。如果用的是自定义提供商,确认 Model ID 和平台要求一致。
local proxy failed
出现在 OpenClaw 网关启动时。原因:手机网络不稳定、cpolar 隧道未启动、端口被占用。先检查 cpolar 是否在后台运行:
pgrep -x cpolar如果没有输出,执行source ~/.bashrc重新启动。再检查网关日志里是否有Gateway is healthy。
reading choices
模型返回格式解析失败。常见于 Base URL 填成了网页地址而不是 API 地址,或者 Model ID 不存在。回到 OpenClaw 的「AI 提供商」页面,确认 Base URL 以/v1结尾(如果平台要求),Model ID 拼写正确。
OAuth 相关报错
飞书长连接保存失败时可能出现。原因:OpenClaw 网关未启动、飞书应用未发布、事件订阅方式不是长连接。解决顺序:先确认网关运行中,再确认飞书应用已创建版本并发布,最后在「事件与回调」里把订阅方式改为长连接并保存。
ADB 配对失败
配对码过期或端口变更。无线调试的配对码和端口在关闭配对窗口后会变化,必须重新获取。另外,手机和 OpenClaw 必须在同一局域网。
飞书机器人不回复
检查三件事:机器人是否已发布、权限是否开通、OpenClaw 里 App ID 和 App Secret 是否填写正确。如果日志里出现access not configured,说明还没执行 pairing approve 命令。
cpolar 隧道 24 小时变一次
免费版随机 TCP 地址会定期更换。如果需要固定地址,去 cpolar 后台预留固定 TCP 端口,然后在隧道编辑里选择「固定TCP端口」。
6. 语义一致 CTA:把手机端 OpenClaw 跑成长期可用的 Agent
走到这里,你已经完成了手机端 OpenClaw 的部署、模型接入、飞书打通、ADB 无线调试和 cpolar 内网穿透。这套组合的价值在于:它把一部闲置安卓手机变成了低功耗、随身携带的 AI 智能体服务器。
如果你在排障或接入过程中遇到问题,优先看接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。API Keys 管理在:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。想单独验证模型是否可用,去模型对话页:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 。
如果你打算长期跑编码类或 Agent 类任务,Coding Plan 更适合:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 。它提供更稳定的调用额度和适合开发场景的配置。
最后说一个实用技巧:手机端 OpenClaw 的 Web UI 目前没有完全适配移动端,但你可以通过 SSH 在电脑上管理。先在手机里安装 OpenSSH:
# 在 OpenClaw 首页找到「可选组件」,点击 OpenSSH 安装 # 安装完成后,在「SSH访问」里设置密码并启动服务 ssh root@192.168.50.225 -p 8022这样你就能用电脑的大屏幕和键盘舒服地调试手机里的 Ubuntu 环境。再配合 cpolar 的公网隧道,无论身在何处都能连回去。
整套流程跑通后,这台旧手机就不再是吃灰设备,而是一个随时待命的 AI 执行节点。飞书发消息,它干活;ADB 连上,它控制手机;cpolar 穿透,它打破局域网限制。剩下的玩法,就看你自己的想象力了。