拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenClaw 入门使用指南:用 TaoToken 统一 Key 打通 Node.js 与 Slack 配置

OpenClaw 入门使用指南:用 TaoToken 统一 Key 打通 Node.js 与 Slack 配置

1. 为什么要在 Node.js 环境里跑 OpenClaw

OpenClaw 是一个开源的 AI 助手框架,能让你把大模型能力接到 Slack、Discord、Telegram 这类聊天平台上,做成一个能查天气、跑命令、读文件、定时任务的机器人。它本身是 Node.js 写的,所以只要机器上有 Node.js v18 以上和 npm,就能跑起来。适合谁?适合已经会用 npm 装包、想让 AI 助手真正落到团队 Slack 频道里的开发者,而不是只想在网页里聊两句的人。

我这次的目标很具体:在一台开发机上,用 Node.js/npm 把 OpenClaw 装好,让它连上 Slack,并且所有模型请求都走同一个 Key 通道,而不是每个技能、每个模型各配一套密钥。这个统一 Key 的角色,我交给 TaoToken 来做——它提供一个兼容常见 API 格式的入口,OpenClaw 里所有需要调模型的地方,都指向同一个地址和同一个 Key,省得后面加技能时到处翻配置。

整篇会按「装环境 → 配 Key → 写 config.toml 和 settings.json → 启动 Gateway → Slack 回环验证 → 排错」的顺序走,命令和配置都能直接复制。你跟着做,最后应该能在 Slack 里 @ 一下机器人,它用你指定的模型回你一句话。

2. 前置准备:Node.js、npm 与 TaoToken 统一 Key

先把地基打好。OpenClaw 对 Node.js 版本有要求,低于 v18 会在启动 Gateway 时报奇怪的模块错误,所以第一步就是确认版本。

node -v npm -v

如果 node 低于 18,去 Node.js 官网下 LTS 版本重装,或者用 nvm 切版本。npm 一般跟着 node 一起装好,不用单独折腾。

接着装 OpenClaw。官方推荐全局安装,这样openclaw命令在任何目录都能用:

npm install -g openclaw openclaw --version

能打印出版本号,说明 CLI 就位。然后建配置目录,OpenClaw 默认读~/.openclaw:

mkdir -p ~/.openclaw mkdir -p ~/.openclaw/workspace

现在处理 Key。打开 TaoToken 官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,注册后在控制台里创建一个 API Key。这个 Key 就是后面 OpenClaw 调模型时用的统一凭证。API 通道地址是 https://taotoken.net/api ,注意这个地址不带任何查询参数,配置里直接写它。

提示:Key 只显示一次,创建后立刻复制到本地安全的地方。不要写进会提交到 Git 的文件里。

拿到 Key 后,先别急着写 OpenClaw 配置,用一条 curl 确认这个 Key 和通道是通的:

curl https://taotoken.net/api/v1/models \ -H "Authorization: Bearer 你的Key"

返回一个模型列表 JSON,就说明 Key 有效、通道可达。这一步能省掉后面「到底是 Key 错还是 OpenClaw 配置错」的扯皮。

3. 可复制配置:config.toml 与 settings.json 骨架

OpenClaw 的配置分两层:一层是主配置,决定用哪个模型、开哪些技能;一层是工作空间里的行为定义,决定助手说话的风格。下面给的是能直接用的骨架,你只需要把 Key 换成自己的。

先写主配置~/.openclaw/openclaw.json。注意 OpenClaw 同时支持 JSON 和 TOML 风格的配置,这里用 JSON 更直观:

{ "models": { "default": "claude-3-5-sonnet", "provider": { "baseUrl": "https://taotoken.net/api", "apiKey": "你的TaoToken Key", "api": "openai-compatible" } }, "gateway": { "port": 18789, "host": "127.0.0.1" }, "skills": { "weather": true, "slack": true, "healthcheck": true } }

几个关键点解释一下。baseUrl填 TaoToken 的 API 地址,apiKey填你刚创建的 Key,api字段声明走兼容格式,这样 OpenClaw 内部不管调哪个模型,都从这一个通道出去。default是你想默认用的模型名,按 TaoToken 控制台里实际可用的模型填。

如果你更习惯 TOML 写法,等价骨架是这样:

[models] default = "claude-3-5-sonnet" [models.provider] baseUrl = "https://taotoken.net/api" apiKey = "你的TaoToken Key" api = "openai-compatible" [gateway] port = 18789 host = "127.0.0.1" [skills] weather = true slack = true healthcheck = true

两种写法选一种即可,别同时存在,否则 OpenClaw 读取时可能以其中一个为准,导致你以为改了其实没生效。

再写 Slack 相关的settings.json。Slack 集成需要在 Slack 后台建一个 App,拿到 Bot Token 和 Signing Secret。这部分在~/.openclaw/skills/slack/settings.json:

