
最近我在折腾个人AI助手目标很简单把它完全装进自己电脑里不依赖任何外部接口数据不出本机。折腾下来最顺手的一套组合就是openclaw ollama本地openclaw负责做智能体执行框架ollama负责跑开源大模型。日常让它写脚本、整理文件、翻译段落、按关键词搜索并汇总资料基本都能在断网状态下完成。这套方案尤其适合对隐私有硬要求、又不想每个月交一堆API账单的人。如果你也在纠结openclaw是不是必须要接云端API才能跑Windows下到底怎么搭下载模型慢到想砸电脑这些问题这篇文章就是把我的踩坑和最终方案一次性讲清楚。1. 为什么我坚持把openclaw的推理切成本地ollama1.1 openclaw到底解决了什么问题先聊清楚openclaw是什么。它本质上是一个开源的个人智能体框架和单纯聊天机器人最大的区别是它不只跟你对话它会真的去执行任务。你可以让它查一个文件、批量重命名、调用命令行工具、访问浏览器、操作你授权过的系统能力像一个长了手的AI助手。早期这类Agent框架重度依赖云端模型因为工具调用的指令遵循能力、上下文理解能力都要靠大模型支撑。openclaw也很自然地支持各家云端API这导致很多人一上来就以为它离不开外部算力。相关搜索里很多人问openclaw只能用接入api的方式使用算力吗我可以明确说不是。openclaw本身对模型提供方做了抽象只要模型服务暴露OpenAI兼容的接口它就能接。而在这一点上ollama几乎天生契合。1.2 云端API和本地算力的取舍我在做这个项目之前先盘了一下自己的需求每天要处理大量本地文档、邮件草稿、脚本片段这些内容不适合发到外部服务希望就算出差在高铁上断网AI助手依然能处理简单任务不想按token付费尤其是一些重复性工具调用一天跑几十次累积起来并不便宜。于是对比就很清晰了对比项云端API本地ollama数据私密性内容过外部服务有泄露面模型和上下文都在本机成本按token计费一次性搞定电费可忽略断网可用性基本不可用完全可用模型上限取决于服务商闭源模型为主取决于自己显卡开源模型为主部署复杂度零注册就有Key装环境、下模型、做配置对我这种场景本地推理的优势完全压过云端。你可能担心本地模型不够聪明确实如果直接拿3B模型做复杂推理效果和GPT-4级别差距明显。但Agent类任务里很多是调用工具、读结果、再调用工具的循环模型只要能把意图解析对小模型也能完成大部分任务。真正复杂的分析型工作可以单独换大参数模型。1.3 openclaw只能用API接入算力的误解从哪来的我猜很多人产生这个误解是因为看了默认配置。openclaw安装好之后默认配置指向某个云端模型服务改起来不熟悉的人会以为这是唯一写法。再加上一开始它确实不支持本地运行时只有OpenAI兼容API这个通用接口。但ollama出现之后局面完全变了——它在本地起了一个完全兼容OpenAI的API服务默认监听你机器的11434端口。你访问http://localhost:11434/v1拿到的东西和访问远程OpenAI接口长得一模一样。所以openclaw那头不用想什么特殊协议只需要在配置里写我要用openai兼容方式地址是本地Key随便填一个就行。前面还有一层net/相关的切割逻辑ollama就是那个把云端模型替换成本地模型的中间层。搞清楚这一点之后整个搭建思路就非常顺了。2. 搭建前最好自查的三件套WSL2、Node.js、模型存放位置2.1 openclaw无法安全验证sl2环境是怎么来的这个报错几乎只在Windows上出现。openclaw很多底层工具依赖Linux环境Windows下它需要借助WSL2来跑这套生态。如果你的机器没有正确安装WSL2首次启动openclaw时会直接提示类似无法安全验证sl2环境的报错有些版本还会给出引导让你在PowerShell里运行wsl --status去检查环境。我遇到的情况就是这样打开PowerShell执行wsl --status如果输出里能看到默认版本2说明WSL2基本就绪如果提示没有已安装的发行版或者内核组件缺失走下面几步wsl --install安装完成之后按提示重启系统。如果系统已经比较老可能需要单独补一下Linux内核更新包然后再执行wsl --update wsl --set-default-version 2还有一个小坑WSL2依赖CPU虚拟化如果BIOS里把虚拟化关了装半天也起不来。可以在任务管理器性能页里看一眼虚拟化已启用如果不是进BIOS找Intel VT-x或者AMD SVM打开。想更省事的伙伴可以直接在WSL2里装一个Ubuntu发行版把openclaw装进Linux子系统日常使用反而更贴近官方支持环境报错也更少。不过我个人还是选择了Windows原生加WSL2配合的方式主要是不想来回切换终端窗口。2.2 Node.js安装与npm全局工具链openclaw本身是Node.js生态的项目安装依赖npm。我用的Node是20 LTS版本实测下来比18稳定至少没遇到TS语法层面的兼容报错。到Node官网下LTS版下一步下一步装完然后在命令行验证node -v npm -v接着直接全局安装openclawnpm install -g openclaw如果你在Linux或者WSL2里装有时候会遇到EACCES: permission denied的全局权限问题那是因为npm默认全局目录对当前用户不可写。最快的办法不是去改目录权限而是用nvm装Node这样npm全局目录就在用户目录下整个安装过程基本不会碰权限问题。Ubuntu下还有一个细节装完openclaw之后命令入口可能不在PATH里。通过nvm安装的用户一般没问题如果是apt装的Node可能要手动把/usr/bin下的软链检查一遍。看到bash: openclaw: command not found时不用慌先去看npm config的global prefix是不是出了偏差。2.3 ollama模型别一股脑堆C盘ollama安装相对简单但有一个问题特别容易忽视模型文件默认存储在用户目录下在Windows一般是C:\Users\你的用户名\.ollama\models如果你打算跑7B甚至14B的模型一个文件动辄4GB、8GB再多拉几个模型C盘很快就红了。我会强烈建议在装模型之前先把模型目录迁走。Windows下修改方式在系统属性 - 环境变量里为当前用户新建一个变量变量名OLLAMA_MODELS变量值填你想放模型的位置例如D:\ollama-models保存后完全退出ollama进程再重新启动。然后下载一个新模型试试用ollama list看模型信息或者直接去目标文件夹看有没有生成models目录。如果文件出现在新位置说明环境变量生效了。这里有个容易踩的坑如果你之前已经下载过模型改完环境变量后旧路径里的模型不会被自动迁移。我迁移的时候是手动把C:\Users\xxx\.ollama\models整个复制到新盘再改环境变量这样就不用重新下载那几十个G。另外说一个安全提醒有些第三方网站提供ollama加速下载却要求你填手机号注册。官方ollama下载页面根本不需要填电话凡是有这个环节的我建议直接关掉页面老老实实走官方渠道或者用离线模型文件导入具体方法下一章讲。3. 三分钟跑通openclaw对接ollama的完整链路3.1 配置指向ollama就是本地版OpenAI API整个对接的核心就一句话让openclaw认为自己在连一个OpenAI兼容的API服务只不过这个服务跑在你自己的机器上。先启动ollama服务。Windows桌面上装了ollama之后它会常驻后台命令行里也可以手动确认ollama serve正常情况下这个命令会一直挂着监听11434端口。确认没问题后再拉一个模型比如ollama pull qwen2.5:3b然后去openclaw的配置文件里把模型提供方改成openai兼容模式。不同版本的openclaw配置项名字可能不太一样但大致结构是这样我这里以我实际用的配置为例{ modelProvider: openai, model: qwen2.5:3b, openaiUrl: http://localhost:11434/v1, openaiKey: ollama }其中openaiKey填什么都无所谓Ollama本地服务默认不校验Key随便填一个ollama就能过。如果你用的是新版openclaw它也可能用的是llmProvider之类字段以官方文档为准原理都一样。配置保存后重启openclaw会话。如果配置正确它启动时会去检查模型列表是否可用。我之前遇到的坑是在这一步直接报连接失败十有八九是ollama没启动或者端口被别的进程占了。3.2 模型名怎么填才不翻车openclaw配置里的model字段必须和ollama里的标签完全一致不能自己发挥。ollama里模型标签的格式是模型名:参数规格比如qwen2.5:3b代表Qwen2.5 3B版本qwen2.5:7b代表7B版本llama3.1:8b类似想确认自己到底装了哪些模型运行ollama list输出里的NAME列就是你能用的合法标签。很多人不知道怎么把qwen2.5-3b关联到openclaw其实就是去ollama list里抄对应的名字填进配置没有第二个坑。如果要按任务分工来配模型我自己的经验是工具调用和脚本生成这类任务用3B/4B级模型响应快基本指令也够用需要长文本理解、复杂代码分析的时候切到7B甚至14B模型。openclaw支持在不同场景下指定不同模型初期配置不必贪多先跑通一个再慢慢加。3.3 验证链路确认openclaw是真的在用本地模型配置完了怎么确认它没偷偷连外部服务两个办法。第一个看ollama的活跃模型加载情况。给openclaw发一个任务同时在命令行执行ollama ps如果看到模型名下面有正在运行的进程说明openclaw刚才确实把请求发到本地ollama了。第二个更硬核一点把网络断掉再让openclaw干活。我测过直接把无线网卡禁用然后让它执行一个简单的文件整理任务它依然能正常完成。这基本可以说明整个链路是完全本地的。如果你在Windows上用Windows Companion来管理openclaw还得多一步在配套面板里把系统授权打开包括文件访问、终端执行、麦克风等。有些能力openclaw不会默认申请只有在授权之后才会出现在工具列表里。配好授权之后建议重启一次会话让工具列表重新加载。4. 翻车重灾区从下载慢到serve段错误的修复记录4.1 ollama拉模型太慢离线GGUF导入是最稳的绕行方案ollama官方模型仓库下载速度不稳定这个问题很多人一上来就撞到。下载到一半断开重来重来又慢非常折磨。针对这个事我试过几条路最后稳定下来的是离线GGUF导入法。先说原理ollama模型本质上也可以从GGUF文件构建。社区里大量模型会以GGUF格式发布你完全可以绕过ollama官方下载通道从网盘、ModelScope或者Git镜像站把模型文件拿到本地再用ollama导入。具体步骤下载对应模型的GGUF文件比如Qwen2.5 7B的某个量化版本文件名通常是qwen2.5-7b-instruct-q4_k_m.gguf在本地建一个目录把GGUF文件放进去并在同目录下创建ModelfileFROM ./qwen2.5-7b-instruct-q4_k_m.gguf执行导入命令ollama create qwen2.5-7b -f Modelfile跑起来验证ollama run qwen2.5-7b这个方法的好处是只要你能把GGUF文件搞到手导入基本没有网络压力。要注意一点GGUF的量化版本决定了工具调用时的回复质量Q4_K_M在体积和效果之间比较均衡资源特别紧张再考虑Q3否则不建议。4.2 ollama serve段错误先看日志再动环境变量ollama serve出现段错误是我在Windows上遇到比较头疼的问题之一。现象是服务一启动就崩或者跑着跑着进程消失日志里出现segmentation fault相关字样。我的排查顺序是先看ollama日志。Windows下日志一般在%LOCALAPPDATA%\ollama\logs看启动阶段有没有明确报错如果日志指向GPU相关十有八九是显卡驱动太旧或者显存不够加载模型层更新NVIDIA驱动之后问题依旧再尝试限制GPU参与度设置环境变量OLLAMA_NUM_GPU0强制CPU推理验证是否GPU相关如果CPU模式正常说明问题出在GPU推理链路可以考虑只加载少量层到GPU比如OLLAMA_GPU_LAYERS1机器显存偏小的话再加一个OLLAMA_MAX_LOADED_MODELS1避免多个模型轮换加载把显存挤爆。这类段错误有个规律绝大多数不是配置语法问题而是GPU资源分配和驱动兼容问题。我自己最后是用更新驱动限制GPU层数解决的如果你也卡在这优先顺着这个方向查成功率很高。4.3 让gemma3/gemma这系列模型别再想太多有不少人看到搜索里如何关闭ollama里gemma4的思考过程这个需求本质上是有些带推理能力的模型回答之前会先输出一大段内部思考内容在openclaw这种不断调用工具的场景里这些思考会拖慢响应有时候还会混进工具调用参数里导致解析出错。处理方法有三个最简单换标签。在ollama模型库中同一个模型常分带思考和不带思考的版本你拉的时候看清楚标签不带it或thinking字样的版本就没有默认思考过程。如果已经拉成了带思考的版本可以在提示词里明确要求直接输出结果不要展示思考过程实测对多数模型有效。如果接口层支持关闭推理开关直接关掉更干净。但ollama不同版本支持度不一样没有统一开关我是以换标签为主。多嘴一句代价关掉思考过程之后模型回答的深度会下降一些尤其是数学逻辑和长文分析不那么严谨。但对openclaw这种以工具调用为主的任务响应速度的价值大于深度思考该关就关。4.4 卸载openclaw的正确姿势有人装完发现环境不对想重来或者干脆不想要了。卸载分几步如果你是用npm全局安装的先执行npm uninstall -g openclaw然后手动删除用户目录下的配置文件夹通常叫.openclaw里面包含了配置、历史会话、skills等数据。Windows下路径一般是C:\Users\你的用户名\.openclawLinux下在~/.openclaw。如果你的openclaw注册了系统服务或者计划任务比如Windows Companion相关的后台进程去服务管理器把对应服务停用并删除。这一步常被遗漏导致卸载之后开机还有一个残留进程。想保留聊天历史再卸载的话先把.openclaw目录备份一份之后重装还能接着用。5. 本地Agent不止对话RAG、反代和手机端的扩展5.1 给ollama配一个简易本地RAG知识库openclaw跑起来之后很多人第二个需求就是让它能回答我私人文档里的内容这就绕不开本地RAG。RAG全称是检索增强生成说白了就是把文档切块、向量化、存起来用户提问时先找出最相关的几段把内容拼到提示词里让模型回答。ollama做这件事很方便因为它本身就提供embedding模型。我常用的是nomic-embed-text或者bge-m3拉取命令ollama pull nomic-embed-text然后写脚本调用Ollama的/api/embeddings接口把文档段落转成向量。不需要上重型向量数据库小项目直接存成JSON或SQLite都够用。查询时同样转向量计算余弦相似度取出Top-K段落拼进system prompt再发给模型。我实测下来这种轻量RAG对几百个文档片段以内的场景非常实用不需要额外起服务。注意一点embedding模型和文本生成模型如qwen2.5:7b是两回事别用一个生成模型去当embedding用维度对不上效果也差。5.2 用FastAPI给ollama套一层可控的封装如果ollama只在自己本机用直接连11434就行。但你要是家里有几台设备想让手机、笔记本都能调用裸连11434又不太放心。我就在中间加了一层FastAPI服务做统一鉴权和日志。核心逻辑很简单FastAPI收到请求后再转发到ollama的/v1/chat/completions。给一个最小参考import os from fastapi import FastAPI, Header, HTTPException import httpx app FastAPI() OLLAMA_URL http://127.0.0.1:11434/v1/chat/completions MY_API_KEY your-local-key app.post(/v1/chat/completions) async def chat(conversation: dict, authorization: str Header(...)): if authorization ! fBearer {MY_API_KEY}: raise HTTPException(status_code401, detailbad key) async with httpx.AsyncClient() as client: resp await client.post(OLLAMA_URL, jsonconversation, timeout120) return resp.json()之后openclaw的外部访问地址改成你自己的FastAPI地址Key也改成你自己定义的那个。这样做的好处是即便以后你想在网关前加一层权限控制、请求计数、或者把某些请求导到云端大模型做兜底都有统一入口。5.3 nginx反代ollama并加API Key有不少人问过nginx代理ollama设置apikey这个事。其实核心就两步给ollama本身开启API Key校验再用nginx做反向代理。ollama较新版本支持通过环境变量OLLAMA_API_KEY开启Bearer鉴权。设置之后所有请求必须带Authorization: Bearer xxx否则拒绝。nginx侧配置大致如下server { listen 11435; location / { proxy_pass http://127.0.0.1:11434; proxy_set_header Host $host; proxy_set_header Authorization $http_authorization; } }这样外部设备只访问nginx的11435端口而ollama的11434可以继续只监听本机减少暴露面。这里我特别要提醒一句不要把ollama裸奔到公网如果没有鉴权保护等于把你的显卡资源免费共享给整个互联网。就算加了Key也要注意Key的传输安全尽量只在可信局域网内暴露。5.4 Termux手机端能跑但别期待太高很多人想用手机装openclaw相关搜索里还有termux安装openclaw手机版下载步骤。这个我可以明确给出结论能装但本地模型推理体验比较局限。Termux是Android上一个终端模拟器可以装Node.js和npm所以跑openclaw这个Node项目本身没有大障碍pkg install nodejs-lts npm install -g openclaw但是ollama没有官方Android版本在手机上跑本地模型通常要靠Termux里的Linux容器方案对处理器、内存、调度策略都有很高要求。实测3B模型勉强能跑7B以上基本是PPT级速度输出一个字等半天。所以我一般建议手机端装openclaw更适合当远程遥控器真正推理还是交给家里或办公室那台有显卡的电脑。openclaw本身支持连接远程模型服务你把地址指向局域网里的ollama网关手机就变成了一个移动控制端。另外说一点如果你的手机性能确实很强比如8GB以上内存的旗舰机装一个4B模型做简单角色聊天、外语翻译问题不大但要驱动Agent一次次调用工具体验大概率会让你失望。别指望手机端成为主力算力来源。做完这一整套之后我最大的体会是本地Agent能不能用得爽其实主要被拖后腿的从来不是模型聪不聪明而是链路稳不稳。所以我的建议也很简单——先用一个3B或4B小模型把openclaw跑通确认工具调用、模型加载、会话恢复这些流程都正常再慢慢加参数量、加RAG、加远程访问层。先让流程顺手再谈模型聪明这套组合才能真正代替你每天重复的琐事。