最近身边好几个朋友都在折腾Windows10本地部署OpenClaw,我一开始以为又是什么拿来练手的玩具,结果自己上手试了一周,发现这东西确实是把本地大模型和日常电脑操作连接起来最顺手的方案之一。简单说,OpenClaw是一个本地Agent运行时,它把大模型、工作目录、工具脚本整合成一个能自主拆解任务、读写文件、执行命令的AI助手,而不再是那个只会聊天的对话框。这篇文章就围绕Windows10本地部署OpenClaw这件事,把我踩过的坑、验证过的安装流程、模型对接方法、权限配置和安全机制一次性讲清楚。适合想把AI真正变成“干活的工具”、又不想把私有数据丢给云端服务的人参考,也适合刚接触本地部署大模型的开发者照着抄作业。
1. 部署前先搞明白:OpenClaw到底解决什么问题
1.1 它不是一个聊天框,是一个“会干活的Agent运行时”
很多人第一次听到OpenClaw,第一反应是“又一个ChatGPT套壳”,其实完全是两码事。普通聊天工具的链路是“用户提问-模型回答-结束”,所有过程都发生在对话框里。OpenClaw更像一个中介层,它本身不提供模型,只负责把模型的能力释放到真实环境中:你给它一个目标,比如“整理桌面上的所有报告并生成摘要”“把某个文件夹里的图片统一改名”“写一个批量重命名脚本并运行”,它会自己拆解步骤、选择一个合适的模型来推理、访问工作目录下的文件、调用shell命令或脚本,最后给你交付结果。
类比一下:大模型是大脑,OpenClaw是手和脚,Workspace是工位,Skills是挂在墙上的工具箱。没有OpenClaw,你只能把大脑当成百科全书来查;有了它,大脑终于能动手干活了。这也是为什么它特别适合“本地部署”这个场景——你希望这个Agent掌握足够多的上下文、操作足够多的本地资源,而这些数据如果全走云端接口,既慢又不安全。
1.2 为什么偏要挑Windows10做本地部署
按理说,Agent这类工具在Linux和macOS上生态更成熟,但现实中还有大量用户的主力机器就是Windows10。很多人手头只有一台办公室电脑或旧笔记本,系统停在Windows10不想升级,又眼馋AI Agent的能力,于是“Windows10本地部署OpenClaw”就成了一种非常实际的需求。
Windows10本地部署有一个天然优势:环境隔离相对好做。OpenClaw默认把工作目录限制在用户目录下,Windows的用户权限管理和目录结构对这种沙箱式设计配合得不错。加上现在Ollama、DeepSeek这类本地模型运行时对Windows支持已经很好,GPU加速、CPU推理都有成熟方案,完全不必为了跑一个Agent去装双系统或者买新机器。
1.3 部署前必须想清楚的边界:模型和Agent是两回事
在动手之前,有一个认知必须掰扯清楚:OpenClaw不捆绑任何模型,你用什么模型、模型跑在哪里,完全由你自己定。它可以接OpenAI、Anthropic这类云端API,也可以接Ollama这种本地模型服务,甚至能接NVIDIA NIM这类推理中间件。
所以本地部署并不等于“必须离线”,而是“你有权选择数据不离开这台机器”。对隐私敏感的人,可以全部走本地模型;对效果要求高且能接受云端服务的人,可以混合使用。这个灵活度也是OpenClaw比较好上手的原因之一。我在下文会重点讲本地模型方案,也就是Ollama加DeepSeek这条路线,因为这是目前Windows10上隐私、成本、效果最均衡的组合。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Windows 10 环境准备与完整安装
2.1 版本检查与系统准备
安装前先确认系统版本。建议使用64位的Windows 10 22H2,虽然旧版本不一定装不上,但22H2对PowerShell 7、WSL、Ollama这些组件的兼容性最稳定。检查方法很简单:按Win+R输入winver,弹出窗口里能看到系统版本和内部版本号。如果你的版本比较老,建议先把系统更新到22H2再开始,避免后续出现莫名其妙的环境兼容错误。
顺带提醒一句:不要在未激活或精简版的Windows上部署这类工具。精简版系统通常会阉割组件,比如缺少运行库、禁用PowerShell远程签名等,这些都会让安装过程多出很多不可控问题。使用正常渠道激活的正版系统,至少能省去一半排查时间。
如果你是在虚拟机里装Windows10来跑OpenClaw,建议至少分配4核CPU和8GB内存,磁盘剩余空间预留30GB以上。我实测4GB内存跑7B模型非常勉强,模型加载后系统基本卡死,8GB是底线,16GB体验才比较顺滑。
2.2 装好三个基础依赖:PowerShell、Git、Node.js
OpenClaw在Windows上的安装和运行依赖几个基础组件,缺失任何一个都会在安装时报错。先把它们一次性装好,后面会省很多事。
第一个是PowerShell 7,Windows10自带的Windows PowerShell 5.1理论上也能跑,但官方脚本和部分技能组件对7.x的兼容性更好。安装方式直接用winget:
powershell复制winget install --id Microsoft.PowerShell --source winget
装完以后,新开的终端就是PowerShell 7了。注意不要在Windows PowerShell 5.1里强行跑安装脚本,某些语法在5.1里会直接解析失败,报错信息还特别抽象。
第二个是Git。OpenClaw的Skills机制经常要从模板仓库拉取技能内容,没有Git会卡在技能拉取阶段。
powershell复制winget install --id Git.Git -e --source winget
第三个是Node.js LTS版本。OpenClaw的运行时和部分内置Skill依赖Node环境,安装LTS版本最稳妥,不要追最新版,Agent运行讲究稳定性。
powershell复制winget install --id OpenJS.NodeJS.LTS --source winget
装完之后全部重启一次终端,让环境变量生效。这时候可以用下面的命令检查版本,确认都在:
powershell复制pwsh --version
git --version
node --version
2.3 安装OpenClaw本体
OpenClaw在Windows上的官方安装方式是PowerShell脚本。打开PowerShell 7,先调整执行策略,允许本地脚本运行:
powershell复制Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
然后执行官方安装脚本,脚本地址以OpenClaw官方文档为准。常见的PowerShell安装写法是irm 脚本地址 | iex。如果你想知道能不能指定安装目录,我遇到的情况是:安装器会把可执行文件放到用户目录,但工作区和配置则统一放在C:\Users\你的用户名\.openclaw下,目前没看到官方支持自定义整个根目录的选项,所以建议直接按默认路径来,避免后续升级时路径对不上。
安装过程如果顺利,最后会提示你重启终端。然后验证一下是否装好:
powershell复制openclaw --version
能正常打印版本号就说明安装成功了。如果提示“command not found”,多半是安装目录没有加入PATH,检查一下用户环境变量里是否有OpenClaw的安装路径。
2.4 安装后的目录结构与验证
OpenClaw装好以后,会在你的用户目录下自动生成一个.openclaw文件夹,这个文件夹就是它的家。不同版本结构略有差别,但核心目录一般包括:
workspace:Agent默认的操作目录,所有文件读写都默认限定在这个目录里skills:技能目录,每个子文件夹就是一个技能exec-approvals.json:命令执行审批清单,记录哪些命令被允许直接运行config.json或config.yaml:模型和运行配置
我第一次安装完,最直观的感觉是“干净”。它没有往系统目录里乱塞东西,所有状态都收敛在用户目录内。这种方式的好处是备份和还原都很容易,整个.openclaw文件夹打包拷走,换一台机器解压,再重新配置一下模型就能继续用。
验证安装是否真的能干活,可以先初始化一个测试任务目录:
powershell复制openclaw init test-project
执行后如果生成了对应的目录结构,说明核心流程是通的。这一步建议必做,它能提前暴露路径权限、系统组件缺失等问题,比等到接完模型再排查要快得多。
3. 接入模型后端:Ollama + DeepSeek 本地组合
3.1 先想清楚:用云端API还是本地模型
OpenClaw支持多种模型后端,但Windows10本地部署这个话题下,最值得讨论的是本地模型方案。我先说结论:如果你的电脑内存16GB以上、有NVIDIA显卡,那直接用本地模型,体验非常完整;如果机器配置一般,那就接云端兼容API,功能不受影响,只是数据会离开本地。
两条路线的差别可以看这张表:
| 对比维度 | 本地模型方案(Ollama) | 云端API方案(OpenAI兼容接口) |
|---|---|---|
| 隐私性 | 数据不出本机,完全可控 | 依赖第三方服务协议 |
| 离线可用 | 可以,模型加载后断网也能跑 | 不行,必须联网 |
| 单次成本 | 电费和硬件折旧 | 按Token计费,长期使用成本高 |
| 响应速度 | 看硬件,中等配置2-5秒出首字 | 看网络,通常1-3秒出首字 |
| 模型能力上限 | 受限于本机显存,一般跑14B以下量化模型 | 可用百B级以上大模型,能力更强 |
| 配置难度 | 中等,需要调Ollama和OpenClaw两处 | 简单,填一个API Key基本完事 |
我自己的选择是本地模型为主,关键任务接云端模型备用。日常的文本整理、脚本生成、文件操作,7B到14B的量化模型完全够用。
3.2 Ollama部署与模型选择
Ollama是目前Windows10上跑本地模型最省心的工具,没有之一。安装同样用winget:
powershell复制winget install --id Ollama.Ollama --source winget
安装完成后,Ollama会自动在后台启动一个本地服务,默认监听localhost:11434。可以用下面的命令拉取DeepSeek的蒸馏版模型:
powershell复制ollama pull deepseek-r1:7b
如果你想体验更好一点,显存足够就上14B或32B:
powershell复制ollama pull deepseek-r1:14b
ollama pull deepseek-r1:32b
模型大小的选择逻辑其实很简单:7B适合8GB内存、无独显的机器,速度尚可;14B适合16GB内存或6GB以上显存,效果和速度相对平衡;32B以上建议有12GB以上显存再碰,CPU硬扛会慢到怀疑人生。
拉取模型的时候注意磁盘空间,7B模型大约4.7GB,14B大约9GB,32B大概20GB起步。C盘空间不足的话,可以在安装Ollama时把模型目录改到其他盘,环境变量里设置OLLAMA_MODELS指向新路径。
3.3 配置文件对接OpenClaw
Ollama这边准备好了,接下来就是让OpenClaw知道怎么调用它。打开OpenClaw的配置文件C:\Users\你的用户名\.openclaw\config.json,把模型信息填进去。不同版本的配置字段可能有差异,但大逻辑一致,我的配置如下,格式是JSON:
json复制{
"ai": {
"provider": "ollama",
"base_url": "http://localhost:11434",
"model": "deepseek-r1:7b",
"temperature": 0.7,
"max_tokens": 4096,
"context_window": 8192
},
"workspace": "C:\\Users\\Administrator\\.openclaw\\workspace"
}
注意事项我摆在前面:如果你的OpenClaw版本不是用JSON而是用YAML,字段名基本差不多,provider、base_url、model这三个是核心,其他参数可以先用默认值。
这里有个小技巧:不要只配置一个模型。OpenClaw通常允许多个模型按场景切换,比如用7B做日常文件操作,用14B做复杂推理。配置方法一般是在配置里增加多个模型条目,具体字段以你安装版本自动生成的示例配置为准。
如果你已经接入了NVIDIA NIM这类推理服务,配置思路也一样,把provider改成对应的兼容类型,base_url指向NIM服务的地址就行。OpenClaw对OpenAI兼容接口的适配做得不错,大多数推理服务都能通过这一层接进来。
3.4 让Agent真正跑通一个任务的完整测试
模型配置好以后,先做一个最简单但完整的测试,验证整条链路。在终端里进入workspace目录:
powershell复制cd C:\Users\Administrator\.openclaw\workspace
openclaw run "写一个Python脚本,读取当前目录下的所有txt文件,统计每个文件的行数,输出到result.txt"
正常情况下,OpenClaw会先拆解任务,把任务步骤打印出来,然后调用DeepSeek生成脚本、写入文件、执行、给出结果。如果第一次运行报错说模型连接失败,先检查Ollama服务有没有在跑:
powershell复制curl http://localhost:11434
能返回Ollama is running之类的响应,就说明服务正常。如果Ollama没起来,手动启动一下:
powershell复制ollama serve
我在第一次测试时遇到过一个很隐蔽的坑:Ollama装了但没设成开机自启,重启电脑以后OpenClaw显示“模型连接超时”,排查了半天才发现是Ollama没起来。后来我把Ollama加到启动项里,再也没有这个问题。
4. Workspace、Skills与文件操作安全
4.1 Workspace为什么默认在用户目录
OpenClaw默认把工作区放在C:\Users\你的用户名\.openclaw\workspace,这不是随便定的,而是有意为之的安全边界。Agent在执行任务时,文件读写默认限定在这个目录内,避免它越过边界去乱动你系统盘里的文件。你可以把它理解成给Agent划了一个“工位”,它只能在这个工位里折腾。
实际使用中,你可以按项目建子目录,比如workspace\report、workspace\scripts,这样OpenClaw在拆解任务时能更精准地定位文件,也方便你事后审查它到底做了哪些改动。不要一股脑把所有文件都堆在workspace根目录下,文件一多,Agent自己都会被搞晕。
如果你想让OpenClaw访问其他目录下的文件,我建议不要直接改全局workspace路径,而是在任务里明确给出文件路径。比如“把D盘某个目录下的文件备份到workspace”,这样既能让它完成任务,又不破坏安全边界。
4.2 编写第一个Skill
Skills是OpenClaw最有价值的设计之一,它相当于给Agent预置一套“做某类事情的标准动作”。拿整理Excel报表举例,你每次都要跟模型解释“读取文件、去掉重复行、计算总计、输出新文件”这一整套流程,有了Skill之后,只要一句“用报表整理技能处理当前目录下的所有表格”就够了。
编写一个Skill非常容易,在skills目录下新建一个文件夹,比如skill-format-table,里面放一个说明文件和脚本或提示词模板。说明文件描述这个技能是干什么的、怎么调用,脚本或模板则是具体的处理逻辑,格式上支持Python脚本、PowerShell脚本或者纯提示词。
我第一次写Skill时用的是最简单的纯提示词模板,效果已经不错。核心是让说明文件尽量具体,写清楚输入是什么、输出是什么、处理规则是什么,这样模型调用时不容易跑偏。写好后重启OpenClaw,或者重新加载技能列表,就能在对话中使用了。这个机制很值得花时间琢磨,每沉淀一个自己常用的Skill,后续使用效率就是成倍提升。
4.3 exec-approvals.json 命令审批机制解读
用过OpenClaw的人基本都见过exec-approvals.json这个文件,它是命令审批机制的配置文件。OpenClaw在执行命令前会检查命令是否在允许列表里,不在列表里的命令就会进入审批流程,等用户确认后才执行。
这个设计的价值很明显:模型生成代码能力再强,也不能保证每次生成的命令都是安全的。如果让Agent拿到管理员权限随意执行任何命令,哪天模型生成了一条Remove-Item -Recurse而且路径拼接错了,那基本就是灾难。审批机制相当于给Agent的操作加了一层人工确认,尤其是删除、格式化这类高危操作,必须人工点头才执行。
实际使用中,对高频且安全的命令,可以手动写进exec-approvals.json里的白名单,减少打断次数。比如python、Get-ChildItem、Read-Host这类只读或不影响系统的命令,直接放行;Remove-Item、Format-*、Set-ExecutionPolicy这类命令继续保持审批。这个平衡点需要你自己摸索,我的原则是“读操作放行,写操作谨慎,删操作必审”。
另外一个常见问题是:升级OpenClaw后,如果看到类似“legacy exec approvals exist at /root/.openclaw/exec-approvals.json”的提示,说明配置文件可能是从旧版本或者从Linux环境迁移过来的,路径还指向/root/。这种情况不要直接删文件,用官方提供的迁移命令处理,一般类似openclaw exec-approvals migrate,或者查一下当前版本的帮助文档。如果实在没有迁移命令,备份旧配置后删掉让程序重新生成,再手动补充白名单,问题也不大。
5. 常见问题排查与避坑记录
5.1 安装与启动阶段的典型问题
这个阶段遇到最多的问题是PowerShell执行策略拦截和命令找不到。
安装脚本跑不了,大概率是执行策略问题。安装前先执行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser,注意别开Unrestricted,安全还是要有底线的。
装完以后输入openclaw提示不是内部或外部命令,先说结论:检查PATH。把OpenClaw的安装目录加到用户PATH里,然后重启终端。还有一个容易忽略的原因Node没装好,OpenClaw运行依赖Node,node --version必须能正常输出版本号。遇到过有人Node装了但环境变量没刷新,重启终端就正常了。
还有一个非常偏门但真实的坑:Windows10的路径长度限制。OpenClaw的workspace路径本来就长,如果用户名再长一点,再加上项目子目录,很容易超过260个字符的路径上限,导致Agent创建文件时报错。解决方法是在注册表里启用长路径支持,路径是HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled,设为1。改完重启生效。
5.2 模型调用与响应异常排查
模型接不上或者响应异常,是本地部署最让人头大的问题。按我的排查顺序来,基本能解决九成问题:
第一步查Ollama服务。curl http://localhost:11434,没响应就先启动Ollama。第二步查配置。config.json里的base_url是不是http://localhost:11434,端口是否有修改,模型名是否和ollama list里看到的一致。最容易错的是模型名,比如写成deepseek-r1:7B大小写错误,Ollama不认,直接报模型不存在。第三步查项目目录权限。workspace目录如果被Windows用户账户控制拦截,OpenClaw创建文件会静默失败,表现就是Agent说“已经写好了”但文件其实不存在。确认一下workspace目录的写权限,或者右键目录在属性里放开当前用户完全控制。第四步看日志。OpenClaw一般会在.openclaw目录下输出运行日志,报错信息会比终端里的更详细,遇到疑难问题直接翻日志。
5.3 运行效率与使用习惯优化
跑顺了以后,效率问题就浮出来了。我用了一段时间,总结了几个非常实用的调优经验。
第一,模型别贪大。7B能解决的事不要上14B,14B能解决的事不要硬上32B。尤其是在CPU推理的机器上,模型加大一倍,推理时间可能翻三倍。先用小模型跑通流程,确认复杂度和效果不够时再慢慢加码。
第二,给模型足够的上下文窗口。OpenClaw默认的上下文窗口可能偏小,如果任务涉及大量文件内容,模型“记不住”前面读过的内容,就会反复漏细节。把context_window调到8192或更高,能明显改善长任务的稳定性。代价是显存占用会上升,注意你自己的硬件余量。
第三,把重复任务沉淀成Skill。这点我再强调一次,真的重要。每周花一点时间回顾这周让Agent重复做过什么,把高频流程写进Skill,长期下来节省的时间极其可观。
第四,定期备份.openclaw配置目录。配置、Skills、审批白名单都在这里,备份好整个目录,重装系统或换机器的时候能少折腾几个小时。我自己的习惯是导出成压缩包放到非系统盘,每周更新一次。
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| 安装脚本无法运行 | PowerShell执行策略限制 | Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,再执行 |
| openclaw命令找不到 | 安装目录未加入PATH | 手动把安装目录加入用户PATH,重启终端 |
| 提示Node相关错误 | Node.js未安装或版本过旧 | 安装Node.js LTS并重新打开终端 |
| 模型连接超时 | Ollama服务未启动 | 先curl http://localhost:11434,再ollama serve |
| 模型报错“model not found” | 模型名拼写错误或未拉取 | 用ollama list核对模型名,确认已拉到本地 |
| Agent说写完文件但文件不存在 | workspace目录无写权限 | 放开workspace目录的完全控制权限 |
| 任务到一半遗忘上下文 | context_window太小 | 在配置里增大上下文窗口数值 |
| 路径过长报错 | Windows长路径未开 | 注册表启用LongPathsEnabled,重启系统 |
| 命令执行每次都弹审批 | 命令不在白名单 | 将安全命令写入exec-approvals.json白名单 |
| Legacy审批文件报错 | 配置从旧版本/Linux迁移 | 运行官方迁移命令,或备份后重新生成配置 |
6. 写在最后:一点真实体会与扩展玩法
OpenClaw在Windows10上的本地部署,本质上是一次“AI落地实操”的演练。我实际用下来,最大的感受是它把“模型能力”和“动手能力”成功打通了。以前想整理一批文档、批量处理表格、把零散信息汇总成报告,要么写一堆一次性脚本,要么手动复制粘贴到聊天工具里来回倒腾。现在直接一句话丢给它,然后检查结果就行。偶尔生成的脚本第一次跑不过,稍微改一下参数就好,比自己从零写快太多了。
如果你已经部署成功,我建议下一步从这两个方向展开:一是尝试接更多本地工具,比如定时任务、邮件客户端、本地知识库,让OpenClaw能调用的资源更丰富;二是维护一套自己的Skills库,把工作中重复的流程一点点沉淀进去。这个工具的价值不是装完那一刻体现的,而是在你持续喂它工作习惯之后,它带来的回报只会越来越多。
