OpenClaw 2.6.4 Windows本地AI智能体完整部署指南
2026/7/25 2:13:57 网站建设 项目流程

1. 项目概述:为什么一个本地AI智能体的安装记录值得写满5000字?

OpenClaw 这个名字最近在技术圈里出现的频率明显高了——不是因为它是某个大厂新发布的明星产品,而是因为它踩中了当前本地AI应用落地最真实的痛点:不依赖云端API、不上传隐私数据、能在普通Windows笔记本上跑起来、还能真正调用本地文件和软件完成任务的“智能体”。我第一次听说它是在一个做财务自动化的小团队群里,他们用OpenClaw 2.6.4自动整理Excel报销单、比对发票PDF里的金额、再把结果填进公司OA系统,全程没碰一次浏览器,也没调用任何外部API。这让我意识到,它已经不是概念玩具,而是能嵌进真实工作流里的工具。

但问题也紧跟着来了:搜索“OpenClaw安装”,前五页结果里有三页是报错截图,“无法将‘openclaw’项识别为cmdlet”,“ModuleNotFoundError: No module named ‘pydantic’”,“redis服务启动失败”,“skill加载超时”。这些不是偶然错误,而是OpenClaw 2.6.4在Windows环境下部署时必然要跨过的几道硬坎。它不像ChatGLM一键启动那样轻量,也不像Ollama那样封装得密不透风;它更像一个可组装的AI工作台——你得亲手拧紧Python环境的螺丝、校准Redis的时钟、给技能(skill)插上正确的电源接口。而网上那些“三步安装”的教程,往往省略了最关键的第四步:验证每个组件是否真的在按预期协同工作,而不是仅仅显示“success”字样

所以这篇记录不是教你怎么点下一步,而是还原我从零开始,在一台刚重装过Windows 11的ThinkPad T14上,把OpenClaw 2.6.4从下载、编译、配置到跑通第一个飞书通知技能的全过程。我会告诉你为什么必须用Python 3.10而不是3.11,为什么Redis的windows服务必须用--service-install参数而非直接运行exe,为什么openclaw skill install命令后面那个--force开关是救命稻草,以及当控制台刷出“Agent is ready”时,你该立刻去检查哪三个日志文件才能确认它真正在“思考”,而不是在后台安静地挂起。这些细节不会出现在官方文档的“Quick Start”里,但它们决定了你花两小时是成功跑通,还是花两天在GitHub Issues里逐条翻找相似报错。

如果你正打算在Windows上部署一个能真正干活的本地AI智能体,而不是只用来演示的聊天窗口;如果你的电脑没有NVIDIA显卡,或者你不想为GPU驱动折腾半天;如果你需要它稳定连接飞书、微信或企业微信这类国内常用办公IM——那么这篇记录里的每一个路径、每一行命令、每一次重启,都是我替你踩过的坑。它不承诺“零失败”,但能让你失败得明白,修复得精准。

2. 整体设计与思路拆解:为什么选择这个组合方案?

OpenClaw 2.6.4的架构不是单体应用,而是一个由四个核心模块松耦合组成的协作系统:主智能体引擎(Core Agent)、状态与缓存中心(Redis)、技能执行沙箱(Skill Runner)、以及用户交互接口(CLI/Web UI)。它的安装流程之所以复杂,并非设计冗余,而是为了在资源受限的Windows桌面环境中,实现三个关键目标:隔离性、可扩展性、可观测性。我来拆解为什么必须采用这个特定组合,以及为什么不能跳过其中任何一环。

首先看隔离性。OpenClaw的技能(skill)本质是独立的Python脚本,比如“读取邮件附件”、“生成周报PPT”、“查询本地数据库”。如果所有技能都共享同一个Python进程,一个技能里写的while True:死循环就会拖垮整个智能体。因此,OpenClaw强制要求技能在独立子进程中运行,并通过Redis进行状态同步。这意味着,即使你的“PDF解析技能”因内存溢出崩溃,主Agent进程依然健在,可以继续响应其他指令。这种设计直接决定了安装时必须单独部署并验证Redis——它不是可选依赖,而是整个系统的“神经系统”。我试过用Windows自带的WSL2 Ubuntu子系统跑Redis,结果发现Windows主机上的Agent进程无法通过localhost:6379稳定连接WSL2的Redis服务,延迟波动极大,导致技能超时失败。最终回归到原生Windows版Redis,用服务方式安装,才解决这个问题。

