☰
Ubuntu系统配置OpenClaw并使用Ollama全教程:TaoToken统一Key接入与本地模型调用
2026/10/1 14:27:15 网站建设 项目流程

1. 为什么要在 Ubuntu 上把 OpenClaw 和 Ollama 接起来

如果你在 Ubuntu 上折腾过本地 AI 工具链,大概率遇到过这种局面:Ollama 装好了,ollama run qwen2.5也能聊,但一旦想把它接进 OpenClaw 这类工具框架做自动化,就开始卡在配置上——环境变量写错、端口对不上、模型名不匹配,报错还特别含糊。这篇就围绕「Ubuntu 系统配置 OpenClaw 并使用 Ollama」这条链路,把每一步拆到可复制。

先说清楚这三个东西分别是什么、能做什么、适合谁。Ollama 是本地大模型运行工具,一条命令就能拉起 Qwen、Llama 这类模型,模型跑在你自己的机器上,不依赖外部网络。OpenClaw 是轻量级 AI 工具框架,支持对接本地或在线模型,通过技能扩展做自动化操作。TaoToken 则是统一 Key 接入层,当你需要在线模型(比如 Claude、GPT 系列)和本地 Ollama 模型混用时,用同一个 Key 和 Base URL 就能统一管理,不用在多个平台之间来回切换配置。

适合的读者:手上有一台 Ubuntu 22.04 或 24.04 的机器(物理机、虚拟机都行),内存 8GB 以上,想在本地跑通「工具框架 + 本地模型 + 统一 Key」这套组合的开发者。整条链路跑通后,你可以用 OpenClaw 调 Ollama 做本地问答,也可以在同一套配置里切到 TaoToken 接入的在线模型,做代码生成、文档处理这类任务。

我试过在一台 16GB 内存的 Ubuntu 22.04 上从零配这套环境,中间踩了几个坑,下面按顺序来,你跟着做基本能一次跑通。

2. 前置准备:Ubuntu 环境检查与 TaoToken Key 获取

2.1 系统依赖更新与基础工具安装

打开终端(Ctrl+Alt+T),先更新软件包列表并升级已安装的包。这一步别跳过,依赖版本过低是后面各种报错的根源。

sudo apt update sudo apt upgrade -y

升级完成后,安装 git、curl、python3 和 pip3。OpenClaw 拉源码要 git,下载 Ollama 要 curl,Python 依赖管理要 pip3。

sudo apt install git curl python3 python3-pip -y

验证一下四个工具是否都可用:

git --version curl --version python3 --version pip3 --version

每个命令都能输出版本号就说明没问题。如果某个提示command not found,重新执行对应的安装命令即可。Ubuntu 22.04 默认自带 python3,不要再去装 python2,容易引起环境冲突。

2.2 获取 TaoToken 统一 Key

TaoToken 的作用是把在线模型的接入统一到一个 Key 和 Base URL 上。你需要先拿到 API Key,再在 OpenClaw 的配置里填进去。

访问 TaoToken 官网注册并登录,然后进入控制台创建 API Key。地址是:

  • 官网入口:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
  • API Keys 管理页:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite

创建好 Key 之后先复制保存,后面配置 OpenClaw 时要用。TaoToken 的 API Base URL 是https://taotoken.net/api,这个地址在配置在线模型时填写。

注意:API Key 只显示一次,创建后立刻复制到安全的地方。不要把它硬编码到会提交到 git 的文件里,建议用环境变量或.env文件管理。

2.3 确认 Ollama 服务端口

Ollama 默认监听11434端口,OpenClaw 配置里要填的ollama_url就是http://localhost:11434。先确认这个端口没有被其他程序占用:

ss -tlnp | grep 11434

如果没有输出,说明端口空闲,可以继续。如果有输出,记下占用进程,后面可能需要改 Ollama 的监听端口。

3. 可复制配置:OpenClaw 接入 Ollama 与 TaoToken

