1. 为什么在 Windows 上我最终把 Ollama 换成了 LM Studio如果你正在 Windows 11 上折腾 OpenClaw 这类本地 Agent 框架大概率踩过同一个坑明明插着一张 NVIDIA 显卡Ollama 却死活不肯把模型完整塞进显存推理速度慢到怀疑人生。我自己的测试机是 Intel Core Ultra 9 285K 加 RTX 3090 24GB跑ollama run的时候 GPU 利用率长期在 20% 上下晃nvidia-smi里显存占用只有 3GB 出头剩下的全压在 CPU 上。OpenClaw 一次任务编排要连续发好几轮请求这种速度根本没法用。OpenClaw 是一个本地优先的 Agent 编排框架能读文件、写代码、调工具适合想把智能体跑在自己机器上的开发者。它需要一个 OpenAI 兼容的推理后端Ollama 和 LM Studio 都能干这活。问题在于 Windows 下 Ollama 的 CUDA 调度经常失灵尤其是配合较新的 CPU 平台时GPU Offload 层数不会自动拉满你得手动去改num_gpu参数改完还不一定生效。LM Studio 在这件事上省心得多。它把 GPU Offload 做成了图形化开关加载模型时直接告诉你多少层跑在 GPU 上、占多少显存CUDA 识别状态一目了然。我实测同一个gpt-oss-20b模型Ollama 下生成速度约 18 tokens/sLM Studio 开启完整 GPU Offload 后稳定在 65 tokens/s 以上差距接近四倍。显存占用方面LM Studio 会把 24GB 里的 21GB 左右吃满Ollama 只用了不到 6GB。这篇是 OpenClaw 本地实战系列的第一篇只干一件事在 Windows NVIDIA 环境下用 LM Studio 搭出一个稳定的 OpenAI 兼容推理服务把 Base URL 和模型名准备好下一篇直接对接 OpenClaw。如果你只是想先跑通本地推理这篇也能独立使用。2. LM Studio 安装与 CUDA 加速配置让 RTX 显卡真正吃满显存LM Studio 的安装没什么门槛官网下载 Windows 安装包一路下一步就行。建议用 0.4.2 或更高版本旧版本在 CUDA 识别上有过 bug。装完之后先别急着下模型把显卡相关的设置调对否则后面加载模型还是会走 CPU。打开 LM Studio左下角齿轮图标进 Settings切到 Hardware 选项卡。这里有几个关键项第一确认GPUs下拉框里选中了你的 NVIDIA 显卡。如果这里显示的是No GPU detected说明 CUDA 运行时没被识别先更新显卡驱动到最新版再重启 LM Studio。第二勾选GPU detected with CUDA旁边的开关。这个开关控制是否启用 CUDA 后端关掉的话所有推理都会回落到 CPU。第三GPU Offload层数。加载模型时 LM Studio 会自动推荐一个值但你可以手动拉满。以 RTX 3090 24GB 为例跑 20B 级别的量化模型Q4_K_MOffload 层数拉到 99 基本就是全部塞进显存。如果显存不够LM Studio 会提示你降低层数这时候优先保证 KV Cache 留在显存里否则长上下文会爆。模型下载在左侧放大镜图标里搜推荐openai/gpt-oss-20b的 GGUF 量化版Q4_K_M 大概 12GB24GB 显存跑起来很宽裕。下载完成后回到聊天界面顶部模型选择器里选中它右侧面板会显示GPU Offload滑块和预估显存占用。这里有个我踩过的坑如果你同时开了 Ollama 的后台服务它会占用一部分显存导致 LM Studio 加载模型时显存不足。跑 LM Studio 之前先在任务管理器里把ollama.exe结束掉或者用ollama stop停掉所有已加载模型。配置完成后在 LM Studio 聊天窗口发一条测试消息看右侧的Speed指标。RTX 3090 跑 20B Q4 模型正常应该在 60 tokens/s 以上。如果只有个位数回去检查 CUDA 开关和 Offload 层数。3. 开启 LM Studio 本地服务OpenAI 兼容接口的完整配置模型能跑之后下一步是把它变成一个 OpenClaw 能调用的 HTTP 服务。LM Studio 内置了 OpenAI 兼容的 API Server不需要额外装任何东西。先开启无界面后台服务。Settings 里切到 Developer 选项卡找到Local LLM Service (Headless)区域勾选Enable Local LLM Service。这个选项的作用是让 LM Studio 在你不打开聊天窗口的情况下也能响应请求对 OpenClaw 这种后台调用的场景是必须的。选项下面的注解写得很清楚使用 LM Studio 的 LLM 服务器而无需保持 LM Studio 应用程序打开。然后启动 API Server。点击左侧侧边栏的Developer / Server (-)图标进入 Server 配置页。几个参数需要确认参数推荐值说明Port1234默认端口OpenClaw 配置里要对应CORS开启防止跨域请求被拦API Model Identifieropenai/gpt-oss-20b后面配置 OpenClaw 时要用这个字符串点击蓝色的Start Server按钮顶部状态变成绿色的Status: Running就说明服务起来了。右侧会显示当前加载的模型标识符这个字符串必须和 OpenClaw 配置里的model字段完全一致大小写都不能错。服务启动后LM Studio 会在http://127.0.0.1:1234/v1暴露标准的 OpenAI 接口。你可以用 curl 先验证一下curl http://127.0.0.1:1234/v1/models正常返回是一个 JSON 数组里面包含当前加载的模型 ID。如果返回Connection refused检查 Server 是否真的在 Running 状态以及 Windows 防火墙有没有拦 1234 端口。接下来是 OpenClaw 侧的配置。OpenClaw 的配置文件通常在用户目录下的.openclaw/config.json或项目根目录的openclaw.config.json具体路径取决于你的安装方式。核心配置项如下{ llm: { baseUrl: http://127.0.0.1:1234/v1, apiKey: lm-studio, model: openai/gpt-oss-20b, provider: openai } }三个字段缺一不可baseUrl指向 LM Studio 的本地服务地址apiKey随便填一个非空字符串就行LM Studio 不校验 Key但 OpenClaw 要求这个字段存在model必须和 LM Studio Server 页显示的 API Model Identifier 完全一致。如果你用的是 OpenClaw 的交互式设置向导在提示选择 provider 时选OpenAI Compatible然后依次填入上面的 Base URL、Key 和 Model ID。向导会自动写入配置文件省去手动编辑的麻烦。配置改完后重启 OpenClaw让它重新读取配置文件。下一篇会详细讲 OpenClaw 的启动和对接流程这里先把 endpoint 准备好。4. 连通性验证一次完整的对话请求与结果检查配置写好了不代表能通得实际发一次请求验证。最直接的方式是用 curl 打 LM Studio 的 chat completions 接口curl http://127.0.0.1:1234/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer lm-studio \ -d { model: openai/gpt-oss-20b, messages: [ {role: user, content: 用一句话说明什么是本地推理} ], temperature: 0.7, max_tokens: 128 }正常返回的 JSON 里choices[0].message.content就是模型生成的文本。如果返回401 Unauthorized检查Authorization头有没有带上虽然 LM Studio 不校验 Key但有些版本的 OpenClaw 会强制要求这个头存在。如果返回404 Not Found大概率是model字段和 LM Studio 里加载的模型 ID 对不上。curl 通了之后再通过 OpenClaw 发一次请求。启动 OpenClaw在它的交互界面里输入一个简单任务比如「列出当前目录下的文件」。OpenClaw 会把请求转发到 LM Studio你可以在 LM Studio 的Server Logs窗口看到实时的请求日志包括请求时间、模型名、token 数和响应耗时。我实测下来RTX 3090 跑gpt-oss-20bQ4_K_M单轮对话的首 token 延迟在 200ms 左右生成速度稳定在 65 tokens/s。OpenClaw 一次工具调用通常涉及 2 到 3 轮请求整体响应时间在 3 秒以内体验很流畅。如果你在 Server Logs 里看到请求进来了但迟迟没有响应检查 LM Studio 的模型是否还在加载中。大模型首次加载需要几十秒加载完成后 Server 才会真正开始处理请求。另外确认Enable Local LLM Service是勾选状态否则关掉聊天窗口后服务会停。验证通过后你的本地推理服务就算搭好了。这个 endpoint 可以同时给多个工具用OpenClaw、Continue、Cline 都能连。5. 常见报错排查401、local proxy failed 与 reading choices 的解法这一节整理我在 Windows LM Studio OpenClaw 组合下实际遇到过的报错以及对应的排查路径。报错一401 UnauthorizedOpenClaw 日志里出现这个通常是apiKey字段为空或者配置没被正确读取。LM Studio 本身不校验 Key但 OpenClaw 的 OpenAI 客户端要求这个字段非空。在配置文件里把apiKey设成任意字符串比如lm-studio然后重启 OpenClaw。如果重启后还是 401检查配置文件路径是否正确OpenClaw 可能读了另一个位置的配置。报错二local proxy failed或ECONNREFUSED 127.0.0.1:1234这个报错说明 OpenClaw 连不上 LM Studio 的服务。先确认 LM Studio 的 Server 状态是不是绿色的Running。如果 Server 没启动回到 Developer 页面点Start Server。如果 Server 在跑但依然连不上检查 Windows 防火墙有没有拦 1234 端口或者换个端口试试。还有一种情况是 LM Studio 开了无界面服务但主程序被关掉了这时候服务进程可能已经退出重新打开 LM Studio 并确认Enable Local LLM Service处于勾选状态。报错三Error reading choices或choices field missing这个报错通常出现在 OpenClaw 解析 LM Studio 返回的 JSON 时。原因可能是模型返回了非标准格式或者max_tokens设得太小导致响应被截断。先把max_tokens调到 512 以上再试。如果问题依旧检查 LM Studio 的模型是否完整加载有时候模型文件下载不完整会导致输出异常。删掉模型重新下载一次通常能解决。报错四OAuth相关报错如果你在 OpenClaw 里配置了多个 provider可能会遇到 OAuth token 冲突。OpenClaw 的某些版本会把 OpenAI 的 OAuth 流程和本地 endpoint 混在一起。解决办法是在配置文件里明确指定provider: openai并且不要填oauth相关字段。本地 LM Studio 不需要任何 OAuth 认证走的是纯 API Key 模式。报错五CUDA out of memory显存不够。降低 GPU Offload 层数或者换更小的量化版本。RTX 3090 24GB 跑 20B Q4 模型基本够用但如果上下文长度拉到 32k 以上KV Cache 会吃掉不少显存。可以在 LM Studio 的模型加载设置里把Context Length调到 8192 先跑通后续再按需增加。排查的时候养成看 LM StudioServer Logs的习惯请求有没有进来、模型有没有响应、耗时多少日志里都有。OpenClaw 侧的日志通常在~/.openclaw/logs/下两边对照着看能快速定位问题出在哪一层。6. 把 endpoint 切到 TaoToken统一 Key 通道与后续扩展本地 LM Studio 适合跑通流程和隐私敏感的场景但它有两个限制一是模型能力受限于你的显卡显存二是没法随时切换到更强的云端模型。如果你后面想让 OpenClaw 在本地模型和云端模型之间灵活切换可以把 endpoint 改到 TaoToken用统一的 Key 通道管理所有请求。TaoToken 提供 OpenAI 兼容的 API 接口Base URL 是https://taotoken.net/api。你需要在官网注册账号并生成 API Key然后把 OpenClaw 配置里的baseUrl和apiKey换掉{ llm: { baseUrl: https://taotoken.net/api, apiKey: 你的TaoToken API Key, model: claude-sonnet-4-20250514, provider: openai } }Model ID 根据你要用的模型填TaoToken 支持 Claude 系列、GPT 系列等主流模型。配置改完后重启 OpenClaw请求就会走 TaoToken 的通道不再依赖本地 LM Studio 服务。这样做的好处是 Key 通道统一了本地和云端的配置结构完全一致切换只需要改baseUrl和model两个字段。对于长期跑 Agent 任务的场景建议用 Coding Plan 套餐额度更充裕适合高频调用。如果你只是想先验证模型对话效果可以直接在模型对话页面测试。需要管理多个 Key 或者查看用量进 API Keys 页面操作。接入文档里有各语言的完整示例代码照着改就行。本地 LM Studio 和 TaoToken 并不冲突你可以保留本地配置作为离线备份日常用 TaoToken 跑复杂任务。OpenClaw 支持多 provider 配置在配置文件里加一个providers数组就能同时管理多个 endpoint切换的时候改一下默认 provider 就行。下一篇会讲 OpenClaw 的交互式设置向导怎么对接 LM Studio以及启动后的实际任务编排效果。本地服务已经就绪接下来就是让 OpenClaw 真正跑起来。