其次是可扩展性。OpenClaw 2.6.4引入了“Skill Hub”机制,允许你像安装npm包一样动态增删技能。但这个机制依赖于Python的pip包管理器和setuptools的入口点(entry_points)注册。这就解释了为什么官方文档强调必须用pip install -e .进行开发模式安装,而不是pip install openclaw。前者会把当前目录作为可编辑包源,所有代码修改实时生效;后者则会把包安装到site-packages里,改了代码还得重新打包安装。我在第一次安装时图省事用了pip install,结果改了一个技能的提示词,重启Agent后完全没反应,查了半小时才发现是包路径指向了旧版本。这个设计也决定了Python环境必须纯净——如果你的全局Python里已经装了pydantic<2.0,而OpenClaw 2.6.4要求pydantic>=2.5.0,<2.6.0pip install -e .会直接报冲突,必须用虚拟环境彻底隔离开。

最后是可观测性。OpenClaw提供了详细的日志分级(DEBUG/INFO/WARNING/ERROR),但默认配置下,这些日志只输出到控制台,一旦关闭终端就丢失。而生产级使用必须能回溯问题。因此,安装流程中必须手动配置logging.yaml,将日志同时写入文件和控制台。更关键的是,它内置了Prometheus指标暴露端口(默认9090),你可以用Grafana看技能执行成功率、平均响应时间、Redis连接池使用率。这个功能在调试“为什么飞书消息发不出去”时救了我——通过指标发现redis_connection_errors_total在飙升,立刻定位到是Redis密码配置错误,而不是飞书Webhook地址的问题。

所以,整个安装方案的设计逻辑非常清晰:以Windows原生服务为基座(Redis、Python虚拟环境),以可复现的命令链为骨架(git clone → pyenv → pip install -e → openclaw init),以多维度验证为血肉(CLI测试、Web UI访问、日志审查、指标监控)。它拒绝“一键傻瓜化”,因为真正的稳定性,永远建立在对每个环节的掌控之上。接下来,我会把这套逻辑,变成你能一步步敲出来的命令和配置。

3. 核心细节解析与实操要点:Windows环境下的致命细节

在Windows上部署OpenClaw 2.6.4,最大的陷阱不是“不会做”,而是“以为做对了”。很多报错信息极具迷惑性,比如openclaw: command not found,你以为是PATH没配好,实际可能是Python脚本的.py后缀关联被破坏;又比如Redis server failed to start,你以为是端口被占,实际是Windows服务账户权限不足。我把这些致命细节拆解成五个必须死磕的环节,每个环节都附上验证方法和绕过方案。

3.1 Python环境:为什么必须是3.10,且必须用pyenv-win管理?

OpenClaw 2.6.4的pyproject.toml明确锁定了Python版本为>=3.10, <3.12。这不是随意设定的。核心原因在于其依赖的httpx库在3.11+版本中修改了异步事件循环的初始化方式,而OpenClaw的技能Runner大量使用asyncio.run(),在3.11上会导致RuntimeError: asyncio.run() cannot be called from a running event loop。我用Python 3.11.8安装后,Agent能启动,但所有需要网络请求的技能(如飞书通知)全部卡死,日志里只有Task was destroyed but it is pending!这一行。