3.1 安装 Ollama 并拉取本地模型

Ollama 在 Ubuntu 上用官方脚本一键安装:

curl -fsSL https://ollama.com/install.sh | sh

安装完成后验证版本:

ollama --version

输出版本号(比如ollama version 0.5.x)就说明安装成功。Ollama 安装后会自动注册为 systemd 服务并启动,监听 11434 端口。

拉取一个本地模型,这里用 Qwen2.5 7B 做示例,中文支持好、内存占用适中:

ollama pull qwen2.5:7b

模型文件大约 4-5GB,下载时间取决于网络。下载中断了重新执行ollama pull会自动续传。拉取完成后确认:

ollama list

能看到qwen2.5:7b就说明模型就绪。内存 8GB 的机器建议用 q4 量化版本,比如qwen2.5:7b-instruct-q4_K_M,占用更小。

3.2 OpenClaw 配置文件片段

OpenClaw 的核心配置是config.yaml。下面是一份可直接复制的配置片段,同时包含 Ollama 本地模型和 TaoToken 在线模型的接入:

# 服务配置 server: host: 0.0.0.0 port: 8080 # 模型配置 model: # 默认使用的模型提供方:ollama 或 taotoken provider: ollama # Ollama 本地模型配置 ollama: base_url: http://localhost:11434 default_model: qwen2.5:7b timeout: 120 # TaoToken 统一 Key 接入在线模型 taotoken: base_url: https://taotoken.net/api api_key: ${TAOTOKEN_API_KEY} default_model: claude-sonnet-4-20250514 timeout: 120

这里api_key用了环境变量${TAOTOKEN_API_KEY},避免把 Key 写死在文件里。在~/.bashrc或.env里设置:

export TAOTOKEN_API_KEY="你的Key"

然后source ~/.bashrc让它生效。

如果你用的是 JSON 格式的配置(部分 OpenClaw 版本支持config.json),对应片段如下:

{ "server": { "host": "0.0.0.0", "port": 8080 }, "model": { "provider": "ollama", "ollama": { "base_url": "http://localhost:11434", "default_model": "qwen2.5:7b", "timeout": 120 }, "taotoken": { "base_url": "https://taotoken.net/api", "api_key": "${TAOTOKEN_API_KEY}", "default_model": "claude-sonnet-4-20250514", "timeout": 120 } } }

三件套对照表,配置时逐项核对:

项目Ollama 本地TaoToken 在线
Base URLhttp://localhost:11434https://taotoken.net/api
API Key不需要控制台创建的 Key
Model IDqwen2.5:7bclaude-sonnet-4-20250514

3.3 启动 OpenClaw 服务

配置写好后启动服务:

python3 main.py

看到OpenClaw server started on http://0.0.0.0:8080就说明启动成功。想后台运行:

nohup python3 main.py > openclaw.log 2>&1 &

日志会写到openclaw.log,排查问题时看这个文件。

4. 验证请求:curl 测试模型连通性

配置写完不算完,得实际发请求验证链路通不通。分两步:先验证 Ollama 本身,再验证 OpenClaw 转发。

4.1 直接测试 Ollama 接口

用 curl 直接调 Ollama 的 API,确认本地模型能正常响应:

curl -X POST http://localhost:11434/api/generate \ -H "Content-Type: application/json" \ -d '{ "model": "qwen2.5:7b", "prompt": "用一句话介绍Ubuntu", "stream": false }'

预期返回是一段 JSON,包含"response"字段,里面是模型的回答。如果返回{"error":"model not found"},说明模型名写错了,用ollama list核对。如果连接被拒绝,说明 Ollama 服务没起来,执行sudo systemctl start ollama。

4.2 测试 OpenClaw 转发到 Ollama

通过 OpenClaw 的 API 间接调用 Ollama:

curl -X POST http://localhost:8080/api/chat \ -H "Content-Type: application/json" \ -d '{ "model": "qwen2.5:7b", "message": "如何查看Ubuntu的内存占用" }'

