阿里CoPaw Windows本地部署实战:UV+PowerShell+Redis三要素详解
1. 项目概述:这不是又一个“一键安装”噱头,而是真正把阿里CoPaw在Windows上跑通的实操记录
你搜“CoPaw Windows 部署”,页面上全是标题党——“三步搞定”、“秒装成功”、“有手就行”。结果点进去,要么是Linux脚本直接贴过来让你硬改,要么是截图只到PowerShell窗口打开那一步,后面全靠玄学。我试过7个所谓“保姆级教程”,3个卡在UV环境初始化,2个在OpenClaw命令识别失败时报错“无法将‘openclaw’项识别为 cmdlet、函数、脚本文件或可运行程序的名称”,还有2个干脆连Redis服务都起不来,日志里全是“拒绝访问”和“端口被占用”。这根本不是“有手就会”,这是“有耐心才能活下来”。
今天这篇,是我用一台全新的Win11家庭版(没装WSL、没配Docker Desktop、没动过系统策略)从零开始,完整走通阿里CoPaw(即网络所称“阿里版本OpenClaw”)本地部署的全过程。它不叫“保姆级”,它叫“手术级”——每一个报错、每一次重试、每一处Windows特有的权限陷阱,我都记下了。核心就三件事: UV环境必须独立隔离、PowerShell执行策略必须精准放开、OpenClaw的CLI入口必须注册进系统PATH且绕过Windows应用白名单机制 。关键词里的“Windows”“CoPaw”“OpenClaw”“PowerShell”“UV”,不是标签,是五个必须亲手拧紧的螺丝。适合两类人:一类是刚听说CoPaw想本地跑个Demo的技术新人,另一类是被各种“Windows兼容性差”说法劝退、但实际只需要一个能稳定调用Agent技能的轻量级本地工作台的业务侧同学。它不替代Dify或LangChain的复杂编排,但它能让一个Excel表格自动触发天气API+生成周报草稿——就这一件事,它现在就能干。
2. 整体设计思路:为什么非得用UV?为什么PowerShell不能换CMD?为什么Redis不能跳过?
2.1 UV不是“另一个pip”,它是Windows上Python生态的“防抖滤镜”
很多人看到“Windows安装UV”就下意识当成“又一个包管理器”,这是最大的认知偏差。UV在Windows上的核心价值,根本不是“比pip快”,而是 解决Python多版本共存时的路径污染与权限撕裂问题 。举个真实场景:你电脑上既有Python 3.9(公司旧项目),又有Python 3.11(新学的),还装了PyCharm和VS Code。这时候用 pip install openclaw ,它默认往哪个Python的site-packages里写?往哪个Scripts目录里放exe?如果两个Python版本都装了, openclaw 命令到底指向谁?Windows的PATH环境变量会变成一锅粥,而PowerShell的执行策略(ExecutionPolicy)会直接把混杂路径下的脚本判定为“不受信任”,直接拦截。
UV的解法很暴力:它不依赖系统Python,而是用Rust写的二进制,自己管理虚拟环境。执行 uv venv .venv ,它会在当前目录下生成一个完全隔离的 .venv 文件夹,里面包含独立的Python解释器、pip、以及所有依赖的wheel包——全部静态链接,不碰系统注册表,不改全局PATH。我实测过,在Win11家庭版上,用 uv pip install openclaw 装完, .venv\Scripts\openclaw.exe 这个文件是真实存在的、可双击运行的Windows原生可执行文件,不是bat或ps1脚本。这就绕过了PowerShell对脚本执行的层层审查。所以, UV在这里不是“选配”,是Windows部署的强制前置条件——它把Python生态的混沌,压缩成一个干净的.exe文件 。
2.2 PowerShell不是“高级CMD”,它是Windows安全策略的守门员
网上很多教程说“用CMD也行”,纯属误导。CMD在Windows上早已是遗留接口,它根本不理解PowerShell的ExecutionPolicy(执行策略)。而OpenClaw的启动脚本(比如 openclaw serve )内部大量调用 Get-Process 、 Test-NetConnection 、 Start-Service 这类Cmdlet,这些是PowerShell专属的。CMD运行它们,只会返回“不是内部或外部命令”。更关键的是,Windows默认的 RemoteSigned 策略,会阻止所有未签名的.ps1脚本运行——而OpenClaw的CLI工具链里,至少有4个关键.ps1辅助脚本(比如处理Redis连接状态、检查UV环境完整性)。你用CMD,连第一步环境检测都过不去。
PowerShell的正确打开方式,不是“以管理员身份运行”,而是 精准修改当前用户的执行策略,仅对CoPaw项目目录生效 。 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 是底线,但还不够。我踩过的坑是:设完之后, openclaw 命令还是报错,因为PowerShell默认加载的是 CurrentUser 作用域的配置,但当你在项目目录里执行 .\venv\Scripts\openclaw.exe 时,它其实是在调用一个封装了PowerShell逻辑的exe,这个exe启动时会重新读取策略——而它读的是 MachinePolicy (组策略)层级。家庭版用户没组策略编辑器,怎么办?答案是: 用 Bypass 策略,但仅限于当前会话 。命令是 PowerShell -ExecutionPolicy Bypass -Command "& '.\start.ps1'" ,其中 start.ps1 是我们自己写的启动胶水脚本。这招绕过了所有策略检查,又不永久降低系统安全性。
2.3 Redis不是“可选组件”,它是CoPaw Agent技能调度的“交通信号灯”
看到“redis下载安装配置windows”这个热搜词,就知道很多人想跳过Redis。OpenClaw文档里写“Redis is optional”,但在阿里CoPaw的实际实现中, 所有Skill(技能)的异步调用、状态轮询、结果缓存,全部走Redis的Pub/Sub通道 。没有Redis, openclaw skill run weather 这种命令发出去,会卡在“waiting for response”长达30秒,然后超时。不是功能缺失,是整个调度链路断了。
为什么必须用Windows原生版Redis?因为Docker版Redis在Win11家庭版上需要WSL2,而WSL2又要求开启Hyper-V——家庭版默认禁用,开启后可能和VMware/Parallels冲突。我们选的是Microsoft官方维护的Windows版Redis(6.2.6),它是一个单文件 redis-server.exe ,双击就能跑,配置文件 redis.windows.conf 里只需改两行: bind 127.0.0.1 (绑定本地)和 port 6379 (默认端口)。重点来了: Redis服务必须以“当前用户”身份运行,不能用 redis-server --service-install 注册为系统服务 。因为系统服务运行在 LocalSystem 账户下,它没有权限读取我们项目目录里的 .env 文件(里面存着Redis密码),会导致连接认证失败。实测下来,最稳的方式是:写一个 redis-start.bat ,内容就一行 start /min redis-server.exe redis.windows.conf ,把它放在项目根目录,每次部署前双击运行——最小化窗口,后台常驻,权限干净。
3. 核心细节解析与实操要点:从零开始的每一步,都藏着Windows特有陷阱
3.1 UV环境搭建:避开“Permission Denied”和“Path too long”的双重绞杀
UV的Windows安装包( uv-windows-amd64.exe )官网下载后,别急着双击。先做三件事:
- 关掉OneDrive实时同步 :OneDrive会监控
.venv目录,导致UV创建虚拟环境时频繁报“Access is denied”。右键任务栏OneDrive图标→设置→账户→取消勾选“使用Files On-Demand”,或者直接退出OneDrive进程。 - 清空临时目录 :Win+R输入
%TEMP%,删除里面所有以uv-开头的文件夹。UV在初始化时会用临时目录解压Python嵌入式包,如果残留旧版本,会触发“Path too long”错误(Windows路径长度限制260字符,UV的嵌套路径很容易超)。 - 用PowerShell而非CMD进入项目目录 :Win+X选“Windows PowerShell”,然后
cd C:\path\to\copaw-project。千万别用CMD或文件资源管理器地址栏输入powershell,那样启动的是新会话,执行策略不继承。
执行 uv venv .venv 后,如果卡住超过2分钟,大概率是网络问题。UV默认从PyPI下载,但国内直连慢。解决方案不是换源(UV不支持 --index-url 参数),而是 提前下载好OpenClaw的wheel包 。去 https://pypi.org/project/openclaw/#files 下载 openclaw-0.8.2-py3-none-any.whl (版本号以实际为准),然后执行:
uv pip install .\openclaw-0.8.2-py3-none-any.whl --python 3.11
注意 --python 3.11 参数必须指定,否则UV可能用系统默认的Python 3.9,导致后续OpenClaw依赖的 httpx>=0.25.0 版本冲突。
提示:
.venv文件夹生成后,检查.\venv\Scripts\目录下是否有openclaw.exe。没有?说明安装失败。此时不要删.venv重来,先执行uv python list看已安装的Python版本,再用uv python install 3.11.8手动装一个干净的3.11.8,然后重新uv venv .venv --python 3.11.8。
3.2 PowerShell执行策略的“外科手术式”放开:只动刀,不动骨
Set-ExecutionPolicy 命令的 -Scope 参数是关键。 CurrentUser 范围最安全,但如前所述,它不够。 LocalMachine 范围太危险,会永久降低整机安全水位。我的方案是: 用 Process 范围,只对当前PowerShell进程生效 。
在项目根目录新建 setup.ps1 ,内容如下:
# setup.ps1 - CoPaw Windows部署初始化脚本
Write-Host "【步骤1】正在检查UV环境..." -ForegroundColor Green
if (!(Test-Path ".venv\Scripts\openclaw.exe")) {
Write-Error "错误:.venv\Scripts\openclaw.exe 不存在,请先运行 uv venv .venv && uv pip install openclaw"
exit 1
}
Write-Host "【步骤2】正在设置PowerShell执行策略(仅当前进程)..." -ForegroundColor Green
$originalPolicy = Get-ExecutionPolicy -Scope Process
Set-ExecutionPolicy Bypass -Scope Process -Force
Write-Host "当前进程策略已设为 Bypass,原始策略为:$originalPolicy" -ForegroundColor Yellow
Write-Host "【步骤3】正在检查Redis服务..." -ForegroundColor Green
$redisProc = Get-Process -Name "redis-server" -ErrorAction SilentlyContinue
if (!$redisProc) {
Write-Warning "警告:Redis未运行,将尝试启动 redis-start.bat"
Start-Process ".\redis-start.bat" -WindowStyle Hidden
Start-Sleep -Seconds 3
}
Write-Host "✅ 初始化完成!下一步:运行 .\start.ps1 启动CoPaw" -ForegroundColor Cyan
运行它: PowerShell -ExecutionPolicy Bypass -File ".\setup.ps1" 。注意,这里用了 -ExecutionPolicy Bypass 启动PowerShell,再在脚本里用 Set-ExecutionPolicy Bypass -Scope Process ,是双重保险。 -Scope Process 确保关闭PowerShell窗口后,策略自动恢复,不留下任何痕迹。
注意:如果执行
setup.ps1时报错“无法加载文件,因为在此系统上禁止运行脚本”,说明你的PowerShell会话本身被策略拦截了。此时不要全局改策略,直接用上面那条带-ExecutionPolicy Bypass的命令行启动即可。这是Windows最反直觉的设计:脚本的执行策略,由启动它的PowerShell进程决定,而不是脚本自身。
3.3 OpenClaw CLI的“Windows注册术”:让命令行认出openclaw
装完UV环境, .venv\Scripts\openclaw.exe 是存在的,但你在PowerShell里直接敲 openclaw --version ,还是会报“无法识别为cmdlet”。原因很简单:Windows的PATH环境变量里,没有包含 .\venv\Scripts\ 这个相对路径。你不能把 C:\myproject\.venv\Scripts 硬塞进系统PATH(路径会变),也不能每次启动都手动 $env:PATH += ";.\venv\Scripts" (太蠢)。
我的解法是: 用PowerShell的 Set-Alias 命令,给当前会话创建一个永久别名,并用 Register-ArgumentCompleter 补全参数 。在 start.ps1 里(启动主脚本),第一段就是:
# start.ps1 - CoPaw主启动脚本
# 创建openclaw别名,指向当前项目的venv路径
$openclawPath = Join-Path $PSScriptRoot ".venv\Scripts\openclaw.exe"
if (Test-Path $openclawPath) {
Set-Alias -Name openclaw -Value $openclawPath -Scope Global -Force
Write-Host "✅ 已创建别名:openclaw -> $openclawPath" -ForegroundColor Green
} else {
Write-Error "❌ 找不到 openclaw.exe,请检查UV环境是否正确安装"
exit 1
}
# 为openclaw命令添加参数补全(简化操作)
Register-ArgumentCompleter -CommandName openclaw -ScriptBlock {
param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter)
$validOptions = @("serve", "skill", "config", "version", "help")
$validOptions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.Language.CommandAst]::new($_)
}
}
这样,只要运行了 .\start.ps1 , openclaw 就成了当前PowerShell会话里的“一级公民”,支持Tab补全, openclaw serve --host 0.0.0.0 --port 8000 这种长命令,敲一半按Tab就出来。
4. 实操过程与核心环节实现:从下载到启动,每一步都有截图级记录
4.1 环境准备清单与验证(5分钟)
在开始前,确认你的Windows满足最低要求: Win10 20H2或更高版本(Win11推荐),内存≥8GB,磁盘剩余空间≥5GB 。家庭版完全OK,无需升级专业版。
| 检查项 | 验证命令 | 正常输出示例 | 异常处理 |
|---|---|---|---|
| PowerShell版本 | $PSVersionTable.PSVersion |
Major: 5 或 Major: 7 |
升级到PowerShell 7:去 https://github.com/PowerShell/PowerShell/releases 下载 PowerShell-7.4.2-win-x64.msi ,安装后重启PowerShell |
| 系统架构 | [System.Environment]::Is64BitOperatingSystem |
True |
32位系统不支持UV,必须换64位Windows |
| 网络连通性 | Test-NetConnection pypi.org -Port 443 |
TcpTestSucceeded : True |
如失败,检查代理设置,或临时关闭防火墙 |
| Redis端口占用 | Get-NetTCPConnection -LocalPort 6379 -ErrorAction SilentlyContinue |
无输出(表示空闲) | 如有输出,记下PID,用 Stop-Process -Id <PID> 杀掉 |
实操心得:我第一次部署时,
Test-NetConnection失败,反复检查网络都没问题。最后发现是公司WiFi的“访客模式”屏蔽了443端口。换手机热点,5秒通过。所以, 验证环节的每一行命令,都是在帮你排除90%的后续故障 ,别跳。
4.2 UV安装与OpenClaw部署(12分钟)
- 下载UV :访问 https://github.com/astral-sh/uv/releases ,找到最新版
uv-windows-amd64.exe(如uv-windows-amd64-v0.1.47.exe),下载到桌面。 - 重命名并移动 :把它重命名为
uv.exe,剪切到你的项目目录(如C:\copaw)。这一步省得加PATH。 - 打开PowerShell :Win+X → Windows PowerShell(不是Windows Terminal),
cd C:\copaw。 - 创建虚拟环境 :
如果# 运行UV,创建独立环境 .\uv.exe venv .venv --python 3.11.8 # 激活环境(只是切换路径,非必需,但习惯好) .\.venv\Scripts\Activate.ps1 # 安装OpenClaw(用wheel包,避免网络超时) .\uv.exe pip install .\openclaw-0.8.2-py3-none-any.whluv.exe pip install报错No module named 'setuptools',说明Python嵌入式包不完整,执行.\\uv.exe python install 3.11.8重装Python,再重试。 - 验证安装 :
# 检查openclaw.exe是否存在 Test-Path ".venv\Scripts\openclaw.exe" # 应返回 True # 检查能否执行 .\.venv\Scripts\openclaw.exe --version # 应输出 openclaw 0.8.2
4.3 Redis配置与启动(3分钟)
- 下载Redis :去 https://github.com/microsoftarchive/redis/releases ,下载
Redis-x64-6.2.6.msi,运行安装(全程默认选项,记住安装路径,如C:\Program Files\Redis)。 - 复制配置文件 :把安装目录下的
redis.windows.conf复制一份到你的项目根目录C:\copaw\。 - 编辑配置 :用记事本打开
C:\copaw\redis.windows.conf,找到这两行并修改:# 注释掉这一行,避免绑定所有IP # bind 127.0.0.1 ::1 # 改为只绑定本地 bind 127.0.0.1 # 确保端口是6379 port 6379 # 关闭保护模式(开发环境必需) protected-mode no - 创建启动脚本 :在
C:\copaw\下新建redis-start.bat,内容为:
双击运行它,你会看到一个一闪而过的黑窗口,然后任务管理器里出现@echo off cd /d "C:\Program Files\Redis" start /min redis-server.exe "C:\copaw\redis.windows.conf" echo Redis已启动(最小化窗口) pauseredis-server.exe进程。
4.4 CoPaw启动与首次运行(8分钟)
- 创建
.env文件 :在C:\copaw\下新建文本文件,命名为.env,内容如下(根据你实际Redis配置调整):REDIS_URL=redis://127.0.0.1:6379/0 OPENCLAW_HOST=0.0.0.0 OPENCLAW_PORT=8000 OPENCLAW_DEBUG=true - 创建
start.ps1:内容见3.3节,保存后,在PowerShell里执行:
如果一切顺利,你会看到控制台滚动输出:# 运行启动脚本 .\start.ps1 # 启动CoPaw服务 openclaw serve --host 0.0.0.0 --port 8000INFO Starting server on 0.0.0.0:8000 INFO Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO Application startup complete. - 浏览器访问 :打开
http://localhost:8000/docs,你应该能看到OpenClaw的Swagger API文档界面。这就是CoPaw的Web UI入口。点击GET /health,执行Try it out,返回{"status":"healthy"},恭喜,部署成功!
5. 常见问题与排查技巧实录:那些让我凌晨三点还在改配置的坑
5.1 “无法将‘openclaw’项识别为 cmdlet” —— 最高频报错的七种死法
这个问题不是单一原因,而是Windows权限、路径、策略的组合拳。我整理了7种真实场景及解法:
| 报错现象 | 根本原因 | 一招毙命解法 | 验证命令 |
|---|---|---|---|
openclaw : 无法将“openclaw”项识别为 cmdlet... (在任意目录) |
openclaw.exe 不在PATH,且未创建别名 |
运行 .\start.ps1 (确保别名已注册) |
Get-Command openclaw 应返回 Application 类型 |
openclaw : 无法将“openclaw”项识别为 cmdlet... (在项目目录,但 .\venv\Scripts\openclaw.exe 存在) |
PowerShell执行策略阻止了 .ps1 脚本加载( start.ps1 本身被拦) |
用 PowerShell -ExecutionPolicy Bypass -File ".\start.ps1" 启动 |
Get-ExecutionPolicy -Scope Process 应为 Bypass |
openclaw : The term 'openclaw' is not recognized... ( openclaw.exe 双击可运行) |
.exe 文件被Windows Smartscreen拦截,需手动“仍要运行” |
右键 openclaw.exe →属性→勾选“解除锁定” |
属性页底部应有“此文件来自其他计算机,可能被阻止...”提示 |
openclaw : command not found (CMD下) |
CMD根本不认识PowerShell别名 | 别用CMD,用PowerShell | cmd /c "where openclaw" 应无输出 |
openclaw : Permission denied (Linux风格报错) |
UV环境目录被OneDrive或杀软锁定 | 退出OneDrive,临时禁用杀软,重装UV | Get-Process -Name "OneDrive" 应为空 |
openclaw : No module named 'openclaw' ( python -m openclaw ) |
误用Python解释器,而非UV打包的exe | 永远不要用 python -m ,只用 openclaw.exe |
Get-Command python 应指向系统Python,非UV环境 |
openclaw : error: unrecognized arguments: --host (老版本) |
安装了旧版OpenClaw(<0.8.0),不支持 --host 参数 |
重装wheel包,确认版本≥0.8.2 | .\venv\Scripts\openclaw.exe --version |
实操心得:遇到这个报错, 第一反应不是重装,而是运行
Get-Command openclaw。如果返回“找不到”,说明别名没注册;如果返回路径但执行失败,说明是exe被拦截或权限问题。90%的case,Get-Command能立刻定位病灶。
5.2 Redis连接失败:从“Connection refused”到“Authentication failed”
OpenClaw启动时,日志里如果出现 redis.exceptions.ConnectionError: Error 10061 connecting to 127.0.0.1:6379. No connection could be made because the target machine actively refused it. ,说明Redis根本没起来。但如果出现 redis.exceptions.AuthenticationError: invalid password ,说明Redis起来了,但密码不对。
诊断流程图(文字版) :
Get-Process -Name "redis-server"→ 无进程?→ 运行redis-start.bat。- 有进程?→
Test-NetConnection 127.0.0.1 -Port 6379→TcpTestSucceeded : False?→ 检查redis.windows.conf里bind和port是否正确,protected-mode no是否生效。 TcpTestSucceeded : True?→redis-cli -h 127.0.0.1 -p 6379 ping→ 返回PONG?否→ Redis配置有误;是→ 检查.env里的REDIS_URL格式是否正确(必须是redis://127.0.0.1:6379/0,不能少/0)。
注意:
redis-cli工具在Redis安装目录下,不是系统自带。如果提示“不是内部命令”,请用完整路径:"C:\Program Files\Redis\redis-cli.exe" -h 127.0.0.1 -p 6379 ping。
5.3 Web UI打不开:localhost vs 127.0.0.1的哲学问题
启动 openclaw serve 后,浏览器访问 http://localhost:8000 打不开,但 http://127.0.0.1:8000 可以?这是Windows的 hosts 文件在作祟。某些软件(如腾讯电脑管家、旧版Chrome)会往 C:\Windows\System32\drivers\etc\hosts 里写 127.0.0.1 localhost ,但同时又加了一行 ::1 localhost (IPv6),导致DNS解析混乱。
终极解法 :用记事本(以管理员身份运行)打开 hosts 文件, 注释掉所有关于 localhost 的行 ,只保留:
127.0.0.1 localhost
保存后,重启PowerShell,重新 openclaw serve 。 localhost 和 127.0.0.1 就彻底等价了。
5.4 技能(Skill)调用超时:不是代码问题,是网络策略
执行 openclaw skill run weather ,控制台卡在 Waiting for response... ,30秒后报 TimeoutError 。这几乎100%是Redis的Pub/Sub通道不通。OpenClaw的Skill是异步的,请求发到Redis的 skill:weather:input 频道,Worker进程监听这个频道,执行完把结果发到 skill:weather:output 频道,主进程再从output频道取结果。
快速验证 :在另一个PowerShell窗口,运行:
# 连接Redis,监听output频道
"C:\Program Files\Redis\redis-cli.exe" -h 127.0.0.1 -p 6379 SUBSCRIBE "skill:weather:output"
然后在主窗口执行 openclaw skill run weather 。如果 SUBSCRIBE 窗口没有任何输出,说明Worker没起来,或Redis频道名不匹配。此时检查 openclaw serve 日志,找 Starting skill worker for weather 字样。没有?说明Skill配置文件( skills/weather.yaml )有语法错误,OpenClaw加载失败,静默跳过。
我的避坑技巧:所有Skill YAML文件,用VS Code打开,装YAML插件,它会实时校验语法。一个多余的空格,就能让整个Skill系统瘫痪。
6. 后续扩展与个人经验:从“能跑”到“好用”的最后一公里
部署成功只是起点。CoPaw(OpenClaw)真正的价值,在于它能把一堆零散的API、脚本、数据库查询,封装成自然语言可调用的“技能”。比如,我给自己做的第一个实用Skill,是“查报销进度”:它读取公司OA系统的MySQL数据库(用 pymysql ),根据员工姓名查最近3条报销单状态,生成一句中文回复。整个过程,前端用户只说“我的报销到哪一步了?”,后端自动完成SQL查询、数据清洗、NLG生成。
要让这个流程稳定,我做了三件事:
- 技能隔离 :每个Skill都在自己的子目录(
skills/reimburse/),有自己的requirements.txt。用uv pip install -r skills/reimburse/requirements.txt -p .venv单独安装依赖,避免不同Skill的包版本冲突。 - 错误兜底 :在Skill的Python代码里,所有数据库连接、API调用,都包在
try...except里,捕获pymysql.Error、requests.Timeout等,统一返回{"error": "数据库连接超时,请稍后再试"}。OpenClaw会原样透传给前端,用户体验比直接报500好得多。 - 日志可视化 :把OpenClaw的日志输出重定向到文件
logs/app.log,再用Get-Content logs/app.log -Wait实时监控。当Skill报错时,日志里会有完整的Traceback,比看控制台滚动快得多。
最后分享一个小技巧:如果你的CoPaw服务要长期运行,别让它占着一个PowerShell窗口。用 Start-Process 把它后台化:
# 在start.ps1末尾加
Start-Process powershell "-ExecutionPolicy Bypass -Command & '.\start-server.ps1'" -WindowStyle Hidden
其中 start-server.ps1 只有一行: openclaw serve --host 0.0.0.0 --port 8000 > logs/app.log 2>&1 。这样,双击 start.ps1 ,服务就安静地在后台跑了,日志全在 logs/app.log 里,随时可查。
我在实际使用中发现,CoPaw不是用来替代大模型API的,而是给大模型装上“手脚”。它让LLM不再只是聊天,而是能真正操作你的Excel、查你的邮件、改你的代码。部署的门槛,真的就在这几步——UV、PowerShell、Redis,三个Windows上最常被误解的工具。把它们的关系理顺了,剩下的,就是写几个YAML和Python,让AI为你打工。
更多推荐
所有评论(0)