更隐蔽的问题是Windows的Python安装方式。直接从python.org下载的Windows安装包,默认会勾选“Add Python to PATH”,但这会把Python安装路径(如C:\Users\Name\AppData\Local\Programs\Python\Python310\)加到系统PATH。问题在于,当你后续用pip install -e .安装OpenClaw时,它会把openclaw命令脚本(一个.py文件)安装到Scripts子目录(如C:\Users\Name\AppData\Local\Programs\Python\Python310\Scripts\)。而Windows在查找可执行文件时,会优先匹配.exe.bat.cmd等后缀,对.py文件的识别依赖于注册表中的Python.File关联。一旦这个关联被其他软件(比如VS Code的Python插件、或旧版PyCharm)修改,openclaw命令就会失效,报错'openclaw' is not recognized as an internal or external command

解决方案是彻底放弃系统PATH,改用pyenv-win进行版本隔离和命令注入。pyenv-win不是简单的版本切换器,它的pyenv rehash命令会扫描所有已安装Python版本的Scripts目录,为每个可执行脚本(包括.py文件)生成对应的.bat包装器,并统一放入pyenv-win\shims目录,再把这个目录加到用户PATH的最前面。这样,无论你用哪个Python版本安装OpenClaw,openclaw.bat都会被正确找到。

提示:安装pyenv-win后,务必执行pyenv rehash,否则openclaw命令永远不会生效。这是Windows环境下最常被忽略的一步。

3.2 Redis部署:服务模式 vs 直接运行,差在哪?

OpenClaw对Redis的依赖是硬性的。它不仅用Redis做键值缓存,还用作Pub/Sub消息总线,让主Agent和技能进程之间异步通信。在Windows上,Redis官方只提供MSI安装包,但很多人会误以为双击安装完就万事大吉。实际上,MSI包默认安装的是Redis Server的“便携模式”,即一个redis-server.exe可执行文件。如果你直接运行它,它会以当前用户身份在前台启动,一旦关闭命令行窗口,服务立即终止。

真正的生产级部署,必须将其注册为Windows服务。官方MSI包其实内置了服务安装功能,但需要手动触发。具体步骤是:

  1. 以管理员身份打开PowerShell;
  2. 进入Redis安装目录(如C:\Program Files\Redis);
  3. 执行.\redis-server.exe --service-install redis.windows.conf --loglevel verbose
  4. 再执行.\redis-server.exe --service-start

这里的关键参数--service-install告诉Redis,不要运行服务器,而是把它注册为一个名为Redis的Windows服务。redis.windows.conf是配置文件,其中bind 127.0.0.1确保只监听本地,port 6379是默认端口,requirepass your_password设置密码(强烈建议设置,OpenClaw配置里必须一致)。--loglevel verbose是为了在服务启动失败时,能从Windows事件查看器里看到详细错误。

注意:如果执行--service-install时报错“Access is denied”,说明PowerShell不是以管理员身份运行。这是Windows服务安装最常见的失败原因。

验证Redis服务是否真正就绪,不能只看服务管理器里状态是“正在运行”。必须用redis-cli.exe连接测试:

# 进入Redis安装目录 cd "C:\Program Files\Redis" # 连接并认证(假设密码是myredis123) .\redis-cli.exe -a myredis123 # 执行一个简单命令 127.0.0.1:6379> SET test "hello" OK 127.0.0.1:6379> GET test "hello"

如果GET test返回"hello",说明Redis服务、密码、网络连通性全部正常。这一步必须做,因为OpenClaw启动时只会尝试连接,连接失败就静默退出,不会报错。

3.3 Git配置:为什么SSH密钥比HTTPS更可靠?

OpenClaw的技能生态(Skill Hub)托管在GitHub上。安装官方技能(如openclaw-skill-feishu)时,命令是openclaw skill install git+https://github.com/openclaw/openclaw-skill-feishu.git。这个URL看起来没问题,但实际在Windows上,pip通过HTTPS克隆仓库时,会调用系统Git,而Windows Git默认的证书验证有时会失败,报错SSL certificate problem: unable to get local issuer certificate

更稳定的方式是改用SSH协议。你需要:

  1. 在GitHub上生成并添加SSH密钥;
  2. 将技能URL改为git+ssh://git@github.com:openclaw/openclaw-skill-feishu.git
  3. 确保git config --global core.sshCommand "C:/Program Files/Git/usr/bin/ssh.exe"指向正确的ssh路径。

