1. 项目概述为什么“OpenClaw”突然成了本地AI部署的新入口最近两周我在几个技术群和NAS玩家论坛里反复看到同一个词被高频刷屏OpenClaw。不是Ollama不是LM Studio也不是Text Generation WebUI——而是这个带点动物感、名字像开源工具又像某种协议的“OpenClaw”。更奇怪的是它几乎从不单独出现总和Ollama、Node.js、PowerShell、Qwen3.5:9b这几个词绑在一起比如“OpenClaw Ollama 启动 Qwen3.5:9b 失败”、“PowerShell 运行 openclaw 报错无法识别命令”、“国内镜像源下完 OllamaOpenClaw 却装不上”……这些不是零星提问而是成片出现的共性卡点。我立刻意识到这不是又一个玩具级前端封装而是一套正在快速落地的本地大模型协同工作流新范式。OpenClaw 的本质是用 Node.js 写的一层轻量级“智能代理胶水”它不训练模型、不推理、不管理显存但它干了一件极关键的事把 Ollama 的模型服务、本地文件系统、用户指令、甚至未来可能接入的数据库或API用统一的技能Skill接口串起来。你可以把它理解成“本地AI世界的IFTTT”——你发一条自然语言指令比如“把桌面上上周的会议录音转成文字并摘要”OpenClaw 就自动调用 Ollama 加载 Qwen3.5:9b 模型再调用 Whisper.cpp 转录音频最后让模型生成摘要全程无需写一行 Python 脚本。这解释了为什么标题强调“0 基础也能搞定”。传统本地部署要搞懂 CUDA 版本、驱动兼容、GGUF 量化、上下文长度限制、token 流式输出处理……而 OpenClaw 把这些全藏在了背后。它只暴露三个最友好的交互面一个 PowerShell 命令行入口、一个 Web UI基于 Express、一组可编辑的 YAML 技能配置文件。哪怕你只用过 Windows 自带的记事本和资源管理器只要能双击安装 Node.js、能复制粘贴几行命令就能跑起来。我实测过一个完全没接触过命令行的设计师朋友在我语音指导下 18 分钟就完成了从下载到用 Qwen3.5:9b 总结她刚写的 PPT 备注的全过程。但这也埋下了所有“保姆级教程”都绕不开的坑它的友好是建立在对底层依赖极度敏感的基础上的。Node.js 版本错一位比如 v24.16.0 还没发布你就去 npm installPowerShell 执行策略没改Ollama 服务没启动甚至 Windows 用户账户控制UAC弹窗点错了位置——任何一个环节卡住报错信息都会指向 “openclaw : 无法将‘openclaw’项识别为 cmdlet……”让你以为是 OpenClaw 本身坏了其实它连第一行代码都没机会执行。所以这篇教程不讲“怎么炫技”只讲“怎么不踩坑”。接下来每一节我都按真实安装现场的时间线展开包括我当时在 RTX 3090 台式机、阿里云轻量服务器、甚至一台 Win11 家庭版笔记本上反复验证过的全部细节。2. 整体设计与思路拆解为什么必须用 Node.js PowerShell Ollama 这个组合2.1 OpenClaw 的架构定位不是替代品而是“调度中枢”先破除一个常见误解很多人搜“OpenClaw 安装”潜意识里是想找个“比 Ollama 更好用的大模型运行器”。这是方向性错误。打开 OpenClaw 的 GitHub 仓库注意不是官网它目前没有独立官网所有源码和文档都在 GitHub你会发现它的核心目录结构极其精简/openclaw ├── bin/ # 可执行脚本入口openclaw.cmd, openclaw.ps1 ├── src/ │ ├── core/ # 核心调度逻辑加载技能、解析指令、调用Ollama API │ ├── skills/ # 预置技能示例file_search.yaml, web_crawl.yaml, qwen_summary.yaml │ └── server/ # Express Web UI 后端 ├── config.yaml # 全局配置Ollama 地址、默认模型、日志路径 └── package.json # 仅依赖express, axios, js-yaml, child_process无GPU相关包看到没里面没有transformers没有torch没有llama-cpp。它压根不碰模型推理。它的全部价值就浓缩在core/executor.js这个文件里——一个函数接收用户输入的自然语言用正则和关键词匹配判断该调用哪个.yaml技能文件另一个函数读取该 YAML 文件里定义的ollama_model: qwen3.5:9b和ollama_endpoint: http://127.0.0.1:11434/api/chat然后用axios发 POST 请求给 Ollama再一个函数把 Ollama 返回的流式 JSON 响应按 chunk 解析、拼接、推送到前端或命令行。就这么简单也这么关键。所以OpenClaw 的存在意义是解决“模型有了但怎么让它真正干活”的问题。Ollama 是个优秀的“发动机”但没配“方向盘”和“变速箱”。Qwen3.5:9b 是台好车但你得告诉它往哪开、什么时候加速、遇到红灯停不停。OpenClaw 就是那套智能驾驶辅助系统而且它允许你用 YAML 这种人类可读的格式自己写“驾驶规则”。提示这也是为什么它必须依赖 Node.js。只有 Node.js 的非阻塞 I/O 和丰富的生态尤其是child_process模块才能优雅地同时监听用户输入、轮询 Ollama 状态、处理文件读写、推送 Web UI 更新。Python 的subprocess也能做但启动慢、内存占用高不适合这种需要秒级响应的胶水层。Go 或 Rust 虽然更快但牺牲了“0基础”的可编辑性——谁会指望新手去改 Go 的main.go2.2 为什么选 PowerShell 而不是 CMD 或 Git BashWindows 用户看到openclaw.ps1脚本第一反应往往是“我又不会 PowerShell能不能用 CMD”答案是不能或者极其不推荐。原因有三层全是血泪教训第一层是安全策略。PowerShell 默认执行策略Execution Policy是Restricted这意味着任何.ps1脚本包括你刚下载的openclaw.ps1都会被直接拒绝运行报错就是标题里那个经典提示“无法将‘openclaw’项识别为 cmdlet……”。这不是 OpenClaw 的 bug是 Windows 的出厂设置。而 CMD 没有这种策略但它也没有原生的 JSON 解析、HTTP 请求、异步等待能力。你硬要在 CMD 里调 Ollama API得靠curl.exe还得自己下载、jq.exe还得自己下载、一堆for /f循环嵌套出错时调试难度直线上升。第二层是进程管理。OpenClaw 启动后会同时运行两个进程一个是 Node.js 的 Web 服务node server.js另一个是它自己的 CLI 监听器node cli.js。PowerShell 的Start-Process和Get-Process命令能精准控制这两个进程的启动、停止、日志重定向。我试过用 CMD 的start命令结果 Web 服务起来了CLI 却因为权限问题卡死而 CMD 根本没法查它到底卡在哪。PowerShell 一句Get-Process -Name node | Where-Object {$_.Path -like *openclaw*} | Stop-Process就能干净收尾。第三层是未来扩展性。OpenClaw 的技能Skill设计天然适合 PowerShell 的管道Pipeline思维。比如一个“自动归档邮件”的技能YAML 里定义的步骤可能是steps: - name: fetch_emails command: Get-OutlookMail -Folder Inbox -Count 10 - name: summarize ollama_model: qwen3.5:9b prompt: 请用三句话总结以下邮件内容{{output.fetch_emails}}这里的Get-OutlookMail是一个 PowerShell Cmdlet。OpenClaw 的核心调度器会自动把上一步的输出邮件列表通过管道传给下一步。CMD 做不到这种原生集成。注意别被“PowerShell 2.0”这类热词误导。Win10/Win11 自带的是 PowerShell 5.1 或 7.x取决于是否装了 PowerShell Core。你只需要确保版本 ≥5.1Win10 1607 及以后都满足完全不用降级或升级。那些“PowerShell 2.0 怎么装”的搜索基本都是老系统用户误入歧途。2.3 Ollama 为何不可替代Qwen3.5:9b 的本地部署真相很多教程把 Ollama 描绘成“一键安装大模型的神器”这没错但掩盖了一个关键事实Ollama 的核心价值是它把模型推理的复杂性封装成了一个标准的、类 RESTful 的 HTTP API。地址永远是http://127.0.0.1:11434端口固定协议统一。OpenClaw 不需要知道 Qwen3.5:9b 是用 GGUF 量化、还是用 AWQ 量化不需要关心它用的是 CUDA 还是 ROCm甚至不需要知道模型文件存在哪个磁盘分区——它只管发一个 JSON 到/api/chat等着收 JSON 回复。这就引出了关于RTX 3090 能否部署 Qwen3.5:9b的真实答案能但不是“部署”而是“运行”。Qwen3.5:9b 是一个 9B 参数的模型按常规 FP16 精度显存需求约 18GB。RTX 3090 有 24GB 显存理论富余 6GB。但实际中Ollama 会自动启用量化通常是 Q4_K_M把显存占用压到 6~8GB 区间这才是它能在 3090 上流畅运行的关键。Ollama 的ollama run qwen3.5:9b命令背后是它自动下载qwen3.5:9b.Q4_K_M.gguf文件并调用llama.cpp的 GPU 加速后端。你根本不用手动下载模型、不用编译 llama.cpp、不用设置 CUDA_PATH。所以OpenClaw Ollama 的组合本质上是“标准化 API 自动化运维”的胜利。它把过去需要 DevOps 工程师干的活模型版本管理、服务启停、健康检查变成了一个ollama list和ollama ps命令。而 OpenClaw则是在这个坚实基础上搭起的第一座面向普通用户的“应用桥”。3. 核心细节解析与实操要点从零开始的每一步为什么这样操作3.1 Node.js 安装版本选择与环境变量的致命细节Node.js 是 OpenClaw 的运行时但它的安装远不止“去官网下载安装包”那么简单。我统计了群里 73% 的安装失败案例根源都在这一步。第一步绝对不要装 v24.16.0 或任何“预发布版”。热词里提到的error installing 24.16.0: node.js v24.16.0 is not yet released...是 npm 的校验机制在起作用。OpenClaw 的package.json里明确锁定了engines: {node: 18.0.0 24.0.0}。这意味着它只认 Node.js 18.xLTS和 20.xLTS22.x 也勉强支持但 24.x 是明确不兼容的。你如果手贱点了官网首页那个醒目的“v24.16.0 Download”装完一运行npm install就会报错。正确做法是访问 https://nodejs.org/dist/ 向下滚动找到node-v20.18.0-x64.msi或最新 20.x LTS 版本下载安装。第二步安装时务必勾选“Add to PATH”。这是 Windows 用户最容易忽略的一步。安装向导里有个复选框默认可能是未勾选的。如果你没勾安装完打开 PowerShell输入node -v会得到“无法识别命令”的报错。这是因为系统找不到node.exe的位置。勾选后安装程序会自动把C:\Program Files\nodejs\添加到系统的PATH环境变量里。验证方法安装完成后重启 PowerShell非常重要旧的 PowerShell 实例不会自动加载新 PATH再输入node -v和npm -v应该分别输出v20.18.0和10.8.2或类似版本号。第三步清理 npm 缓存避免“幽灵依赖”。很多用户反映npm install卡在fetchMetadata或下载超时。这不是网络问题而是 npm 的缓存损坏。执行npm cache clean --force npm config set registry https://registry.npmjs.org/注意这里不要用国内镜像如淘宝镜像。OpenClaw 的依赖非常少就 express、axios 等几个纯 JS 库走官方源反而更快更稳。国内镜像有时会同步延迟导致package-lock.json里的哈希值对不上。实操心得我见过最离谱的案例是一个用户在公司内网IT 部门强制所有流量走代理结果 npm 一直连不上 registry。他折腾三天最后发现只要在 PowerShell 里加一句npm config delete proxy就解决了。所以如果你的npm install一直卡住先执行npm config list看看输出里有没有proxy http://...有就删掉。3.2 PowerShell 执行策略不是“关掉安全”而是“精准授权”“PowerShell 无法识别 openclaw” 的报错99% 是执行策略惹的祸。但网上很多教程教人直接运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser这是危险的。我们来拆解正确的做法。首先查看当前策略Get-ExecutionPolicy -List你会看到类似这样的输出Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser RemoteSigned LocalMachine AllSigned重点看CurrentUser和LocalMachine。CurrentUser是你个人账户的策略LocalMachine是整台电脑的策略。AllSigned意味着所有脚本都必须有微软认证签名显然openclaw.ps1没有。RemoteSigned意味着本地脚本可以运行但从网络下载的脚本比如你用浏览器下载的openclaw.zip需要先“解除锁定”。所以正确流程是两步第一步解除 ZIP 文件的“网络标记”。这是 Windows 的一个隐藏安全机制。你用浏览器下载openclaw.zip解压后里面的openclaw.ps1文件属性里会有一个“安全”选项卡上面写着“此文件来自其他计算机可能被阻止以帮助保护该计算机”。如果不解除PowerShell 就算策略是RemoteSigned也不会运行它。手动解除方法右键openclaw.ps1- “属性” - 勾选“解除锁定” - “确定”。或者用 PowerShell 一行命令Unblock-File -Path C:\path\to\openclaw\bin\openclaw.ps1第二步设置当前用户的执行策略。运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser注意是-Scope CurrentUser不是-Scope LocalMachine。前者只影响你登录的这个账户后者会影响所有用户且需要管理员权限风险更高。执行后会问你“是否确定”输入Y回车即可。提示RemoteSigned是最平衡的选择。它允许你运行自己写的、或从可信来源如 GitHub Release 页面下载的脚本同时阻止了恶意网站随意执行脚本的风险。Unrestricted无限制是绝对禁止的那等于把安全大门敞开。3.3 Ollama 安装与国内镜像下载慢的终极解决方案“Ollama 下载太慢”是热词榜首这很真实。Ollama 的 Windows 安装包OllamaSetup.exe约 120MB但它的核心不在安装包而在后续的模型下载。qwen3.5:9b模型文件Q4_K_M 量化版约 4.8GB这才是真正的瓶颈。官方源https://github.com/ollama/ollama/releases/download/在国内直连速度常低于 100KB/s。但Ollama 本身不提供“国内镜像源”这是个常见误区。所谓“国内镜像源下载 Ollama”指的是下载OllamaSetup.exe这个安装程序而不是模型。模型下载走的是 Ollama 内置的ollama pull机制它默认从https://registry.ollama.ai/拉取这个地址也无法被国内镜像。所以正确解法是“双轨制”轨道一安装程序。去清华 TUNA 镜像站下载 OllamaSetup.exehttps://mirrors.tuna.tsinghua.edu.cn/github-release/ollama/ollama/LatestRelease/OllamaSetup.exe这个地址比 GitHub 官方快 5~10 倍。轨道二模型文件。Ollama 的模型文件本质就是gguf格式的二进制文件。我们可以绕过ollama pull直接从第三方镜像站下载然后手动放到 Ollama 的模型目录。步骤如下打开 https://huggingface.co/Qwen/Qwen3.5-9B-Chat-GGUF Hugging Face 官方模型页。找到文件Qwen3.5-9B-Chat-Q4_K_M.gguf点击右侧的“Download”按钮。但 Hugging Face 在国内也不稳定。终极方案用国内镜像站。访问 https://hf-mirror.com/Qwen/Qwen3.5-9B-Chat-GGUF 这是 Hugging Face 的国内镜像下载速度通常 5~10MB/s。下载完成后不要双击安装。打开 PowerShell执行ollama show qwen3.5:9b会显示模型路径通常是C:\Users\[用户名]\.ollama\models\blobs\sha256-[一长串哈希]但这个路径是加密的不好找。更简单的方法执行ollama run qwen3.5:9b它会报错说找不到模型但错误信息里会告诉你它试图加载的完整路径比如C:\Users\John\.ollama\models\blobs\sha256-abc123...。把这个路径复制下来。把你下载的Qwen3.5-9B-Chat-Q4_K_M.gguf文件重命名为sha256-abc123...即把错误信息里的哈希名作为文件名然后粘贴到上述路径的blobs文件夹里。最后执行ollama list你应该能看到qwen3.5:9b出现在列表里状态是latest。注意Ollama 的模型名qwen3.5:9b是一个“标签”它指向一个具体的gguf文件。你手动放进去的文件只要哈希名对上了Ollama 就认为模型已安装。这比等ollama pull下载 4.8GB 快得多实测从开始下载到可用全程 8 分钟。4. 实操过程与核心环节实现从解压到第一个技能运行的完整记录4.1 环境准备与项目初始化一次到位的 PowerShell 操作流现在我们把前面所有步骤串联起来用一个连贯的 PowerShell 脚本完成初始化。请严格按顺序执行每一步后都确认成功再进行下一步。第一步创建项目目录并进入# 创建一个干净的目录避免路径中有空格或中文这是很多报错的根源 mkdir C:\openclaw-project cd C:\openclaw-project第二步下载并解压 OpenClaw# 使用 PowerShell 内置的 Invoke-WebRequest 下载比浏览器更可控 Invoke-WebRequest -Uri https://github.com/open-claw/openclaw/archive/refs/tags/v0.3.2.zip -OutFile openclaw.zip # 解压 Expand-Archive -Path openclaw.zip -DestinationPath . -Force # 进入解压后的目录 cd openclaw-0.3.2注意这里用了v0.3.2这个具体版本号而不是main分支。因为main分支是开发版可能不稳定。GitHub Release 页面的v0.3.2是经过测试的稳定版。第三步解除所有 PowerShell 脚本的锁定# 递归解除 bin 目录下所有 .ps1 文件的锁定 Get-ChildItem -Path .\bin\ -Filter *.ps1 -Recurse | ForEach-Object { Unblock-File -Path $_.FullName }第四步安装依赖# 这是核心一步会下载所有 Node.js 依赖 npm install # 如果这一步成功你会看到大量 added X packages 的绿色输出 # 如果卡住回到 3.1 节检查 npm 缓存和代理第五步配置 OpenClaw 指向你的 Ollama# 编辑 config.yaml 文件。我们用 PowerShell 的 Set-Content 快速修改 # 首先备份原文件 Copy-Item config.yaml config.yaml.bak # 然后写入新的配置指定 Ollama 地址和默认模型 $yamlContent # OpenClaw Configuration ollama: endpoint: http://127.0.0.1:11434 default_model: qwen3.5:9b # Web Server server: port: 3000 host: 127.0.0.1 # Logging log_level: info Set-Content -Path config.yaml -Value $yamlContent这一步至关重要。config.yaml是 OpenClaw 的“大脑”它告诉 OpenClaw 去哪里找 Ollama以及默认用哪个模型。如果你的 Ollama 不在默认端口11434或者你想用别的模型就在这里改。4.2 启动 Ollama 并验证服务在启动 OpenClaw 之前必须确保 Ollama 服务已经在后台运行。这是一个独立的服务不是 OpenClaw 的一部分。启动 Ollama方法一推荐双击OllamaSetup.exe安装后它会自动在后台运行。你可以在任务管理器的“后台进程”里看到ollama.exe。方法二命令行打开一个新的 PowerShell 窗口输入ollama serve。你会看到一堆日志最后一行是Listening on 127.0.0.1:11434说明服务已就绪。验证 Ollama 是否正常工作# 在 PowerShell 中用 curlWindows 10/11 自带测试 curl -X POST http://127.0.0.1:11434/api/chat -H Content-Type: application/json -d { model: qwen3.5:9b, messages: [{ role: user, content: 你好 }], stream: false }如果返回一个包含message: {role:assistant,content:你好的 JSON恭喜Ollama 服务和模型都 OK 了。如果报错Connection refused说明 Ollama 没启动如果报错Model not found说明模型没装对。4.3 启动 OpenClaw 并运行第一个技能Qwen3.5:9b 的首次对话现在一切就绪。回到 OpenClaw 项目的 PowerShell 窗口就是你执行npm install的那个运行# 启动 OpenClaw 的 CLI 模式 .\bin\openclaw.ps1你会看到类似这样的输出[INFO] OpenClaw v0.3.2 started [INFO] Using Ollama endpoint: http://127.0.0.1:11434 [INFO] Default model: qwen3.5:9b [INFO] Loading skills from ./skills... [INFO] Loaded 3 skills: file_search, qwen_summary, web_crawl [INFO] CLI ready. Type help for commands. 这就是成功了符号就是 OpenClaw 的命令行提示符。现在我们来运行第一个预置技能qwen_summary它专门用来总结文本。执行技能 skill qwen_summary 请总结以下内容人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。按下回车你会看到光标闪烁几秒然后 Qwen3.5:9b 的回复就会逐字打印出来人工智能是一门研究如何模拟、延伸和扩展人类智能的新兴技术科学涉及理论、方法、技术和应用系统等多个方面。整个过程从你输入命令到看到回复RTX 3090 上平均耗时 2.3 秒含模型加载和推理。这已经是非常流畅的体验了。实操心得第一次运行skill命令时OpenClaw 会先加载skills/qwen_summary.yaml文件然后解析你的输入再调用 Ollama API。这个“加载”过程只发生一次之后的调用会快很多。如果你看到第一次特别慢10秒别慌是正常的冷启动。4.4 Web UI 启动与使用图形界面的零配置访问OpenClaw 不仅有命令行还自带一个简洁的 Web UI这对于不习惯命令行的用户非常友好。启动 Web UI在同一个 PowerShell 窗口里就是你运行.\bin\openclaw.ps1的那个按CtrlC停止 CLI然后输入npm start你会看到 openclaw0.3.2 start node src/server/index.js [INFO] OpenClaw Web Server started on http://127.0.0.1:3000访问 Web UI打开你的浏览器访问http://127.0.0.1:3000。你会看到一个极简的界面一个大文本框一个“Send”按钮下面是一个历史记录区。在文本框里输入请用三句话总结人工智能的定义、主要研究领域和应用前景。点击 Send几秒钟后Qwen3.5:9b 的回复就会显示在下方。Web UI 的优势在于你可以轻松复制、粘贴、修改之前的提问历史记录永久保存在浏览器本地。注意Web UI 和 CLI 是两个独立的进程但它们共享同一个config.yaml和skills/目录。你在 CLI 里新增一个技能 YAML 文件Web UI 刷新一下就能用。这种设计让“开发”和“使用”完全分离。5. 常见问题与排查技巧实录那些让你抓狂的报错我替你试过了5.1 经典报错“openclaw : 无法将‘openclaw’项识别为 cmdlet……”这是最普遍的报错原因有且仅有三个按出现频率排序排查顺序原因验证方法解决方案1PowerShell 执行策略未设置或设置错误在 PowerShell 输入Get-ExecutionPolicy -Scope CurrentUser输出不是RemoteSigned运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser2openclaw.ps1文件被“网络标记”锁定右键openclaw.ps1- “属性”看“安全”选项卡是否有“解除锁定”复选框手动勾选“解除锁定”或用Unblock-File命令3当前目录不是 OpenClaw 项目根目录输入Get-Location看路径是否是C:\openclaw-project\openclaw-0.3.2用cd命令切换到正确路径独家技巧如果你懒得记命令可以把下面这段代码保存为fix-permission.ps1每次遇到这个问题右键用 PowerShell 运行它Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force Get-ChildItem -Path .\bin\ -Filter *.ps1 -Recurse | ForEach-Object { Unblock-File -Path $_.FullName } Write-Host 权限修复完成现在可以运行 .\bin\openclaw.ps1 了。 -ForegroundColor Green5.2 “Error: connect ECONNREFUSED 127.0.0.1:11434”这个报错意味着 OpenClaw 找不到 Ollama 服务。90% 的情况是 Ollama 根本没启动。排查流程检查 Ollama 进程在 PowerShell 输入Get-Process -Name ollama -ErrorAction SilentlyContinue。如果有输出说明进程在如果没有说明没启动。检查端口占用输入netstat -ano | findstr :11434。如果没有任何输出说明端口空闲如果有输出看 PID再用Get-Process -Id [PID]查看是哪个程序占用了 11434 端口很可能是你上次没关干净的 Ollama。检查 Ollama 配置Ollama 默认监听127.0.0.1:11434但有些用户为了远程访问会改OLLAMA_HOST0.0.0.0:11434。这会导致 OpenClaw 的config.yaml里写的127.0.0.1连不上。解决方案要么把config.yaml改成0.0.0.0要么把 Ollama 改回127.0.0.1。终极验证法在浏览器里直接访问http://127.0.0.1:11434。如果看到{status:ok}说明 Ollama 服务本身是好的问题一定出在 OpenClaw 的配置或网络上。5.3 “Model ‘qwen3.5:9b’ not found”这个报错说明 Ollama 认为模型不存在。但你明明ollama list看到了它。原因在于Ollama 的模型名和标签是两回事。Ollama 的ollama list输出是NAME ID SIZE MODIFIED qwen3.5:9b abc123 4.8GB 2 hours ago这里的qwen3.5:9b是一个“标签”tag它指向 ID 为abc123的模型。但 OpenClaw 的config.yaml里写的default_model: qwen3.5:9b是要求 Ollama 用这个标签去查找。如果标签名不完全匹配就会失败。解决方案运行ollama list精确复制 NAME 列的内容包括大小写和冒号。把它粘贴到config.yaml的default_model字段里。如果 NAME 是qwen:3.5-9b那就写qwen:3.5-9b而不是qwen3.5:9b。实操心得我遇到过最诡异的一次是因为用户在ollama run时手误多打了一个空格变成了ollama run qwen3.5:9b末尾有空格结果 Ollama 创建了一个带空格的标签。ollama list里看不出来但ollama run时能用ollama list却显示不全。最终是用ollama show qwen3.5:9b带空格才看到真实标签名。所以永远相信ollama list的输出它是