1. 先搞清楚“养龙虾”到底在养什么
OpenClaw 是一个开源的 AI 智能体框架,社区里因为它的图标像一只红色龙虾,就把部署过程戏称为“养龙虾”。它和普通聊天机器人的区别在于:普通模型只给建议,OpenClaw 能自己动手——读写本地文件、接管浏览器、执行终端命令、调用邮箱,还能通过 Skills 技能包去控制硬件。你可以在飞书里发一句“帮我把这份周报整理成表格并发到团队群”,它会拆解任务、调用模型、执行操作,全程不用你碰键盘。
这套东西适合谁?一是想给自己配个 7×24 小时“数字员工”的独立开发者;二是需要把 AI 接进飞书、钉钉这类办公 IM 的小团队;三是想研究 Agent 框架、自己写 Skills 的技术爱好者。它基于 Node.js 开发,对硬件要求不算高,2 核 4G 的云服务器就能跑起来。但真正让“龙虾”活起来的,是背后的大模型通道——模型选不对、Key 配不好,它就是个只会转圈的空壳。这篇就按“环境准备 → 部署 → 接飞书 → 装 Skills → 自定义技能 → 排错”的顺序,把每一步的命令和配置都摊开讲,你跟着敲就能跑通。
2. 部署前把 TaoToken 通道配好
OpenClaw 本身没有“脑子”,它的推理能力全部来自外部大模型。你可以直接填某一家厂商的 Key,但一旦想换模型、加备用通道,就得改一堆配置。更省事的做法是用 TaoToken 做统一入口:它兼容 OpenAI 风格的 API 格式,一个 Key 就能切换不同模型,OpenClaw 这边只需要认一个base_url和一个api_key,后面换模型不用动框架代码。
TaoToken 的 API 地址是https://taotoken.net/api,注意这个地址不带任何查询参数,直接作为base_url填进配置即可。你需要先去控制台创建一个 API Key,创建入口在https://taotoken.net/console/api-keys,登录后点“新建密钥”,复制那串sk-开头的字符串,后面配置里要用。如果你还没决定用哪个模型,可以先到模型对话页面试一下手感,地址是https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=model_chat,在里面发几条消息,确认响应速度和输出风格符合预期,再把它写进 OpenClaw。
注意:API Key 等同于账户凭证,不要直接提交到 Git 仓库,也不要在截图里露出完整字符串。建议用环境变量注入,或者放在只有自己能读的配置文件里。
对于长期跑编码任务或 Agent 工作流的场景,可以关注 Coding Plan 套餐,它把按 token 计费改成按次收费,成本更可控,入口在https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=coding_plan。接入细节和参数说明可以查文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=doc。
3. 可复制的 config.toml 与 settings.json 骨架
OpenClaw 的配置分两层:config.toml管网关、渠道、模型通道;settings.json管运行时行为和技能加载。下面这份骨架你可以直接抄,把占位符替换成自己的值。
先看config.toml,重点是[models.providers.taotoken]这一段:
# ~/.openclaw/config.toml [gateway] host = "0.0.0.0" port = 18789 token = "换成你自己的网关访问令牌" [models] default = "taotoken/gpt-4o-mini" [models.providers.taotoken] type = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "sk-你的TaoToken密钥" models = ["gpt-4o-mini", "claude-3-5-sonnet", "deepseek-chat"] [channels.feishu] enabled = true appId = "cli_你的飞书AppID" appSecret = "你的飞书AppSecret" connectionMode = "websocket" dmPolicy = "pairing" [skills] workspace = "~/.openclaw/workspace/skills" autoLoad = true再看settings.json,它控制技能白名单和日志级别:
{ "runtime": { "logLevel": "info", "maxConcurrentTasks": 3, "taskTimeoutSeconds": 120 }, "skills": { "enabled": ["tavily-search", "agent-browser", "summarize", "file-manager"], "disabled": [] }, "security": { "allowedPaths": ["~/.openclaw/workspace", "~/Documents/openclaw-sandbox"], "requireApprovalForShell": true } }allowedPaths这一项别偷懒,它决定了“龙虾”能碰哪些目录。我试过把整个家目录放开,结果它整理文件时差点把配置文件也挪走,后来收紧到工作区就稳了。requireApprovalForShell设为true后,每次执行终端命令前会在 IM 里弹确认,避免它自作主张跑危险命令。
4. 从 Node.js 到网关启动的完整命令
环境准备第一步是 Node.js,版本要求 22.x 或更高。Windows 上用 winget 装:
winget install OpenJS.NodeJS --version 22.0.0 node -v npm -vLinux(Ubuntu 22.04)用 NodeSource 源:
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt-get install -y nodejs node -v国内下载 npm 包慢的话,切一下镜像源:
npm config set registry https://registry.npmmirror.com然后全局安装 OpenClaw 并初始化:
npm install -g openclaw openclaw --version openclaw onboardonboard是交互式向导,会依次问风险确认、启动模式、模型通道、API Key、交互平台、技能安装。模型通道这一步选“OpenAI Compatible”,然后把base_url填成https://taotoken.net/api,Key 填你刚才复制的那个。交互平台先选Skip for now,飞书我们后面单独配。技能安装建议选 Yes,官方技能包会一起拉下来。
配置写完后启动网关:
openclaw gateway start看到Gateway started on http://127.0.0.1:18789就说明服务起来了。浏览器打开这个地址,首次访问要输入config.toml里那个gateway.token,进去就是 Dashboard。
5. 验证请求:确认模型通道真的通了
网关起来不代表模型通道就通了,得单独验一次。OpenClaw 提供了openclaw model test命令,它会用当前默认模型发一条测试消息:
openclaw model test --provider taotoken --prompt "用一句话说明你是什么模型"正常输出会类似:
[taotoken] request sent, waiting for response... [taotoken] response: 我是一个基于大语言模型的AI助手... [taotoken] latency: 842ms, tokens: 28如果卡在request sent不动,多半是base_url或api_key有问题。可以先用 curl 直接打 TaoToken 的接口,排除是 OpenClaw 配置问题还是通道问题:
curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的密钥" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"ping"}]}'返回里有choices字段就说明通道没问题,问题出在 OpenClaw 的配置解析上。这时候检查config.toml里base_url有没有多写/v1——TaoToken 的地址是https://taotoken.net/api,OpenClaw 会自动补/v1/chat/completions,你手动加了反而会变成/api/v1/v1/...导致 404。
模型通道通了之后,回到 Dashboard 发一条消息,确认“龙虾”能正常回复。这一步过了,再往下接飞书。
6. 接入飞书:从开放平台到配对成功
飞书这边要做三件事:建应用、配权限、开长连接。先在飞书开放平台创建企业自建应用,拿到App ID和App Secret,填进config.toml的[channels.feishu]段。然后到“事件与回调”里把订阅方式改成“长连接接收事件”,添加“接收消息”事件。权限至少开这三个:im:message、im:message.p2p_msg:readonly、im:message.group_at_msg:readonly。最后创建版本并发布。
配置改完后重启网关:
openclaw gateway restart openclaw channel status feishuchannel status会显示飞书渠道的连接状态,看到connected就说明长连接建好了。在飞书里搜索你创建的应用,发一条消息,机器人会返回一个配对码。回到终端执行:
openclaw pairing approve feishu <配对码>配对成功后,你就能在飞书里直接指挥“龙虾”了。dmPolicy = "pairing"这个设置很关键,它保证只有拿到配对码的人才能跟机器人对话,避免别人搜到应用就能用你的额度。
7. Skills 扩展与自定义技能
Skills 是 OpenClaw 的“手脚”。官方技能库用clawhub管理,先装工具:
npm install -g clawhub clawhub install tavily-search clawhub install agent-browser clawhub install summarize openclaw skill listskill list会列出已安装技能和状态。装完新技能记得openclaw gateway restart,不然不会加载。
自定义技能放在~/.openclaw/workspace/skills/下,每个技能一个目录,核心是SKILL.md。以控制 GPIO LED 为例,目录结构是:
gpio-led-control/ ├── SKILL.md └── scripts/ └── led_control.shSKILL.md的头部用 YAML 写元数据:
--- name: gpio-led-control description: 控制开发板上的GPIO LED灯,支持亮灭和闪烁 user-invocable: true --- # GPIO LED控制技能 ## 使用场景 - 用户说“打开LED”时点亮 - 用户说“让LED闪烁”时以1Hz频率闪烁 - 用户说“关闭LED”时熄灭 ## 执行命令 ```bash echo 1 | sudo tee /sys/class/leds/led0/brightness脚本 `led_control.sh` 负责实际动作: ```bash #!/bin/bash LED_PATH="/sys/class/leds/led0/brightness" case "$1" in on) echo 1 | sudo tee $LED_PATH ;; off) echo 0 | sudo tee $LED_PATH ;; blink) for i in {1..5}; do echo 1 | sudo tee $LED_PATH; sleep 0.5 echo 0 | sudo tee $LED_PATH; sleep 0.5 done ;; *) echo "用法: $0 {on|off|blink}"; exit 1 ;; esac把目录拷进技能工作区,重启网关,就能在飞书里说“帮我把LED打开”,它会自动匹配到这个技能并执行脚本。
8. 本篇常见错排查清单
报错ECONNREFUSED 127.0.0.1:18789:网关没起来,或者端口被占。先openclaw gateway status看状态,再lsof -i:18789查占用,换端口就改config.toml里的port。
模型请求返回 401:Key 错了或过期。去https://taotoken.net/console/api-keys重新生成一个,注意复制时别带空格。如果 Key 没问题,检查config.toml里api_key有没有被引号包住,TOML 里字符串必须带引号。
飞书机器人不回消息:先看openclaw channel status feishu是不是connected。如果是disconnected,检查appId/appSecret是否填反,以及飞书后台的“长连接”有没有开启。权限没开全也会导致消息收不到,把im:message系列权限补齐后重新发布版本。
技能装了但skill list里没有:技能目录名必须是小写字母加连字符,SKILL.md的 YAML 头部不能有语法错误。改完执行openclaw skill reload再skill list。
执行终端命令被拦截:settings.json里requireApprovalForShell为true时,命令会在 IM 里弹确认。如果你信任当前任务,可以在 Dashboard 里点批准,或者临时把这项改成false,但生产环境建议保持true。
日志在哪看:~/.openclaw/logs/gateway.log是主日志,openclaw gateway logs --follow可以实时跟踪。排错时先看这个文件,大部分配置错误都会在这里打出具体行号。
如果你在接入过程中遇到模型通道相关的报错,优先去 API Keys 页面核对密钥状态,再对照接入文档检查base_url和参数格式。需要长期跑编码或 Agent 任务的话,Coding Plan 的按次计费会比按 token 更省心。模型选型拿不准,就去模型对话里实测几轮,确认输出质量再写进配置。