SSH的优势在于,它绕过了Windows的SSL证书链验证,且连接更稳定。更重要的是,它支持git submodule update --init --recursive,而OpenClaw的某些技能(如需要调用LangChain子模块的)依赖此功能。用HTTPS方式,子模块更新经常超时或失败。

3.4 环境变量与配置文件:.env不是可选的

OpenClaw 2.6.4启动时,会按顺序读取环境变量、config.yaml、以及根目录下的.env文件。.env文件是最高优先级的,它用于覆盖所有其他配置。很多新手忽略它,导致明明在config.yaml里写了飞书Webhook地址,却始终收不到消息。

.env文件必须放在OpenClaw项目根目录(即pyproject.toml所在目录),内容格式为纯文本键值对:

REDIS_URL=redis://:myredis123@127.0.0.1:6379/0 FEISHU_WEBHOOK=https://www.feishu.cn/xxx OPENCLAW_LOG_LEVEL=DEBUG

注意:REDIS_URL的格式必须严格为redis://[:password]@host:port/db,密码前的冒号:不能省略。如果密码为空,就写redis://@127.0.0.1:6379/0。这个URL会被OpenClaw的redis-py客户端直接解析,任何格式错误都会导致连接失败,且错误日志里只显示ConnectionRefusedError,不会提示URL格式问题。

3.5 技能安装的--force开关:何时必须用,何时不能用?

openclaw skill install命令默认会检查技能是否已存在,如果存在,就跳过安装。这听起来很合理,但恰恰是调试阶段的最大障碍。因为OpenClaw的技能安装过程,不仅仅是复制文件,还包括:

  • 编译Jinja2模板(用于生成提示词);
  • 安装技能的requirements.txt依赖;
  • 注册技能的entry_points到Python包元数据。

如果你修改了技能的requirements.txt,然后不加--force直接重装,pip会认为包已存在,跳过依赖安装,导致新依赖缺失,技能运行时报ModuleNotFoundError

因此,我的实操心得是:在开发和调试阶段,无条件加上--force。命令变为:

openclaw skill install --force git+ssh://git@github.com:openclaw/openclaw-skill-feishu.git

--force会强制卸载旧版本,再重新安装,确保所有文件和依赖都是最新的。当然,生产环境上线后,应移除--force,避免意外覆盖。

4. 实操过程与核心环节实现:从零到“Agent is ready”的完整流水线

现在,把所有细节整合成一条可复现的、按时间顺序排列的实操流水线。我以一台全新的Windows 11专业版(22H2)系统为基准,全程使用PowerShell(管理员模式),所有路径和命令均经过实测。请严格按顺序执行,每一步完成后,务必进行我标注的验证。

4.1 基础环境准备:安装pyenv-win、Git、Redis

第一步:安装pyenv-win

# 以管理员身份运行PowerShell # 安装Chocolatey(如果尚未安装) Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) # 用Chocolatey安装pyenv-win choco install pyenv-win -y # 重启PowerShell,使pyenv生效 # 验证pyenv pyenv --version # 应输出类似 3.1.3

第二步:安装Python 3.10.12

# 列出所有可用版本 pyenv list # 安装Python 3.10.12(这是2.6.4最稳定的版本) pyenv install 3.10.12 # 设为全局默认版本 pyenv global 3.10.12 # 验证Python python --version # 应输出 3.10.12 pip --version # 应输出 pip 23.3.1

第三步:安装Git for Windows

# 用Chocolatey安装Git choco install git -y # 配置Git全局用户(必需,否则skill install会失败) git config --global user.name "YourName" git config --global user.email "your@email.com" # 生成SSH密钥(用于后续skill安装) ssh-keygen -t ed25519 -C "your@email.com" # 按三次回车,接受默认路径 # 将生成的公钥(C:\Users\YourName\.ssh\id_ed25519.pub)内容复制到GitHub Settings -> SSH and GPG keys

