OpenClaw + Ollama 集成指南:本地私有化部署 LLM
介绍如何通过 OpenClaw 与 Ollama 集成实现本地大语言模型(LLM)的私有化部署。方案解决了云端 API 成本高、数据隐私风险及网络依赖问题。内容涵盖硬件要求确认、Ollama 安装配置、上下文窗口扩展、OpenClaw 对接设置、模型量化优化及混合路由策略。通过实战案例展示了搭建本地代码审查助手的全过程,实现了零成本、数据不离本地的 AI 智能体运行环境。

介绍如何通过 OpenClaw 与 Ollama 集成实现本地大语言模型(LLM)的私有化部署。方案解决了云端 API 成本高、数据隐私风险及网络依赖问题。内容涵盖硬件要求确认、Ollama 安装配置、上下文窗口扩展、OpenClaw 对接设置、模型量化优化及混合路由策略。通过实战案例展示了搭建本地代码审查助手的全过程,实现了零成本、数据不离本地的 AI 智能体运行环境。


告别 API 账单,让 AI 真正属于你自己——数据隐私 + 零 Token 成本 + 离线可用
在 OpenClaw 的生态中,模型是 AI 的'大脑'。无论是 GPT-4 还是 Claude,云端大模型虽然强大,但存在三个无法回避的问题:
OpenClaw + Ollama 的组合正是为解决这些问题而生。Ollama 作为轻量级本地大模型管理工具,能将 Llama、Qwen 等开源模型部署在你的电脑上,让 OpenClaw 彻底摆脱云端依赖,实现本地推理、数据私有化、零 Token 成本的全闭环体验。
本地部署模式 用户指令 → OpenClaw 网关 → 本地 Ollama (Llama/Qwen) → 返回结果 (零成本,数据留在本地)
云端部署模式 用户指令 → OpenClaw 网关 → 云端 API (GPT-4/Claude) → 返回结果 (每 Token 计费,数据上传厂商)
本文将手把手教你完成 OpenClaw+Ollama 的完整集成,从安装部署到性能优化,再到混合模型策略和实战案例,让你拥有真正属于自己的 AI 智能体。
在开始之前,先确认你的硬件是否满足要求:
| 配置项 | 最低要求 | 推荐配置 |
|---|---|---|
| GPU | NVIDIA 显存≥4GB(可运行 4B 模型) | NVIDIA 显存≥8GB(流畅运行 7B~14B 模型) |
| 内存 | 16GB | 32GB 及以上 |
| 磁盘空间 | 20GB 空闲(SSD 优先) | 50GB 以上 SSD |
| 处理器 | Intel i5/Ryzen 5 | Intel i7/Ryzen 7 或 Apple M 系列 |
特别说明:
macOS/Linux 用户:
curl -fsSL https://ollama.com/install.sh | sh
Windows 用户:
ollama --version
安装完成后,Ollama 会自动注册为系统服务,开机自启。
Ollama 支持一键拉取主流开源模型。推荐通义千问系列,中文适配性最佳:
# 拉取 Qwen2.5 7B 模型(约 4.7GB,推荐,兼顾性能与硬件要求)
ollama pull qwen2.5:7b
# 更强推理能力(显存≥10GB 可选)
ollama pull qwen3:8b
# 轻量版(显存 4GB 可用)
ollama pull qwen2.5:4b
# 英文场景可选 Llama3
ollama pull llama3:8b
拉取过程耗时 5~20 分钟,取决于网络速度。模型文件会自动存储在 Ollama 目录。
拉取完成后,可以直接在终端测试模型:
ollama run qwen2.5:7b
输入'你好',看到模型正常回复,说明 Ollama 已就绪。
OpenClaw 要求模型上下文窗口**≥16000 tokens**,而 Ollama 基础模型默认仅 4096 tokens。必须手动定制扩展:
基础模型 (上下文 4096) → 创建 Modelfile (设置 num_ctx 32768) → 创建自定义模型 (新模型 上下文 32768) → 满足 OpenClaw 要求
Windows PowerShell(管理员身份):
# 1. 切换到用户根目录
cd C:\Users\<你的用户名>
# 2. 创建 Modelfile 配置文件
@"FROM qwen2.5:7b PARAMETER num_ctx 32768"@ | Out-File -Encoding ascii Modelfile
# 3. 验证配置文件
Get-Content Modelfile
# 4. 创建自定义模型(命名为 qwen2.5:7b-32k)
ollama create qwen2.5:7b-32k -f Modelfile
# 5. 验证自定义模型
ollama list
# 应显示 qwen2.5:7b-32k
ollama show qwen2.5:7b-32k --modelfile
# 确认包含 num_ctx 32768
macOS/Linux 用户:
# 创建 Modelfile
echo "FROM qwen2.5:7b\nPARAMETER num_ctx 32768" > Modelfile
# 创建自定义模型
ollama create qwen2.5:7b-32k -f Modelfile
# 验证
ollama list
# npm 全局安装 OpenClaw(最新稳定版)
npm install -g openclaw
# 验证安装
openclaw --version
若权限不足,Windows 请以管理员身份运行 PowerShell,或执行:
npm install -g openclaw --unsafe-perm
执行配置向导,将 OpenClaw 指向本地 Ollama:
openclaw onboard
按提示完成以下配置(严格操作,避免错误):
| 配置步骤 | 操作要求 | 输入/选择内容 |
|---|---|---|
| Model/auth provider | 选择模型提供商,拉到列表最后 | Custom Provider |
| API Base URL | 本地 Ollama 的 API 地址 | http://127.0.0.1:11434/v1 |
| API Key | 任意字符串(不可留空) | ollama(或自定义如123456) |
| Endpoint compatibility | 接口兼容模式 | OpenAI-compatible |
| Model ID | 本地自定义模型名 | qwen2.5:7b-32k |
| 后续所有配置项 | 暂不配置渠道、技能等 | 全部选择Skip for now / No |
User → Ollama → OpenClaw 输出 Web UI 地址 http://127.0.0.1:18789 openclaw onboard 测试连接 http://127.0.0.1:11434/v1 返回模型列表验证 qwen2.5:7b-32k 可用 Verification successful
配置完成后,若显示'Verification successful',表示连接成功;控制台会显示 OpenClaw Web UI 地址(http://127.0.0.1:18789)和管理员 Token,务必保存 Token。
首次启动可能遇到:
Model context window too small (4096 tokens). Minimum is 16000
这是因为 OpenClaw 缓存了原始模型的 4096 参数,需要手动修改配置文件:
找到两个核心配置文件:
C:\Users\<你的用户名>\.openclaw\openclaw.jsonC:\Users\<你的用户名>\.openclaw\agents\main\agent\models.json修改方法:
"maxTokens"或"contextWindow"4096改为32768openclaw gateway restart在浏览器打开 http://127.0.0.1:18789,粘贴 Token 登录。输入测试指令:
帮我写一个 Python 函数,计算斐波那契数列
如果模型正常响应,说明 OpenClaw+Ollama 集成成功!
不同模型的提示词格式存在差异。Ollama 兼容 OpenAI 格式,但某些模型有特殊要求。
通用适配方案:在 OpenClaw 的~/.openclaw/agents/main/agent/system.md中,针对不同模型设置 system prompt:
# 当使用 Qwen 系列模型时
你是一个有帮助的 AI 助手,用中文回答,保持简洁。
# 当使用 Llama 系列时(英文模型需明确语言)
You are a helpful assistant. Answer in Chinese.
OpenClaw 允许在配置中动态调整上下文窗口大小:
# 查看当前模型配置
openclaw config get models
# 设置模型参数(临时)
openclaw config set models.providers.custom.options.num_ctx 16384
合理设置上下文窗口的原则:
| 任务类型 | 上下文需求 | 备注 |
|---|---|---|
| 简单对话 | 4K-8K | 节省内存 |
| 文档处理 | 16K-32K | 平衡性能 |
| 复杂分析 | 32K+ | 需高配硬件 |
按需配置 num_ctx。
如果模型输出质量不稳定,可以调整采样参数:
# ~/.openclaw/agents/main/agent/model_settings.yaml
temperature: 0.7 # 0.0-1.0,越低越确定,越高越创造
top_p: 0.9 # 核采样,控制多样性
top_k: 40 # 只考虑概率最高的 k 个 token
repeat_penalty: 1.1 # 重复惩罚,避免循环
本地模型虽然零成本,但复杂推理能力不如云端大模型。OpenClaw 支持混合模型策略,根据任务类型动态选择模型。
在~/.openclaw/config/models.yaml中配置多模型路由:
# 模型提供商配置
providers:
local:
type: custom
baseUrl: http://127.0.0.1:11434/v1
apiKey: ollama
models:
- qwen2.5:7b-32k
- llama3:8b
cloud:
type: openai
apiKey: ${OPENAI_API_KEY}
models:
- gpt-4
- gpt-3.5-turbo
# 路由规则
routing:
# 规则 1:文件操作、系统命令用本地模型
- pattern: "文件 | 目录 | 备份 | 整理 | 移动 | 复制"
provider: local
model: qwen2.5:7b-32k
# 规则 2:代码审查、复杂问题用 GPT-4
- pattern: "代码审查 | 优化 | 重构 | 架构 | 设计模式"
provider: cloud
model: gpt-4
# 规则 3:敏感关键词强制本地
- pattern: "密码 | 密钥 |token| 隐私 | 机密"
provider: local
model: qwen2.5:7b-32k
# 默认规则:根据复杂度动态判断
- default:
strategy:
对于追求极致 Token 节省的场景,可以参考 OpenClaw-Viking 项目的实现:
用户消息 → Viking Router (轻量模型判断意图) → 路由决策 (需要哪些工具/文件?只加载匹配的工具定义,只注入相关的上下文文件) → 主模型响应 Token 节省 60%-93%
实测效果:
| 场景 | 优化前 | 优化后 | 节省 |
|---|---|---|---|
| 简单对话('你好') | 15,466 tokens | 1,021 tokens | 93% |
| 文件操作 | 15,466 tokens | 3,058 tokens | 80% |
| 代码编写 | 15,466 tokens | 5,122 tokens | 67% |
量化是减少模型内存占用、提升推理速度的核心技术:
原始模型 (FP16 16bit) → 8bit 量化 (内存减半) → 4bit 量化 (内存再减半) → 2bit 量化 (极致压缩,精度损失大)
Ollama 支持多种量化版本:
# 拉取 4bit 量化版本(推荐,平衡速度与精度)
ollama pull qwen2.5:7b-q4_0
# 拉取 8bit 量化版本(更高精度,内存占用稍大)
ollama pull qwen2.5:7b-q8_0
# 拉取 2bit 量化版本(极致压缩,仅限极端场景)
ollama pull qwen2.5:7b-q2_k
量化选择建议:
qwen2.5:4b-q4_0NVIDIA GPU:
ollama run qwen2.5:7b --verbose 查看日志中的设备信息Apple Silicon (M 系列):
CPU 优化:
# 设置线程数(通常为物理核心数)
ollama run qwen2.5:7b --num-thread 8
# 限制内存使用
ollama run qwen2.5:7b --memory-limit 8G
ollama cleanupollama ps 查看运行中的模型构建一个能够自动审查 PR、分析代码质量的 AI 助手,要求:
本地服务器 ←→ GitHub (PR 创建/更新) → Webhook 触发 → OpenClaw 网关 → 代码审查 Skill → 拉取 PR 代码 → 静态分析工具 (ESLint/Pylint) → LLM 分析 (Ollama+Qwen) → 生成审查报告 → 评论到 PR → 开发者查看反馈
步骤 1:创建代码审查 Skill
创建 ~/.openclaw/skills/code-review/index.ts:
import { exec } from 'child_process';
import { promisify } from 'util';
import fs from 'fs-extra';
import path from 'path';
import { LLM } from 'openclaw-sdk';
const execAsync = promisify(exec);
interface PRParams {
repo: string; // 仓库名,如 "user/repo"
prNumber: number; // PR 编号
baseDir?: string; // 本地克隆目录,默认 ~/repos
}
export async function handler(params: PRParams) {
const baseDir = params.baseDir || path.join(process.env.HOME, 'repos');
const repoDir = path.join(baseDir, params.repo.replace('/', '-'));
const prDir = path.join(repoDir, `pr-${params.prNumber}`);
// 1. 克隆 PR 代码(如果不存在)
if (! fs.(prDir)) {
fs.(prDir);
( +
+
);
}
linters = { : , : , : };
lintResults = {};
( [ext, cmd] .(linters)) {
{
{ stdout } = ();
lintResults[ext] = .(stdout);
} (e) {
(e.) {
{ lintResults[ext] = .(e.); } {}
}
}
}
{ : diffFiles } = ();
changedFiles = diffFiles.().();
changes = [];
( file changedFiles.(, )) {
( fs.(path.(prDir, file))) {
content = fs.(path.(prDir, file), );
changes.();
}
}
llm = ({ : , : });
prompt = ;
reviewReport = llm.(prompt);
comment = ;
{
: ,
: { : changedFiles., : comment }
};
}
步骤 2:配置 GitHub Webhook
在 GitHub 仓库设置中添加 Webhook:
http://你的 OpenClaw 公网 IP:18789/webhook/githubapplication/json步骤 3:创建 Cron 任务(可选,定时审查)
# ~/.openclaw/cron/pr-review.yaml
name: pr-review
schedule: "*/30 * * * *" # 每 30 分钟检查一次
type: cron
skill: code-review
params:
repo: "your-org/your-repo" # 可动态获取最近 PR 的逻辑需在 Skill 中实现
当有新的 PR 创建或更新时,OpenClaw 会自动:
整个过程零 API 成本,所有数据留在本地服务器,敏感代码永不外泄。
OpenClaw + Ollama 的组合,让 AI 智能体真正实现了'我的 AI 我做主':
随着 Llama 3、Qwen 3 等开源模型的性能逼近 GPT-4,本地部署的体验正在快速提升。现在,正是拥抱本地 AI 的最佳时机。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online