尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

【大模型】openclaw 配 TaoToken 调用本地模型实验记录1:ollama + wsl + gateway 配置骨架

发布时间:2026/9/27 19:13:11

资讯中心
01
ARTICLE

【大模型】openclaw 配 TaoToken 调用本地模型实验记录1:ollama + wsl + gateway 配置骨架

【大模型】openclaw 配 TaoToken 调用本地模型实验记录1:ollama + wsl + gateway 配置骨架
1. 为什么要在 WSL 里折腾 openclaw ollama 这条链路openclaw 是一个把大模型能力封装成可编排 Agent 的开源工具它能通过 gateway 把本地模型、远程模型、工具调用统一到一个控制台里。ollama 则是目前最省事的本地模型运行方案一条命令就能把 qwen3、deepseek-r1 这类模型跑起来。把两者放在 WSL 里跑好处是 Linux 环境对 Node、Python、各类依赖的兼容性明显好于 Windows 原生同时又能复用 Windows 上已经装好的 ollama 模型文件不用重复下载几十 GB 的权重。这套组合适合谁适合想在自己机器上跑通「Agent 调用本地模型」最小闭环的开发者尤其是已经装了 WSL、装了 ollama但卡在「openclaw 发现不了本地模型」或者「gateway 起来了但 dashboard 打不开」这两个坑上的人。我自己在配这套东西的时候前前后后重启了七八次 WSL才把网络链路和 token 认证这两块理顺。这篇记录聚焦三件事一是给出可复制的 config.toml / settings.json 骨架二是说明 TaoToken 统一 Key 与 API 通道应该接在哪个位置三是把 gateway 启动后验证本地模型连通性的具体命令和预期返回写清楚。目标不是讲原理而是让你照着敲能跑通。需要先说明一点本地 ollama 模型和 TaoToken 的 API 通道并不冲突。本地模型负责离线、低延迟的日常对话TaoToken 负责在需要更强模型或者需要统一计费、统一 Key 管理时做补充。两者可以在同一个 openclaw 配置里共存后面配置章节会给出具体写法。2. 前置准备WSL、ollama、openclaw 与 TaoToken 的接入位置2.1 基础环境确认开始之前先在 WSL 里确认三样东西都在# 确认 WSL 版本建议 WSL2 wsl --version # 确认 ollama 在 Windows 侧已安装并运行 # 在 Windows PowerShell 中执行 ollama list # 确认 Node 版本openclaw 依赖 Node 18 node -v npm -v如果ollama list能列出 qwen3:8b、deepseek-r1:1.5b 这类模型说明 Windows 侧 ollama 已经就绪。接下来要解决的是 WSL 能不能访问到它。2.2 TaoToken 统一 Key 的接入位置TaoToken 在这里扮演的角色是「统一 API 通道 统一 Key 管理」。openclaw 的配置文件里通常有一个 provider 段落本地 ollama 是一个 providerTaoToken 是另一个 provider。TaoToken 的 API 地址是https://taotoken.net/apiKey 在控制台的 API Keys 页面生成。接入位置有两个第一个位置是 openclaw 的config.toml在[providers]段里新增一个 taotoken provider把 base_url 指向https://taotoken.net/apiapi_key 填你生成的 Key。第二个位置是环境变量。openclaw 支持从环境变量读取 provider 凭据你可以把TAOTOKEN_API_KEY写进~/.bashrc这样配置文件里就不用硬编码 Key。如果你还没生成 Key可以去 TaoToken 控制台的 API Keys 页面创建https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite2.3 目录结构约定为了避免后面路径混乱约定一下本文用到的路径~/.openclaw/ # openclaw 配置根目录 ~/.openclaw/config.toml # 主配置 ~/.openclaw/settings.json # 运行时设置 ~/.openclaw/logs/ # 日志目录如果你的 openclaw 安装后没有自动生成这些目录手动建一下mkdir -p ~/.openclaw/logs3. 可复制配置config.toml 与 settings.json 骨架3.1 config.toml 完整骨架下面这份配置同时包含本地 ollama provider 和 TaoToken provider你可以直接复制后改 Key# ~/.openclaw/config.toml [gateway] port 18789 host 127.0.0.1 [gateway.auth] # token 建议用 openclaw config get gateway.auth.token 生成后回填 token [agent] # 默认模型指向本地 ollama default_model ollama/qwen3:8b # 备用模型走 TaoToken 通道 fallback_model taotoken/claude-sonnet [providers.ollama] type ollama base_url http://localhost:11434 api_key ollama-local # 占位ollama 本身不校验 models [qwen3:8b, deepseek-r1:1.5b] [providers.taotoken] type openai-compatible base_url https://taotoken.net/api api_key ${TAOTOKEN_API_KEY} models [claude-sonnet, gpt-4o] [skills] enabled [] [channels] enabled []几个关键点解释一下。[providers.ollama]里的base_url用http://localhost:11434前提是你已经按后面章节把 WSL 网络模式改成 mirrored否则这里要换成 Windows 宿主机的实际 IP。[providers.taotoken]的api_key用了${TAOTOKEN_API_KEY}这种环境变量引用写法避免把 Key 明文写进配置文件。3.2 settings.json 骨架settings.json 主要管运行时行为和 config.toml 分工不同{ runtime: { logLevel: info, logDir: ~/.openclaw/logs, requestTimeoutMs: 120000 }, model: { default: ollama/qwen3:8b, temperature: 0.7, maxTokens: 4096 }, gateway: { enableBrowserControl: true, browserControlPort: 18791 }, providers: { ollama: { discoverModels: true, healthCheckIntervalMs: 30000 }, taotoken: { enabled: true, retryOnFailure: true } } }discoverModels: true这个开关很重要它决定 openclaw 启动时会不会主动去http://localhost:11434/api/tags拉模型列表。如果这里关了后面openclaw models status就看不到 ollama 的模型。3.3 环境变量写入把 TaoToken Key 和 ollama 占位 Key 写进 shell 环境# 追加到 ~/.bashrc echo export TAOTOKEN_API_KEY你的TaoToken Key ~/.bashrc echo export OLLAMA_API_KEYollama-local ~/.bashrc source ~/.bashrcTaoToken Key 的生成入口在控制台https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite4. 启动 gateway 并验证本地模型连通性4.1 先解决 WSL 访问 Windows ollama 的问题这一步是整个链路里最容易卡住的地方。默认情况下WSL2 里的localhost指向的是 WSL 自己不是 Windows 宿主机所以curl http://localhost:11434/api/tags会直接 connection refused。先在 Windows 侧设置 ollama 监听所有网卡。打开系统环境变量新增变量名OLLAMA_HOST 变量值0.0.0.0:11434然后完全退出 ollama托盘图标右键退出重新启动。用 PowerShell 验证监听状态netstat -ano | findstr 11434预期看到TCP 0.0.0.0:11434 0.0.0.0:0 LISTENING TCP [::]:11434 [::]:0 LISTENING接着放行防火墙端口管理员 PowerShell 执行New-NetFirewallRule -DisplayName Allow Ollama 11434 -Direction Inbound -Action Allow -Protocol TCP -LocalPort 11434最后改 WSL 网络模式。在 Windows 用户目录下创建或编辑.wslconfig[wsl2] networkingModemirrored重启 WSLwsl --shutdown wsl回到 WSL 里再测一次curl http://localhost:11434/api/tags预期返回类似{models:[{name:qwen3:8b,modified_at:2026-03-10T12:00:00Z},{name:deepseek-r1:1.5b,modified_at:2026-03-09T08:30:00Z}]}只要这个 curl 通了openclaw 发现本地模型就没有网络障碍了。4.2 启动 gateway前台启动 gateway方便看日志openclaw gateway --port 18789正常输出[gateway] agent model: ollama/qwen3:8b [gateway] listening on ws://127.0.0.1:18789 [browser/server] Browser control listening on http://127.0.0.1:18791/ (authtoken)注意这里有两个端口18789 是 gateway 的 WebSocket 入口18791 是 browser control 的 HTTP 入口。很多人误把 18791 当成 dashboard 打开结果看到 Unauthorized就是因为 browser control 默认带 token 认证。4.3 获取带 token 的 dashboard 链接不要手动拼 URL直接用命令输出openclaw dashboard --no-open预期输出Dashboard URL: http://127.0.0.1:18789/#tokenb9e410df30709779cc331a63de57813922e0f9c6ec475429把这个完整链接复制到浏览器打开就能进入控制台。如果之前打开过旧链接导致 token mismatch先在浏览器控制台清一下缓存localStorage.clear(); sessionStorage.clear(); location.reload();4.4 验证模型连通性在 dashboard 里发一条消息比如「你好请用一句话介绍你自己」。如果模型正常响应说明整条链路通了。也可以命令行验证openclaw models status预期输出Default : ollama/qwen3:8b Configured models (2): - ollama/qwen3:8b - taotoken/claude-sonnet看到这个输出说明本地 ollama 模型和 TaoToken 通道都已经注册成功。5. 本篇常见报错排查5.1 Failed to discover Ollama models: TypeError: fetch failed这个报错几乎都是 WSL 访问不到 Windows ollama 导致的。按顺序排查# 第一步确认 WSL 内能访问 curl http://localhost:11434/api/tags # 如果不通确认 OLLAMA_API_KEY 已设置 echo $OLLAMA_API_KEY # 如果为空补上 export OLLAMA_API_KEYollama-local如果 curl 本身就不通回到 4.1 节检查 OLLAMA_HOST、防火墙、mirrored 网络模式三件套。5.2 curl: (7) Failed to connect to 127.0.0.1 port 11434注意这里用的是127.0.0.1而不是localhost。在 mirrored 模式下两者等价但在 NAT 模式下127.0.0.1指向 WSL 自己必然不通。解决办法就是切 mirrored 模式或者把 base_url 改成 Windows 宿主机 IP。5.3 gateway token missing / token mismatchtoken missing 是浏览器没带 tokentoken mismatch 是带了旧 token。统一处理方式openclaw config get gateway.auth.token openclaw dashboard --no-open用第二条命令输出的完整 URL 打开不要自己拼。如果还不行清浏览器 localStorage 再试。5.4 ERR_CONNECTION_REFUSED 打开 18789说明 gateway 没起来或者起来了但端口不是 18789。先确认进程ps aux | grep openclaw如果没有 gateway 进程重新前台启动openclaw gateway --port 187895.5 openclaw: command not found安装脚本执行后没刷新 shellsource ~/.bashrc hash -r openclaw --version如果还不行检查 npm 全局 bin 是否在 PATH 里npm prefix -g echo $PATH6. 后续扩展与 TaoToken 通道的配合方式本地模型跑通之后下一步通常有两个方向。一个是接工具调用让 openclaw 能执行 Python 脚本、读写文件这个在 skills 段里配置。另一个是把 TaoToken 通道用起来在本地模型处理不了的复杂任务上做 fallback。TaoToken 的接入文档在这里https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite如果你打算长期跑 coding agent 或者多轮工具调用可以看一下 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite想直接在网页里对比不同模型的表现模型对话入口https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite配置里fallback_model taotoken/claude-sonnet这行的作用就是当本地 qwen3:8b 在某个任务上超时或者返回质量不达标时openclaw 会自动切到 TaoToken 通道的模型继续处理。这样既保留了本地模型的低延迟优势又不会在复杂任务上卡死。最后提醒一个实操细节每次改完 config.toml 或 settings.json都要重启 gateway 才生效。前台启动的话 CtrlC 停掉再重新openclaw gateway --port 18789就行。日志在~/.openclaw/logs/下排查问题时先看最新那个日志文件的尾部。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。