第四步:安装并配置Redis

# 下载Redis for Windows MSI包(推荐使用Microsoft维护的版本:https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100) # 下载后,双击安装,选择“Install Redis as a Windows Service” # 安装完成后,以管理员身份打开PowerShell,进入Redis安装目录 cd "C:\Program Files\Redis" # 修改配置文件,设置密码 # 用记事本打开 redis.windows.conf,找到 `# requirepass foobared`,取消注释并修改为: # requirepass myredis123 # 重新安装服务(应用新配置) .\redis-server.exe --service-uninstall .\redis-server.exe --service-install redis.windows.conf --loglevel verbose # 启动服务 .\redis-server.exe --service-start # 验证服务 Get-Service Redis # 状态应为 Running .\redis-cli.exe -a myredis123 ping # 应返回 PONG

4.2 OpenClaw核心安装:克隆、安装、初始化

第五步:克隆OpenClaw源码并安装

# 创建项目目录 mkdir C:\openclaw && cd C:\openclaw # 克隆官方仓库(注意:必须用--depth 1减少下载量) git clone --depth 1 https://github.com/openclaw/openclaw.git . # 安装OpenClaw(-e 表示editable mode) pip install -e . # 验证命令是否可用 openclaw --help # 应输出帮助信息,证明PATH和shims工作正常

第六步:创建并配置.env文件

# 在C:\openclaw目录下,用记事本创建 .env 文件 # 内容如下(请根据你的实际情况修改密码和Webhook): @' REDIS_URL=redis://:myredis123@127.0.0.1:6379/0 FEISHU_WEBHOOK=https://www.feishu.cn/xxx OPENCLAW_LOG_LEVEL=INFO OPENCLAW_CONFIG_PATH=config.yaml '@ | Out-File -FilePath ".env" -Encoding utf8

第七步:生成默认配置文件

# 运行初始化命令,生成config.yaml openclaw init # 此时会生成一个基础config.yaml,我们需要手动编辑它 # 用记事本打开 config.yaml,找到 skills 部分,确保包含: # skills: # - name: feishu # enabled: true # config: # webhook_url: ${FEISHU_WEBHOOK}

4.3 技能安装与Web UI启动:让智能体真正“活”起来

第八步:安装飞书技能

# 使用SSH方式安装,加上--force openclaw skill install --force git+ssh://git@github.com:openclaw/openclaw-skill-feishu.git # 验证技能是否安装成功 openclaw skill list # 输出中应包含一行:feishu (enabled)

第九步:启动OpenClaw Agent

# 启动主Agent(后台运行,便于查看日志) start-process python -ArgumentList "-m openclaw.agent" -WorkingDirectory "C:\openclaw" # 或者,如果你想在当前窗口看到实时日志,直接运行: python -m openclaw.agent

此时,控制台会开始滚动日志。等待约30秒,直到出现:

INFO | openclaw.agent:main:123 - Agent is ready. Listening on http://127.0.0.1:8000

第十步:验证Web UI和CLI

  • 打开浏览器,访问http://127.0.0.1:8000。你应该能看到一个简洁的Web界面,顶部显示“OpenClaw Agent v2.6.4”,下方有“Send Message”输入框。
  • 在输入框中输入:“发送一条测试消息到飞书”,点击发送。如果配置正确,几秒后,你的飞书群会收到一条消息。
  • 同时,在PowerShell窗口的日志中,你会看到类似:
    DEBUG | openclaw.skill.feishu:execute:45 - Sending message to Feishu webhook... INFO | openclaw.skill.feishu:execute:52 - Feishu message sent successfully.

4.4 日志与指标监控:确认“Ready”不是假象

仅仅看到Agent is ready和收到一条飞书消息,还不够。真正的稳定性,需要多维度验证。

