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 )官网下载后,别急着双击。先做三件事:

  1. 关掉OneDrive实时同步 :OneDrive会监控 .venv 目录,导致UV创建虚拟环境时频繁报“Access is denied”。右键任务栏OneDrive图标→设置→账户→取消勾选“使用Files On-Demand”,或者直接退出OneDrive进程。
  2. 清空临时目录 :Win+R输入 %TEMP% ,删除里面所有以 uv- 开头的文件夹。UV在初始化时会用临时目录解压Python嵌入式包,如果残留旧版本,会触发“Path too long”错误(Windows路径长度限制260字符,UV的嵌套路径很容易超)。
  3. 用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分钟)

  1. 下载UV :访问 https://github.com/astral-sh/uv/releases ,找到最新版 uv-windows-amd64.exe (如 uv-windows-amd64-v0.1.47.exe ),下载到桌面。
  2. 重命名并移动 :把它重命名为 uv.exe ,剪切到你的项目目录(如 C:\copaw )。这一步省得加PATH。
  3. 打开PowerShell :Win+X → Windows PowerShell(不是Windows Terminal), cd C:\copaw
  4. 创建虚拟环境
    # 运行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.whl
    
    如果 uv.exe pip install 报错 No module named 'setuptools' ,说明Python嵌入式包不完整,执行 .\\uv.exe python install 3.11.8 重装Python,再重试。
  5. 验证安装
    # 检查openclaw.exe是否存在
    Test-Path ".venv\Scripts\openclaw.exe"  # 应返回 True
    
    # 检查能否执行
    .\.venv\Scripts\openclaw.exe --version  # 应输出 openclaw 0.8.2
    

4.3 Redis配置与启动(3分钟)

  1. 下载Redis :去 https://github.com/microsoftarchive/redis/releases ,下载 Redis-x64-6.2.6.msi ,运行安装(全程默认选项,记住安装路径,如 C:\Program Files\Redis )。
  2. 复制配置文件 :把安装目录下的 redis.windows.conf 复制一份到你的项目根目录 C:\copaw\
  3. 编辑配置 :用记事本打开 C:\copaw\redis.windows.conf ,找到这两行并修改:
    # 注释掉这一行,避免绑定所有IP
    # bind 127.0.0.1 ::1
    
    # 改为只绑定本地
    bind 127.0.0.1
    
    # 确保端口是6379
    port 6379
    
    # 关闭保护模式(开发环境必需)
    protected-mode no
    
  4. 创建启动脚本 :在 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已启动(最小化窗口)
    pause
    
    双击运行它,你会看到一个一闪而过的黑窗口,然后任务管理器里出现 redis-server.exe 进程。

4.4 CoPaw启动与首次运行(8分钟)

  1. 创建 .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
    
  2. 创建 start.ps1 :内容见3.3节,保存后,在PowerShell里执行:
    # 运行启动脚本
    .\start.ps1
    
    # 启动CoPaw服务
    openclaw serve --host 0.0.0.0 --port 8000
    
    如果一切顺利,你会看到控制台滚动输出:
    INFO     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.
    
  3. 浏览器访问 :打开 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起来了,但密码不对。

诊断流程图(文字版)

  1. Get-Process -Name "redis-server" → 无进程?→ 运行 redis-start.bat
  2. 有进程?→ Test-NetConnection 127.0.0.1 -Port 6379 TcpTestSucceeded : False ?→ 检查 redis.windows.conf bind port 是否正确, protected-mode no 是否生效。
  3. 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生成。

要让这个流程稳定,我做了三件事:

  1. 技能隔离 :每个Skill都在自己的子目录( skills/reimburse/ ),有自己的 requirements.txt 。用 uv pip install -r skills/reimburse/requirements.txt -p .venv 单独安装依赖,避免不同Skill的包版本冲突。
  2. 错误兜底 :在Skill的Python代码里,所有数据库连接、API调用,都包在 try...except 里,捕获 pymysql.Error requests.Timeout 等,统一返回 {"error": "数据库连接超时,请稍后再试"} 。OpenClaw会原样透传给前端,用户体验比直接报500好得多。
  3. 日志可视化 :把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为你打工。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