{ "enabled": true, "botToken": "xoxb-你的SlackBotToken", "signingSecret": "你的SlackSigningSecret", "appToken": "xapp-你的SlackAppToken", "socketMode": true, "channels": { "allow": ["#ai-test"] } }

socketMode设为 true 时,OpenClaw 用 WebSocket 连 Slack,不需要公网地址,本地开发机就能收消息,这点对新手很友好。channels.allow限制机器人只在指定频道响应,避免它在全公司频道里乱说话。

最后定义助手人格,写~/.openclaw/workspace/SOUL.md:

# SOUL.md - Who You Are ## Core Truths Be genuinely helpful, not performatively helpful. Skip the "Great question!" and just help. Actions speak louder than filler words. ## Style - 中文回复,简洁直接 - 不确定的事情明确说不确定 - 涉及命令执行时先说明要做什么

这个文件决定助手回复的语气。你写什么风格,它就往什么风格靠。

4. 启动 Gateway 并验证 Slack 消息回环

配置写完,启动 Gateway:

openclaw gateway start openclaw gateway status

status显示 running,说明服务起来了。如果起不来,先看日志:

openclaw gateway logs

日志里最常见的两类信息:一类是端口 18789 被占用,一类是模型通道返回 401。前者改gateway.port,后者回去检查 Key。

Gateway 起来后,先做一次本地模型调用验证,确认 TaoToken 通道在 OpenClaw 内部也通:

openclaw exec "echo hello from openclaw" openclaw skills healthcheck

healthcheck会返回各技能和模型通道的状态。如果模型那一项是 ok,说明 OpenClaw 已经能用你配的 Key 调模型了。

接下来验证 Slack 回环。在 Slack 里把机器人拉进#ai-test频道,然后 @ 它发一句话:

@你的机器人 用一句话介绍你自己

正常的话,几秒内机器人会在频道里回复。这条回复的链路是:Slack 消息 → OpenClaw Gateway(socket mode 接收)→ 模型通道(TaoToken)→ 模型返回 → Gateway 发回 Slack。整条链路走通,说明 Node.js 环境、OpenClaw、TaoToken Key、Slack 配置四者都对上了。

如果你想在本地先看消息处理过程,可以开一个终端盯日志:

openclaw gateway logs -f

然后在 Slack 发消息,日志里会打印收到的事件和模型请求。这一步能帮你确认消息到底卡在哪一环。

5. 本篇常见错排查

Gateway 起不来,报端口占用。先查谁占了 18789:

lsof -i :18789

如果是上次没退干净的 OpenClaw 进程,kill 掉再启。或者直接把gateway.port改成 18790 之类。

Slack 里 @ 了没反应。按顺序查三件事:机器人是否被拉进频道;settings.json里channels.allow是否包含该频道;Slack App 是否开启了 Socket Mode 并授予了chat:write、app_mentions:read权限。三者缺一,消息都进不来。

模型调用返回 401 或 403。九成是 Key 问题。先用第 2 节那条 curl 单独测 Key,确认 Key 本身有效。如果 curl 通、OpenClaw 不通,检查openclaw.json里apiKey有没有多余空格或引号嵌套错误。

改了配置不生效。OpenClaw 启动时读一次配置,改完要重启 Gateway:

openclaw gateway stop openclaw gateway start

回复风格不对。检查SOUL.md是否在~/.openclaw/workspace/下,文件名大小写是否一致。有些系统对大小写敏感,soul.md和SOUL.md是两回事。

npm 全局装完找不到命令。多半是 npm 全局 bin 目录不在 PATH 里。用npm config get prefix看路径,把它下面的 bin 加进 PATH。

6. 把 Key 和通道固定下来,后面加技能就不折腾

走到这里,你手上应该有一个能在 Slack 里回话的 OpenClaw 机器人,而且它所有模型请求都从 TaoToken 这一个通道出去。这个结构的好处是:以后你想加天气技能、加定时任务、换默认模型,都只动openclaw.json里的default字段,Key 和 baseUrl 不用碰。

如果你后面要长期跑编码类或 Agent 类任务,可以了解下 Coding Plan 这类按周期计费的方案,适合高频调用场景;只是想验证模型对话效果,用模型对话页面直接试就行;接入和排障过程中要管理 Key,去 API Keys 页面;配置字段拿不准,翻接入文档最稳。这几个入口分别是:

  • 模型对话:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=model-chat
  • Coding Plan:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=coding-plan
  • API Keys:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=api-keys
  • 接入文档:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=doc

最后留一个我踩过的坑:Slack 的 Bot Token 和 App Token 是两回事,xoxb-开头的是 Bot Token,xapp-开头的是 App Token,socket mode 必须用 App Token。我第一次配的时候把两个搞混,日志里一直报连接失败,换过来就好了。配置这东西,字段名对不上就是不通,别怀疑人生,逐字对一遍。

返回列表