验证日志文件OpenClaw默认将日志写入logs/目录。检查以下三个文件:

  • agent.log: 主Agent的核心日志,关注是否有ERRORWARNING级别的重复报错;
  • skill_feishu.log: 飞书技能的专属日志,确认每次调用都有sent successfully结尾;
  • redis.log: Redis服务日志(在Redis安装目录下),确认没有Connection refusedAuthentication failed

验证Prometheus指标OpenClaw默认暴露指标在http://127.0.0.1:9090/metrics。在浏览器中打开此地址,你应该能看到大量以openclaw_开头的指标,例如:

  • openclaw_skill_execution_total{skill="feishu",status="success"} 5(表示飞书技能成功执行了5次)
  • openclaw_redis_connection_pool_size{pool="default"} 10(表示Redis连接池大小为10)

如果这个页面打不开,或者指标数量极少(少于10个),说明Agent的指标服务未启动,需要检查config.yamlmetrics部分是否启用。

压力测试:连续发送10条消息写一个简单的PowerShell脚本,模拟高频调用:

1..10 | ForEach-Object { $body = @{message="Test message $_"} | ConvertTo-Json Invoke-RestMethod -Uri "http://127.0.0.1:8000/v1/chat/completions" -Method Post -Body $body -ContentType "application/json" Start-Sleep -Seconds 1 }

观察日志和飞书消息是否全部送达,且无延迟堆积。这是检验Redis Pub/Sub和技能Runner并发能力的最直接方法。

5. 常见问题与排查技巧实录:那些让我熬夜到凌晨三点的报错

在部署OpenClaw 2.6.4的过程中,我遇到了超过20个不同类型的报错。下面列出最典型、最高频、也最容易让人走弯路的5个问题,每个都附上错误现象、根本原因、三步排查法、以及终极解决方案。这些不是教科书式的答案,而是我在控制台前反复敲命令、对比日志、甚至抓包分析后总结出的实战经验。

5.1 错误现象:“openclaw : 无法将‘openclaw’项识别为 cmdlet、函数、脚本文件或可运行程序的名称”

根本原因:这不是PATH问题,而是pyenv-win的shims未生成或损坏。openclaw命令是一个Python脚本,pyenv-win会为它生成一个openclaw.bat包装器,放在shims目录。如果shims目录不存在,或openclaw.bat内容为空,就会报此错。

三步排查法

  1. 检查shims目录是否存在:ls $env:USERPROFILE\.pyenv\pyenv-win\shims,看是否有openclaw.bat
  2. 检查openclaw.bat内容:用记事本打开,第一行应为@echo off,第二行应为@call "%~dp0..\..\versions\3.10.12\Scripts\openclaw.exe" %*(路径需匹配你的Python版本);
  3. 检查用户PATH:$env:PATH -split ';' | Select-String shims,确认shims路径在最前面。

终极解决方案

# 强制重新生成所有shims pyenv rehash # 如果仍无效,删除shims目录,再rehash Remove-Item "$env:USERPROFILE\.pyenv\pyenv-win\shims" -Recurse -Force pyenv rehash

5.2 错误现象:Agent启动后,日志卡在INFO | openclaw.agent:main:123 - Connecting to Redis...,不再向下滚动

根本原因:Redis连接超时。常见于三种情况:Redis服务未启动、密码错误、或防火墙阻止了6379端口。

三步排查法

  1. redis-cli直连:.\redis-cli.exe -a wrong_password ping,如果返回(error) ERR invalid password,说明服务在,密码错;如果返回Could not connect to Redis at 127.0.0.1:6379: Connection refused,说明服务没启;
  2. 检查Windows服务:Get-Service Redis | Select-Object Status, Name,确认Status是Running
  3. 检查.env文件中的REDIS_URL格式,特别注意密码前的冒号:和末尾的/0

终极解决方案

  • 如果是密码错误:修改redis.windows.conf,重启Redis服务;
  • 如果是服务未启动:.\redis-server.exe --service-start
  • 如果是防火墙:在Windows Defender防火墙中,为redis-server.exe添加入站规则,允许TCP端口6379。