预期返回 JSON,response字段是模型回答。这一步通了,说明 OpenClaw 到 Ollama 的链路没问题。

4.3 测试 TaoToken 在线模型

切换到 TaoToken 接入的在线模型,验证统一 Key 是否生效:

curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "回复OK"}] }'

预期返回标准的 OpenAI 兼容格式,choices[0].message.content里有模型回复。如果返回 401,说明 Key 不对或没生效,检查环境变量是否source过。

5. 本篇常见报错排查

配置过程中最容易卡在这几个报错上,逐个对照排查。

报错一:401 Unauthorized

{"error":{"message":"Invalid API key","type":"authentication_error"}}

原因通常是 Key 没设置或环境变量没生效。检查echo $TAOTOKEN_API_KEY是否有输出,没有就重新source ~/.bashrc。如果 Key 里有特殊字符,确认引号包裹正确。另外确认请求头是Authorization: Bearer <key>格式,Bearer 后面有一个空格。

报错二:local proxy failed / connection refused

curl: (7) Failed to connect to localhost port 11434

Ollama 服务没启动或端口不对。执行sudo systemctl status ollama看状态,没运行就sudo systemctl start ollama。如果 Ollama 跑在别的端口,改配置里的base_url。还有一种情况是 OpenClaw 跑在容器里,localhost指向容器自身而不是宿主机,这时要把localhost换成宿主机的实际 IP。

报错三:reading choices 相关错误

Error reading choices: unexpected end of JSON input

这通常是模型返回了空响应或流式响应被截断。检查stream参数是否和客户端处理逻辑匹配。如果用的是流式接口但客户端按非流式解析,就会报这个。把stream设为false再试一次,能通说明是流式处理的问题。

报错四:OAuth / 认证流程报错

OAuth error: invalid_client

如果你在 OpenClaw 里配了需要 OAuth 的在线服务,确认回调地址和客户端信息填对。用 TaoToken 统一 Key 接入的话,走的是 Bearer Token 认证,不涉及 OAuth 流程,把 provider 切到 taotoken 就能绕过这类问题。

报错五:模型名不匹配

model "qwen2.5" not found, try pulling it first

Ollama 的模型名要带 tag,qwen2.5和qwen2.5:7b是两个不同的标识。用ollama list看实际拉下来的完整名称,配置里一字不差地填进去。

报错六:端口被占用

OSError: [Errno 98] Address already in use

8080 端口被别的程序占了。ss -tlnp | grep 8080找到占用进程,要么停掉它,要么把 OpenClaw 的port改成 8081 或其他空闲端口。

6. 统一 Key 接入后的扩展用法

链路跑通之后,OpenClaw 的价值在于把本地模型和在线模型放在同一套配置里调度。日常问答、代码补全这类对延迟敏感、数据不想出本地的任务,走 Ollama 的qwen2.5:7b;需要更强推理能力或处理复杂文档时,切到 TaoToken 接入的在线模型,改一下provider字段就行,不用重新配 Key 和地址。

如果你打算长期用这套组合做编码或 Agent 类任务,可以了解下 Coding Plan,它针对持续性的代码生成场景做了额度优化:

  • Coding Plan 入口:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite

想直接在网页上对比不同模型的效果,可以用模型对话页快速测试:

  • 模型对话:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite

接入过程中遇到配置细节问题,文档里有各语言的完整示例:

  • 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite

最后提醒一个实操细节:Ollama 的模型文件默认存在/usr/share/ollama/.ollama/models,拉多个模型后磁盘占用会涨得很快。定期用ollama list检查,不需要的用ollama rm 模型名删掉。另外 OpenClaw 的config.yaml改完后一定要重启服务才生效,前台启动的 Ctrl+C 再跑一次,后台启动的用pkill -f main.py停掉再重新nohup拉起。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询