ARTICLE DETAIL

资讯详情

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

使用OpenClaw+Ollama+飞书部署智能机器人:TaoToken统一Key接入与本地模型联调指南

使用OpenClaw+Ollama+飞书部署智能机器人:TaoToken统一Key接入与本地模型联调指南 1. 为什么本地 Ollama 加飞书机器人最后卡在鉴权上OpenClaw 是一个把聊天渠道和模型后端串起来的开源网关Ollama 负责在本地或云端跑模型飞书机器人负责把消息送进群聊。三者单独看都不难难的是把它们接成一条完整链路飞书回调要验签OpenClaw 要拿模型 KeyOllama 又要暴露一个兼容接口。很多人第一次部署时飞书那边显示“应用已发布”OpenClaw 这边也显示 gateway 启动成功但在群里 机器人 却没有任何回复翻日志只看到 401 或者 connection refused。我这次要解决的就是这个“多服务鉴权分散”的问题。核心思路是把模型调用统一收敛到一个兼容 OpenAI 协议的入口OpenClaw 只认一个 Base URL 和一个 KeyOllama 本地模型和云端模型都通过这个入口转发。这样飞书机器人、OpenClaw、模型服务三者的凭证就不会互相打架。下面按“先跑通模型、再配 OpenClaw、最后接飞书”的顺序把每一步的配置和验证动作写清楚你照着做基本能一次跑通。适合谁看手里有一台能跑 Ollama 的机器Windows 或 Linux 都行想在飞书群里放一个能问答的机器人又不想在多个服务之间来回换 Key 的人。全文不涉及任何网络加速工具所有地址都是本地或公开 API 入口。2. TaoToken 统一 Key 与 OpenClaw 前置配置2.1 为什么要在 OpenClaw 前面加一层统一入口OpenClaw 的模型配置里provider 通常要求填 Base URL、API Key、Model ID 三件套。如果你直接用 Ollama 的本地地址飞书机器人一旦部署到别的机器或者你想同时用本地模型和云端模型就要改多处配置。更麻烦的是Ollama 默认不带鉴权OpenClaw 的某些 provider 又强制要求 Key填了假 Key 会在请求头里带出奇怪的 Authorization导致 401。TaoToken 在这里的角色是一个兼容 OpenAI 协议的统一入口。你只需要在 OpenClaw 里填一次 Base URL 和 Key模型侧无论是本地 Ollama 还是云端模型都通过这个入口转发。这样飞书机器人、OpenClaw、模型服务三者的凭证就收敛成一份排查问题时也只需要看一个地方。2.2 获取统一 Key 与确认 Base URL先到 TaoToken 控制台创建一个 API Key。地址是 https://taotoken.net/api-keys 登录后点“创建 Key”复制出来先存到本地文本里后面配置 auth.json 要用。注意这个 Key 只显示一次关掉页面就看不到了。Base URL 用 https://taotoken.net/api 不要带末尾斜杠。这个地址兼容 OpenAI 的 /v1/chat/completions 路径OpenClaw 的 openai-compatible provider 可以直接填。模型对话入口可以用来单独验证 Key 是否有效 https://taotoken.net/models 。在里面选一个模型发一句“你好”如果有回复说明 Key 和通道都正常。这一步建议先做避免后面 OpenClaw 报错时分不清是 Key 问题还是配置问题。2.3 安装 OpenClaw 并确认版本OpenClaw 需要 Node 环境先确认 node -v 能输出版本号。然后执行npm install -g openclawlatest openclaw --version如果版本号正常显示说明安装成功。Windows 用户如果遇到原生环境报错可以按提示用 WSL2但本文的配置在原生 Windows 上也能跑只是路径要换成反斜杠。安装完成后OpenClaw 的配置目录默认在用户目录下的 .openclaw 文件夹。Windows 是 C:\Users\你的用户名.openclaw Linux 是 ~/.openclaw 。后面 auth.json 和 settings 都放在这个目录里。2.4 准备 Ollama 本地模型Ollama 装好后先拉一个模型比如ollama pull qwen2.5:7b ollama list确认模型在列表里。Ollama 默认监听 127.0.0.1:11434OpenClaw 如果直接连本地 Ollamaprovider 选 ollama 即可。但为了统一鉴权我们让 OpenClaw 走 TaoToken 的 OpenAI 兼容入口模型侧仍然可以指向本地 Ollama 的转发地址。这样飞书机器人收到的消息先到 OpenClaw再到统一入口最后落到本地模型。3. 可复制配置auth.json 与 OpenClaw settings3.1 auth.json 三件套写法在 .openclaw 目录下新建或编辑 auth.json写入以下内容。注意把 sk-你的Key 替换成你在控制台创建的那串{ providers: { taotoken: { baseUrl: https://taotoken.net/api, apiKey: sk-你的Key, model: qwen2.5:7b } } }这里 Base URL、Key、Model ID 三件套必须齐全。Model ID 写你在 Ollama 里拉下来的模型名如果走云端模型就写对应的模型标识。OpenClaw 读取 auth.json 后会在请求头里带上 Authorization: Bearer sk-你的Key统一入口再根据模型名转发。3.2 settings 里的 provider 与 channel 配置OpenClaw 的 settings 可以用 openclaw config 进入交互式配置也可以直接改配置文件。关键字段如下[providers.taotoken] type openai-compatible base_url https://taotoken.net/api api_key_env TAOTOKEN_API_KEY default_model qwen2.5:7b [channels.feishu] enabled true app_id cli_你的AppID app_secret 你的AppSecret connection_mode websocketapi_key_env 指向环境变量你也可以直接在 auth.json 里写明文 Key。两种方式选一种不要同时写否则会出现 Key 覆盖导致 401。3.3 飞书应用凭证的填写位置飞书开放平台创建自建应用后在“凭证与基础信息”页面能看到 App ID 和 App Secret。把这两个值填到 settings 的 channels.feishu 段。连接模式选 websocket这样不需要公网回调地址本地机器也能收消息。如果你选 webhook 模式就需要一个公网可达的地址配置复杂度会上升。权限方面在飞书后台“权限管理”里批量导入以下 JSON{ scopes: { tenant: [ im:message, im:message.group_at_msg:readonly, im:message.p2p_msg:readonly, im:message:send_as_bot, im:resource ], user: [] } }事件订阅里添加 im.message.receive_v1订阅方式选长连接WebSocket。这样飞书的消息会通过长连接推给 OpenClaw不需要你暴露公网端口。4. 验证请求从 Ollama 响应到飞书回调连通4.1 先用 curl 验证统一入口在配置 OpenClaw 之前先用 curl 确认统一入口能正常返回。命令如下curl -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的Key \ -H Content-Type: application/json \ -d {model:qwen2.5:7b,messages:[{role:user,content:你好}]}如果返回 JSON 里有 choices 字段说明 Key 和通道都正常。如果返回 401检查 Key 是否复制完整如果返回 model not found检查模型名是否和 Ollama 里的一致。4.2 启动 OpenClaw gateway 并看日志配置写好后执行openclaw gateway --force--force 会强制重启 gateway避免旧进程占用端口。启动后日志里会显示 provider 加载情况和 channel 连接状态。看到 feishu channel connected 和 provider taotoken ready 就说明 OpenClaw 侧正常。然后在浏览器打开 http://127.0.0.1:18789 用日志里带 token 的地址登录网页版管理页。在聊天框输入“你好”如果有回复说明 OpenClaw 到模型的链路通了。这一步是飞书接入前最重要的验证不要跳过。4.3 飞书群内 机器人 测试在飞书里建一个测试群把机器人拉进群。在群里 机器人 发“你好”观察 OpenClaw 日志。正常情况会看到收到 im.message.receive_v1 事件然后调用 provider最后 send_as_bot 回复。如果群里没反应先看日志有没有收到事件如果收到事件但没回复看 provider 调用是否报错。飞书回调连通性验证的关键是事件订阅方式。长连接模式下OpenClaw 启动时会和飞书建立 WebSocket日志里会有 feishu ws connected。如果一直显示 connecting检查 App ID 和 App Secret 是否正确以及应用是否已发布版本。5. 本篇常见错排查401、local proxy failed、reading choices5.1 401 Unauthorized最常见的原因是 Key 没填对或者 auth.json 和 settings 里的 Key 冲突。检查顺序先看 auth.json 里的 apiKey 是否和控制台一致再看 settings 里是否又写了 api_key_env 指向一个空的环境变量。两者只能留一个。另外Base URL 末尾不要带斜杠带斜杠会导致路径拼接成 //v1/chat/completions部分网关会拒绝。5.2 local proxy failed这个报错通常出现在 OpenClaw 尝试连接本地 Ollama 时。如果你走的是统一入口provider 类型应该是 openai-compatible而不是 ollama。如果 provider 类型写错OpenClaw 会按 Ollama 原生协议去连 11434 端口而你的模型其实在统一入口后面就会报 local proxy failed。改 provider 类型为 openai-compatibleBase URL 填 https://taotoken.net/api 即可。5.3 reading choices 报错日志里出现 reading choices 说明请求发出去了但返回体里没有 choices 字段。常见原因是模型名写错统一入口找不到对应模型返回了一个错误对象。检查 auth.json 里的 model 字段确保和 Ollama list 里的名称完全一致。另外如果返回体是 HTML 而不是 JSON说明 Base URL 填成了网页地址要改成 API 地址。5.4 飞书事件收不到如果 OpenClaw 日志里没有 im.message.receive_v1先检查飞书后台事件订阅是否选了长连接以及应用版本是否已发布。未发布的应用事件不会推送到长连接。另外群聊策略如果选了 Allowlist只有白名单群能触发测试群要加进去。选 Open 则所有群都能响应调试阶段建议先用 Open。6. 长期编码与 Agent 场景的 CTA如果你只是想让飞书机器人能问答上面的配置已经够用。但如果你打算把 OpenClaw 当成长期编码助手或者 Agent 入口比如让机器人在群里帮忙查代码、跑脚本、做多轮任务那就需要考虑模型调用的稳定性和额度。TaoToken 的 Coding Plan 适合这种长期编码场景入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面有针对 Agent 场景的调用说明。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面有 auth.json 的完整字段说明和不同 provider 的配置示例。如果你在配置过程中遇到 401 或者 reading choices先对照文档检查 Base URL 和 Key 的写法大部分问题都能定位到具体字段。最后提醒一点OpenClaw 的 gateway 默认只监听本地飞书长连接不需要公网地址所以不要把 gateway 暴露到公网。如果你需要多台机器共用建议在每台机器上单独配 auth.json而不是共享一个 Key 文件。
返回列表