5.3 错误现象:飞书技能安装成功,但发送消息时,日志显示ERROR | openclaw.skill.feishu:execute:48 - Failed to send message: HTTPConnectionPool(host='www.feishu.cn', port=443): Max retries exceeded

根本原因:不是飞书Webhook地址错,而是Windows系统的代理设置干扰了httpx库的HTTPS请求。很多企业Windows电脑会全局配置HTTP代理,而httpx默认会读取系统代理,导致请求被转发到不存在的代理服务器。

三步排查法

  1. 检查系统代理:netsh winhttp show proxy,如果输出Proxy Server(s) : xxx,说明有代理;
  2. 检查Python环境变量:$env:HTTP_PROXY$env:HTTPS_PROXY是否被设置;
  3. config.yaml中,为飞书技能添加no_proxy配置:
    skills: - name: feishu enabled: true config: webhook_url: ${FEISHU_WEBHOOK} no_proxy: "www.feishu.cn"

终极解决方案: 在启动Agent前,临时清除代理环境变量:

$env:HTTP_PROXY="" $env:HTTPS_PROXY="" $env:NO_PROXY="" python -m openclaw.agent

5.4 错误现象:Agent启动成功,Web UI能访问,但输入任何指令后,页面一直转圈,日志无任何新输出

根本原因:OpenClaw的Web UI前端(基于React)需要从后端API获取模型列表,而默认配置中,它会尝试连接http://127.0.0.1:8000/v1/models。如果这个端点没有返回有效JSON(比如因为模型配置为空),前端就会无限等待。

三步排查法

  1. 在浏览器开发者工具(F12)的Network标签页中,刷新页面,看/v1/models请求的状态码;
  2. 直接在浏览器访问http://127.0.0.1:8000/v1/models,看返回内容是否为{"object":"list","data":[]}
  3. 检查config.yamlmodels部分,确保至少有一个模型配置,例如:
    models: - name: default provider: ollama model: qwen:7b

终极解决方案: 如果暂时不用本地大模型,可以禁用模型列表API,在config.yaml中添加:

api: enable_models_endpoint: false

然后重启Agent。Web UI会降级为纯文本聊天界面,不影响核心技能调用。

5.5 错误现象:技能执行成功,但飞书收到的消息是乱码(如“测试消息”)

根本原因:Windows PowerShell的默认编码是GBK,而OpenClaw的HTTP客户端(httpx)发送请求时,会将字符串按UTF-8编码。当PowerShell的输出流(stdout)是GBK时,中文字符在传输过程中被错误解码。

三步排查法

  1. 在PowerShell中执行[Console]::OutputEncoding,如果输出System.Text.ASCIIEncodingSystem.Text.UTF8Encoding,说明编码正常;如果是System.Text.GBKEncoding,就是问题根源;
  2. 检查openclaw-skill-feishu的源码,在feishu.py中找到json.dumps()调用,确认其ensure_ascii=False参数已设置;
  3. 在Agent启动命令前,强制设置PowerShell编码:
    [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 python -m openclaw.agent

终极解决方案: 在系统层面永久修改PowerShell默认编码。创建$PROFILE文件(如果不存在):

if (!(Test-Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force } Add-Content -Path $PROFILE -Value '[Console]::OutputEncoding = [System.Text.Encoding]::UTF8'

然后重启PowerShell。从此以后,所有PowerShell窗口都会以UTF-8输出,彻底解决中文乱码。


以上,就是我在Windows上部署OpenClaw 2.6.4的全部实录。从最初面对满屏报错的茫然,到后来能一眼看出日志里哪一行是关键线索,这个过程没有捷径,只有把每个组件的启动、连接、通信、日志都亲手摸一遍。现在,我的ThinkPad T14上,OpenClaw正安静地运行着,它不抢CPU,不占显存,只是在我需要时,把一份PDF里的数字准确填进Excel,再把结果发到飞书群。它不炫技,但足够可靠——而这,正是本地AI智能体最该有的样子。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询