ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

OpenClaw本地使用完整教程:把settings改到TaoToken

2026/10/2 23:27:00 拓冰建站 浏览量
OpenClaw本地使用完整教程:把settings改到TaoToken 1. OpenClaw 本地部署后为什么要把模型网关切到 TaoTokenOpenClaw 是一个可以本地跑起来的 AI 网关与多通道机器人框架它能把你电脑上的 Ollama 本地模型、DeepSeek 云端模型以及飞书这类聊天通道统一编排到一条链路上。很多开发者第一次跑通 OpenClaw 时模型来源是混着的一部分请求走 Ollama 的http://localhost:11434一部分走 DeepSeek 的https://api.deepseek.com/v1飞书机器人回调进来之后到底用哪个模型全靠agents.defaults.model.primary那一行配置决定。问题就出在这里——本地 Ollama 的 7B 模型回答质量有限DeepSeek 官方 Key 又要单独充值、单独限流多个 Key 散落在不同配置文件里换机器就得重新配一遍。我试过把 OpenClaw 的模型出口统一收敛到一个兼容 OpenAI 协议的网关上这样 Ollama 继续负责本地兜底DeepSeek 负责高质量推理而飞书通道进来的消息只需要认一个 Base URL 和一个 Key。TaoToken 就是这样一个入口它提供 OpenAI 兼容的/v1/chat/completions接口你可以在 OpenClaw 的openclaw.json里把 provider 的baseUrl指过去模型 ID 保持deepseek-chat这类名字不变OpenClaw 的 agent 层几乎不用改逻辑。这篇教程面向已经跑通 Ollama 与 DeepSeek 本地推理、想把请求统一走 TaoToken 的开发者。我会给出settings也就是~/.openclaw/openclaw.json里 Base URL 与 Key 的可复制改法、飞书机器人回调联调步骤以及一次对话请求的验证动作与返回结果对照。核心检索词是 OpenClaw 本地使用教程、OpenClaw 配置 TaoToken、飞书机器人回调联调。适合谁手里有 Mac 或 Linux 开发机、装过 Node 18、能看懂 JSON 配置、想让本地 Agent 稳定跑起来的同学。先说清楚边界TaoToken 在这里扮演的是模型网关角色不是替代 OpenClaw 本身也不是替代 Ollama。Ollama 仍然跑在你本机负责离线兜底TaoToken 负责把云端模型的鉴权和路由统一掉。这样你飞书里 机器人时OpenClaw 网关收到事件按 agent 配置选模型请求发到 TaoToken 的 API 地址返回结果再经飞书通道发回群里。整条链路里你只需要维护一个 Key。2. TaoToken 前置准备拿 Key、认接口、对齐 OpenClaw 的 provider 结构在改openclaw.json之前先把 TaoToken 这边的三样东西准备好API Key、Base URL、以及你要用的 Model ID。OpenClaw 的 provider 配置是 OpenAI 兼容风格字段名是baseUrl、apiKey、api、models[]所以只要 TaoToken 的接口路径是/v1/chat/completions就能直接套进去。第一步打开 TaoToken 控制台创建 API Key。地址是 https://taotoken.net/api-keys 登录后点创建复制出来的 Key 一般以sk-开头。这个 Key 只显示一次建议先粘到临时文本里。注意不要把它提交到 Git后面我们会用chmod 600保护配置文件。第二步确认 Base URL。TaoToken 的 API 根地址是 https://taotoken.net/api OpenClaw 里填的时候要带上/v1也就是https://taotoken.net/api/v1。这一点和 DeepSeek 官方写法一致DeepSeek 是https://api.deepseek.com/v1所以迁移时只改域名部分路径不动。第三步确认 Model ID。TaoToken 的模型列表可以在模型对话页里看到地址是 https://taotoken.net/models 。常见的deepseek-chat、deepseek-reasoner都在里面。OpenClaw 的models[].id要和你实际调用的模型名一致否则网关会返回 model not found。如果你还没装 OpenClaw先补一下安装。Node 18 以上环境执行npm install -g openclaw openclaw --version初始化配置目录openclaw onboard它会生成~/.openclaw/openclaw.json。如果你之前已经配过 DeepSeek 和 Ollama这个文件里应该已经有models.providers.deepseek和models.providers.ollama两段。我们要做的是新增一个taotokenprovider或者直接把deepseek那段的baseUrl改掉。推荐新增保留原来的 DeepSeek 官方配置作为对照方便排障时切换。这里有个容易踩的坑OpenClaw 的api字段决定用哪种请求格式。TaoToken 是 OpenAI 兼容接口所以api填openai-completions。如果你填成ollamaOpenClaw 会按 Ollama 的/api/chat路径发请求打到 TaoToken 上就会 404。这个字段在后面的 JSON 片段里我会标出来。另外TaoToken 的接入文档在 https://taotoken.net/doc 里面有完整的请求示例和错误码说明。排障时对照文档比盲猜快得多。Key 管理页和文档页建议都收藏后面飞书联调出问题时你会反复用到。3. 可复制配置把 openclaw.json 的 provider 改到 TaoToken这一节是全文的核心操作。OpenClaw 的主配置文件在~/.openclaw/openclaw.json你可以用openclaw config set逐条改也可以直接编辑 JSON。逐条改适合脚本化直接编辑适合一次配好多个模型。我两种都给你挑一种。先备份这一步别省cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak3.1 用命令行逐条写入openclaw config set models.providers.taotoken.baseUrl https://taotoken.net/api/v1 openclaw config set models.providers.taotoken.apiKey sk-你的TaoToken密钥 openclaw config set models.providers.taotoken.api openai-completions openclaw config set models.providers.taotoken.models[0].id deepseek-chat openclaw config set models.providers.taotoken.models[0].name DeepSeek Chat via TaoToken openclaw config set models.providers.taotoken.models[1].id deepseek-reasoner openclaw config set models.providers.taotoken.models[1].name DeepSeek Reasoner via TaoToken openclaw config set agents.defaults.model.primary taotoken/deepseek-chat注意models[0]这种带方括号的路径要用单引号包住否则 shell 会把方括号当通配符展开写进去的配置就乱了。这是我在 zsh 下踩过的坑bash 下同样建议加引号。3.2 直接编辑 JSON 的完整片段打开~/.openclaw/openclaw.json在models.providers下加入taotoken段。下面这段可以直接复制把 Key 换成你自己的{ models: { providers: { taotoken: { baseUrl: https://taotoken.net/api/v1, apiKey: sk-你的TaoToken密钥, api: openai-completions, models: [ { id: deepseek-chat, name: DeepSeek Chat via TaoToken }, { id: deepseek-reasoner, name: DeepSeek Reasoner via TaoToken } ] }, ollama: { baseUrl: http://localhost:11434, api: ollama, models: [ { id: llama3.2, name: Llama 3.2 } ] } } }, agents: { defaults: { model: { primary: taotoken/deepseek-chat, fallback: ollama/llama3.2 } } } }这里primary指向 TaoToken 的deepseek-chatfallback指向本地 Ollama 的llama3.2。这样设计的好处是网络正常时走云端高质量模型TaoToken 不可达时 OpenClaw 会自动降级到本地 Ollama飞书机器人不会直接哑掉。fallback字段在 OpenClaw 的 agent 配置里是支持的写法和primary一样是provider/modelId。3.3 飞书通道的配置片段飞书部分同样在openclaw.json里channels.feishu段。如果你还没建飞书应用先去飞书开放平台创建企业自建应用拿到 App ID 和 App Secret。配置如下{ channels: { feishu: { enabled: true, connectionMode: websocket, accounts: { main: { appId: cli_你的AppID, appSecret: 你的AppSecret, botName: OpenClaw助手 } }, dmPolicy: pairing, groupPolicy: allowlist, groupAllowFrom: [oc_你的群ID], groups: { oc_你的群ID: { requireMention: true, enabled: true } } } } }connectionMode用websocket也就是飞书的长连接模式不需要公网 IP本地开发机直接能收事件。飞书后台的「事件订阅」页面要选「使用长连接接收事件」并添加im.message.receive_v1事件。权限方面至少开im:message、im:message:send_as_bot、im:chat。改完配置后验证 JSON 合法性openclaw config validate如果输出Config is valid就可以重启网关了。如果报错用openclaw doctor --fix尝试自动修复或者对照报错行号手动改。4. 验证请求一次对话的完整动作与返回结果对照配置写完不代表通了必须发一次真实请求看返回。验证分三层先验 TaoToken 接口本身再验 OpenClaw 网关最后验飞书通道。4.1 直接 curl 验 TaoToken这一步绕过 OpenClaw确认 Key 和 Base URL 没问题curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的TaoToken密钥 \ -H Content-Type: application/json \ -d { model: deepseek-chat, messages: [{role: user, content: 用一句话说明什么是网关}], stream: false }正常返回是一个 JSON结构里choices[0].message.content就是模型回答。如果返回401说明 Key 错了或没带Bearer前缀如果返回404多半是 Base URL 少了/v1如果返回model not found检查model字段拼写。4.2 重启网关并查看状态openclaw gateway restart openclaw gateway status openclaw statusopenclaw status会列出当前 agent 的 primary 模型。你应该看到taotoken/deepseek-chat。如果还显示旧的deepseek/deepseek-chat说明agents.defaults.model.primary没写对回去检查 JSON 层级。4.3 通过 OpenClaw 发一次对话OpenClaw 自带 Web 界面默认端口 18789。浏览器打开http://localhost:18789在对话框里发一句「你好报一下你当前使用的模型」。返回结果里如果模型标识是deepseek-chat且回答正常说明网关链路通了。你也可以用日志确认请求确实打到了 TaoTokenopenclaw logs --follow在另一个终端发消息日志里会出现类似providertaotoken modeldeepseek-chat的行。如果看到providerollama说明 fallback 被触发了回去检查 TaoToken 的连通性。4.4 飞书通道联调飞书这边先在群里 你的机器人发一条消息。第一次会触发配对流程因为dmPolicy设的是pairing。查看配对请求openclaw pairing list feishu拿到配对码后批准openclaw pairing approve feishu 配对码批准后再发一条消息机器人应该会回复。如果机器人不回复先看通道状态openclaw channels statusfeishu那行应该是connected。如果是disconnected检查 App ID、App Secret 是否填对以及飞书后台应用是否已发布版本。长连接模式下应用必须发布后事件才会推送到你的本地网关。一次成功的返回对照你在飞书发「帮我总结一下今天的待办」OpenClaw 网关收到im.message.receive_v1事件按 agent 配置选taotoken/deepseek-chat请求发到https://taotoken.net/api/v1/chat/completions返回内容经飞书im:message:send_as_bot权限发回群里。日志里能看到完整的事件 ID 和请求耗时。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth配置过程中最容易撞上的几类报错我按真实日志逐条对照。401 Unauthorized。日志里通常是providertaotoken status401。原因有三个Key 复制时带了空格、Key 已过期、请求头没带Bearer。OpenClaw 会自动加Bearer前缀所以重点查 Key 本身。用 4.1 的 curl 单独验一次能快速定位是 Key 问题还是 OpenClaw 配置问题。local proxy failed。这个报错说明 OpenClaw 尝试连baseUrl时连接被拒。常见于你把baseUrl写成了http://localhost:xxxx但本地没有对应服务或者写成了https://taotoken.net/api少了/v1导致路径不对。检查openclaw config get models.providers.taotoken.baseUrl的输出确保是https://taotoken.net/api/v1。reading choices 相关报错。日志里出现cannot read property choices of undefined或reading choices说明返回体不是预期的 OpenAI 格式。多半是api字段填错了比如填成了ollamaOpenClaw 按 Ollama 格式解析 TaoToken 的返回自然找不到choices。把api改回openai-completions即可。OAuth 相关报错。如果你在飞书通道看到OAuth字样通常是 App Secret 错误或应用未发布。飞书长连接需要应用有已发布版本草稿态不会推送事件。去飞书开放平台「版本管理与发布」里创建版本并发布。另外appId必须是cli_开头填成别的格式会直接鉴权失败。端口占用。openclaw gateway restart报address already in use说明 18789 被占。执行lsof -i :18789 kill -9 PID openclaw gateway start配置文件损坏。如果openclaw config validate报 JSON 解析错误直接用备份恢复cp ~/.openclaw/openclaw.json.bak ~/.openclaw/openclaw.json然后重新按第 3 节的片段改。改 JSON 时注意逗号models.providers下多个 provider 之间要有逗号最后一个不要有。权限问题。~/.openclaw/agents/main/agent/auth-profiles.json如果权限过宽OpenClaw 可能拒绝读取。执行chmod 600 ~/.openclaw/agents/main/agent/auth-profiles.json飞书机器人不回复但通道显示 connected。检查groups配置里的群 ID 是否和实际群一致requireMention为 true 时必须 机器人才触发。另外groupAllowFrom里的群 ID 要和groups的 key 完全一致差一个字符就不生效。排障时如果拿不准直接看 TaoToken 的接入文档 https://taotoken.net/doc 里面有标准错误码和请求示例。Key 相关问题去 https://taotoken.net/api-keys 重新生成一个再试比反复猜快。6. 长期跑 OpenClaw TaoToken 的稳定用法与 CTA配置跑通只是开始长期稳定运行还需要几件事。第一把网关装成系统服务避免终端一关就断openclaw gateway install openclaw gateway startmacOS 下会生成 LaunchAgentLinux 下生成 systemd unit。这样开机自启飞书事件不会因为终端关闭而丢失。第二日志用 tmux 常驻监控方便回溯tmux new -s openclaw-logs openclaw logs --follow第三定期备份配置。openclaw.json里现在有 TaoToken 的 Key 和飞书的 App Secret备份文件也要chmod 600。第四模型选择上日常对话用deepseek-chat就够复杂推理切deepseek-reasoner。切换方式是在飞书里发指令或者改agents.defaults.model.primary后openclaw gateway reload热加载不用重启。如果你打算把 OpenClaw 用在长期编码或 Agent 场景比如让飞书机器人帮你跑代码审查、定时总结仓库变更可以考虑 TaoToken 的 Coding Plan地址是 https://taotoken.net/coding-plan 。它适合请求量稳定、需要长期挂着的用法。只是想先验证模型效果去模型对话页 https://taotoken.net/models 直接试就行。接入过程中遇到鉴权或路径问题接入文档 https://taotoken.net/doc 里有完整的 Base URL 和请求头说明对照着改比翻日志快。最后提醒一句TaoToken 是模型网关OpenClaw 是编排框架Ollama 是本地推理引擎三者各司其职。把openclaw.json里的 provider 指向 TaoToken 之后你维护的 Key 从多个变成一个飞书通道、本地兜底、云端推理都在同一条链路上。改完记得openclaw config validate再openclaw gateway restart然后按第 4 节发一次真实对话确认返回。