如果你跟我一样,从 OpenClaw 最早那个能用但很粗糙的版本一路折腾过来,应该会有同感:这工具真正的价值不是某个炫技命令,而是它能把“大模型的想法”和“本机实际能做的事”串成一条完整链路。前面几篇文章已经把安装、基础配置、Skill 编写和模型接入都过了一遍,今天这篇叫“大结局”,是因为我终于把最后一个、也是最想要的一个入口给打通了——个人微信。
简单说,OpenClaw 是一个本地优先的 AI 代理执行环境,你把 Claude、DeepSeek 这类大模型当成大脑,它负责动手:读文件、跑命令、调脚本、管理目录。而“接入个人微信”这一步,相当于给这个大脑配了一个随身遥控器。你在外面用微信发一句“帮我看看电脑磁盘还剩多少”,家里那台 24 小时开着的电脑就开始干活,干完把结果推回微信。这篇内容适合两类人:一是已经装好 OpenClaw、但觉得它只能在终端里玩不够实用的朋友;二是完全没接触过、想从零看到底怎么把 AI 代理和微信打通的新人。我会把安装、配置、实战、避坑全部写成可以直接照抄的操作,你只需要准备一台 Windows 电脑和一个微信号。
1. 方案设计:为什么这个“大结局”拖到现在
1.1 先想清楚 OpenClaw 到底是个什么东西
OpenClaw 本质上是一个“有手有脚”的 AI 执行器。普通的 ChatGPT、DeepSeek 网页版,你问它问题,它只能给你文字答案;OpenClaw 不一样,它把大模型的输出和真实的操作系统连接了起来。你给它一个任务,它会拆分步骤、在本地执行命令、检查输出、再决定下一步。默认的工作目录在 C:\Users\你的用户名\.openclaw\workspace,所有脚本、临时文件、日志都会沉淀在这里,这个目录就是它的“工位”。
我用了几个月最深的感受是:OpenClaw 不是一个聊天工具,而是一个“能干活的下属”。你交代任务时越具体,它完成得越漂亮;你如果只丢一句模糊的话,它就很容易在错误的路径上越走越远。这也是为什么后文一定要讲 Skill 封装——在大模型和真实操作之间,需要一层“固定动作”来兜底。
1.2 为什么入口最终选了微信而不是别的
可选入口其实很多:飞书机器人、Telegram Bot、Web 控制台、甚至桌面悬浮球。我也试过给 OpenClaw 套一个网页界面,效果可以,但问题很现实——手机浏览器切后台就断,专门装一个 App 又为了一个工具确实有点重。微信不一样,它拥有我所有联系人里最高的打开频率,而且不需要任何学习成本。家里人不会用终端,但他们都会发微信。
更关键的是,微信消息能触达的场景足够丰富。我人在外面,可以发文字让家里的电脑执行任务;我在家里懒得起身,可以把手机丢在沙发上用语音输入发指令;甚至我父母想查个什么,也只需要像跟人聊天一样发消息。这种“零门槛入口”不是技术指标,但它是决定一个自动化工具能不能真正活下来的核心因素。技术再强,如果入口太麻烦,最终还是会吃灰。
1.3 合规边界和风险,开始之前必须摆清楚
虽然标题叫“接入个人微信”,但我必须先把丑话说在前面:个人微信的自动化始终走在平台规则的边缘,没有任何官方开放的个人号 API。所以这篇文章的定位是“个人设备上的消息辅助转发”,只做自己账号的消息收发、个人场景的任务执行,坚决不碰群发、加人、自动营销、多开、篡改客户端这类行为。如果你准备拿它去做任何灰产或者批量操作,请立刻关掉这篇文章,我们不是一路人。
我的做法是:用合规的本地消息通道工具做“消息事件转发”,把微信收到的文本同步到本地,再交给 OpenClaw 处理,整个过程不修改微信客户端文件、不逆向协议、不绕过任何实名校验。即便如此,也要有“账号可能因为第三方工具被限制”的心理准备。所以建议你用一个不绑核心业务的微信号来做这个实验,别拿主号硬扛。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与核心配置
2.1 Windows 下安装 OpenClaw 的两个小坑
OpenClaw 官方支持 Windows,安装方式最顺的是 PowerShell。打开管理员权限的 PowerShell,执行官方安装脚本,安装器会自动处理 PATH 和依赖。这里有两个坑,我估计每个 Windows 用户都会踩。
第一个坑是执行策略。Windows 默认的 ExecutionPolicy 是 Restricted,直接运行脚本会提示“无法加载文件,因为在此系统上禁止运行脚本”。解决办法是先用 Get-ExecutionPolicy 看一下当前策略,如果是 Restricted,就运行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser,然后选 Y 确认。这个命令只影响当前用户,不会破坏系统安全策略。
第二个坑是安装完以后终端立刻输入 openclaw,大概率报 无法将“openclaw”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。别慌,这不是装坏了,是 PATH 环境变量没刷新。关掉当前 PowerShell,新开一个窗口,或者退出终端重进一次,命令就能正常识别。如果还是不行,去检查安装目录是否真的加入到了系统 PATH 里,手动加一下重启终端就行。
另外,安装器默认目录在用户目录下,如果你不想让 .openclaw 和程序文件散落在 C 盘,PowerShell 安装时可以用参数指定安装位置。具体参数名以你下载的安装器版本 --help 为准,我这边用 -InstallDir 参数指定到了 D 盘工具目录,等于把“工位”和“工具链”分开,后续备份和清理都清爽很多。
2.2 把 DeepSeek 接进来当“大脑”
OpenClaw 本身不带模型,它需要外接一个大模型 API。搜索热词里能看到一大堆 codex接入deepseek、claude code接入deepseek、claudecode接入deepseek,说明大家都发现了同一个事实:DeepSeek 的接口兼容度高、价格便宜、翻译和代码能力也不差,是最适合做这种自动化代理的模型。我最终选了 DeepSeek,理由很朴素——它不需要特殊的网络环境就能访问,国内网络直连也稳定,这对一个需要 7x24 小时后台常驻的工具来说太重要了。
配置方式很简单,在 OpenClaw 的配置文件里指定模型供应商和密钥。OpenAI 兼容接口的好处是 baseUrl 一换就能接不同服务商,DeepSeek 的配置大概是这样的:
json复制{
"model": "deepseek-chat",
"provider": "openai-compatible",
"baseUrl": "https://api.deepseek.com/v1",
"apiKey": "你的API_Key",
"temperature": 0.3
}
这里有两个细节需要注意。第一,不同版本的 OpenClaw 配置字段名有差异,有的用 base_url 下划线,有的用 baseUrl 驼峰,如果你是在旧版本上升级上来的,最好先执行 openclaw config --help 确认字段名。第二,temperature 建议调低到 0.3 甚至 0.2。因为自动化代理任务里,我们需要的是稳定、可复现的执行,不是天马行空的创造。温度太高,同一个任务每次执行路径都不一样,这会让后续的问题排查变成灾难。
2.3 exec-approvals.json:微信场景下的权限白名单
新手最容易忽略的是 OpenClaw 的权限审批机制。默认情况下,OpenClaw 第一次执行某个外部命令或脚本时,会弹出一个确认请求,需要人工点击同意,这个审批记录就存在 C:\Users\你的用户名\.openclaw\exec-approvals.json 文件里,热词里那句 legacy exec approvals exist at /root/.openclaw/exec-approvals.json 说的就是这件事。
问题来了:你在工位上守着 OpenClaw,弹出确认框点一下没问题。可微信接入以后,任务是从手机端远程触发的,电脑旁边没人,确认框弹出来没人点,任务就直接卡死。所以在接入微信之前,一定要先把常用的命令做进白名单。
白名单配置格式是一个 JSON 数组,每个条目是一个命令匹配模式。比如我给系统状态查询脚本加白名单,大概长这样:
json复制{
"patterns": [
"C:\\Python312\\python.exe C:\\Users\\Administrator\\.openclaw\\skills\\sysinfo\\script.py"
],
"version": 2
}
这里强烈建议只放你真正需要的命令,别图省事直接配 "*" 全部放行。微信入口等于给 OpenClaw 开了一扇 7x24 小时都开着的大门,白名单就是最后一道锁。你永远不知道哪条微信消息会被恶意注入,别把自己电脑的 PowerShell 裸奔在无人值守状态。
3. 实操:从微信消息到 OpenClaw 落地任务
3.1 把 OpenClaw 跑成常驻服务
接入微信的第一步,是让 OpenClaw 从“交互式终端工具”变成“后台常驻服务”。平时我们用 openclaw 直接进入交互模式,适合手动调试;但微信入口需要随时被调用,所以要用服务模式启动:
bash复制openclaw serve --host 127.0.0.1 --port 8085
这样 OpenClaw 就在本地 8085 端口起了一个 HTTP 服务,外部程序可以通过 HTTP 把任务交给它处理。实测下来这个服务很稳,挂机跑了一周没崩过。我建议你把它注册成 Windows 计划任务,开机自动启动,免得某天重启电脑以后忘了手动打开,微信端又发来任务结果没人响应。
需要提醒的是,服务模式下 OpenClaw 依然会正常解析自然语言、调用 Skill、执行脚本,但它不再有主动输出的 UI,所有结果都以 HTTP 响应的形式返回。这对于微信网关脚本来说非常合适——发起任务,拿到结果,回传微信。
3.2 写一个本地消息网关
这是整个链路里最关键的一层,作用是在“微信收到消息”和“OpenClaw 执行任务”之间做翻译。我的实现思路很简单:本地跑一个 FastAPI 服务,暴露一个 HTTP 接口,微信消息通道工具把新消息推送过来,网关再把消息拼成任务请求转发给 OpenClaw 的 8085 端口。
下面是我放在 .openclaw\workspace\gateway\main.py 里的脚本核心部分:
python复制from fastapi import FastAPI, Request
import httpx
app = FastAPI()
CLAW_URL = "http://127.0.0.1:8085/run"
@app.post("/wechat_hook")
async def wechat_hook(req: Request):
data = await req.json()
from_user = data.get("from", "")
text = data.get("text", "").strip()
if not text:
return {"ok": False, "message": "empty message"}
payload = {
"task": text,
"user": from_user,
"timeout": 300,
}
try:
resp = await httpx.post(CLAW_URL, json=payload, timeout=300)
return {"ok": True, "result": resp.text}
except Exception as exc:
return {"ok": False, "message": f"openclaw call failed: {exc}"}
然后用 uvicorn main:app --host 127.0.0.1 --port 8050 启动网关。微信通道工具那边,把消息回调地址填成 http://127.0.0.1:8050/wechat_hook 就可以了。
这条链路的性能瓶颈完全在模型响应上,网关本身开销非常小。如果你在手机端发一条消息,平均 5 到 15 秒能收到回复,时间主要花在 DeepSeek 生成和 OpenClaw 执行脚本上,这属于正常水平。
3.3 用 Skill 封装一个真正有用的功能
如果直接把微信消息丢给大模型让它“自由发挥”,你很快就会失望。模型很聪明,但它不稳定——同一个任务今天用 PowerShell 实现,明天可能就想用 Python 实现,后天干脆自己编一个不存在的命令。解决方案就是把高频操作封装成 Skill,让模型只做意图识别和参数提取,具体动作由固定脚本执行。
我在 .openclaw\skills\sysinfo\ 目录下建了一个系统状态查询技能,结构如下:
code复制C:\Users\Administrator\.openclaw\skills\sysinfo\
├── SKILL.md
└── script.py
SKILL.md 是给模型看的说明书,用 frontmatter 声明技能名称、描述和参数:
markdown复制---
name: system_status
description: 查询电脑当前的 CPU、内存和磁盘使用情况,返回简洁汇总
parameters:
- name: unit
type: string
required: false
description: 返回大小单位,默认 GB
---
script.py 用 psutil 一行一行拿系统实况,格式化输出成适合微信阅读的文本。微信端用户只需要说“电脑状态怎么样”,OpenClaw 的大模型识别出这是 system_status 技能,自动调用脚本,然后把结果生成一句话回复。
这个模式一旦跑通,后面扩展新能力就非常简单了。我想加一个“微信查天气”功能,就在 skills 目录下再建一个 weather_forecast 技能,写一个脚本调用天气 API,SKILL.md 里描述清楚触发条件和参数,OpenClaw 下次就自动知道什么时候该用它。
3.4 完整链路跑通的现场体验
链路全部搭建好之后,我拿手机做了一次最真实的测试:下楼取快递,站在电梯口给微信发了一句“查下电脑 C 盘剩余空间”。大约 8 秒后,微信收到回复:“C 盘剩余 102.4GB,占总容量 56%,目前没有告警。”
那一刻还挺有成就感的。技术链路其实不复杂,就是微信消息通道把文本转发到本地网关,网关 POST 给 OpenClaw 服务,OpenClaw 判断意图后调用 system_status 技能,脚本执行完把结果喂给模型润色成一句话,再由网关原路返回微信。但就是这条简单的链路,把“跑在电脑里的 AI”变成了“揣在兜里的 AI”。
我还顺手把一个定时提醒功能接了进去。在 Skill 里写个脚本读取一个简单的 todo.json 文件,微信里发送“明天早上九点提醒我带身份证”这类消息,OpenClaw 会把它结构化写入文件,到点以后通过消息网关主动推一条微信给我。这个没有多高大上,但生活里真的很受用。
4. 常见问题与排查技巧实录
4.1 安装和启动阶段的典型问题
openclaw 无法将“openclaw”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 是所有 Windows 玩家遇到的第一道坎。原因基本都是 PATH 环境变量没有生效,重开终端是第一步,检测你的安装目录是否确实在 PATH 里是第二步,实在不行就手动添加。还有一种情况是你用了非常老的 PowerShell 版本,导致安装脚本执行不完整,建议把 PowerShell 升级到 5.1 以上,或者直接用 Windows Terminal 来跑。
另一个常见问题是想更新到测试频道,看到别人说 openclaw update --channel dev,自己执行却提示“无法识别 channel”。这个命令本身没问题,是你当前的 OpenClaw 版本太老,不支持这个参数。先执行一次 openclaw update --channel stable 把本体升到最新稳定版,然后再切 dev 通道。生产环境我强烈建议用 stable,dev 通道偶尔会有破坏性更新,没必要拿自己的主力工具来冒险。
4.2 模型接入后的调参问题
模型配置好之后,最常遇到的现象是“回答很犹豫”。比如你问“帮我查下磁盘”,它回了很长一段“好的,我来帮你查看磁盘信息”,然后才开始行动。这种问题不是模型不对,而是 temperature 太高,模型在“对话”而不是“执行”。把温度降到 0.3 以下,同时把系统提示词改成类似“你是严格遵循指令的自动化代理,直接执行任务,不要输出任何寒暄”的表述,现象会立刻改善。
另一个高频坑是 API Key 写错位置。OpenClaw 除了主配置文件,还允许通过环境变量设置密钥。如果你既在环境变量里配了在配置文件里也配置了,部分版本会优先读环境变量,导致你改了配置文件没效果。排查时执行 openclaw config list 看一下实际生效的 provider,确认没有两处配置互相覆盖。
4.3 微信消息收不到或者不回
微信层面如果消息没到网关,先看网关的访问日志。在网关目录执行 uvicorn main:app --host 127.0.0.1 --port 8050 --log-level debug,启动后日志里能看到每次 hook 请求的记录。如果日志里什么都没有,证明微信通道工具根本连不上网关,检查回调地址是不是填了 127.0.0.1,而微信通道工具运行在另一台设备上——127.0.0.1 永远指向本机,跨设备必须填电脑的局域网 IP,或者在电脑端跑通道工具。
如果日志显示请求进来了,但 OpenClaw 没有返回结果,多半是任务执行超时。微信里的文本被转化成任务后,大模型需要时间,Skill 脚本也要时间,如果脚本里卡在某个网络请求上,整个任务就会堵住。这时候把网关代码里的 timeout 调大到 300 秒,同时让 OpenClaw 的任务脚本里尽量加超时控制和异常捕获,别让一个子任务卡死整条链路。
4.4 权限审批和执行白名单问题
微信通道接入后,最容易出现的隐形故障是任务“半路卡死”。用户发了消息,网关转发了,OpenClaw 也接收了,但 Skill 需要执行一条没在白名单里的命令,于是弹出了审批确认框,电脑前没人点,任务就永远挂在等待状态。这个问题隐蔽在日志里几乎看不到明显报错,只能看到任务状态一直是 pending。
解决方案就是我在 2.3 节说的,提前把 Skill 用到的所有命令完整加入 exec-approvals.json。如果你不确定某个 Skill 会触发哪些命令,可以先在前台交互模式下用同一个任务跑一遍,OpenClaw 会把每次弹出的审批命令记录下来,再去查看 exec-approvals.json 文件,里面就是你需要的命令列表。注意,每次更新 Skill 脚本以后,命令路径可能变化,需要同步更新白名单,否则会自动触发新的审批请求。
5. 写在最后:几个我自己长期在用的习惯
这套东西跑通以后,我微信里多了一个“私人 AI 入口”,它不叫机器人,就是我自己在跟它对话,但背后干活的是家里的电脑。几个月用下来,我想分享几条真实习惯。
第一,Skill 永远比裸奔对话可靠。用户直接发自然语言给大模型,太容易跑偏;而封装好参数和脚本的 Skill,每次执行结果都是可预期的。我给自己定了个规矩:任何任务如果一周内重复出现三次,就把它固化成 Skill,不能每次都靠模型临场发挥。
第二,日志和状态可视化要做。我写了一个极简的日志轮转,OpenClaw 服务、网关、Skill 执行三个模块分别写各自日志,放一个目录里。出问题时先看三份日志的时间戳排列,基本一眼就能定位是哪一层的问题。
第三,也是最想提醒的:入口越方便,越要克制。微信消息可以直接触发电脑命令,意味着只要手机被捡到、微信号被登录,这台电脑就有被远程执行命令的可能。我最终只放开了几个无破坏性的技能,删除、格式化、支付、读取敏感文件类的命令一概不进白名单,宁可每次手动到电脑上操作,也不图省事给自己留一个后门。能力越大,越要意识到风险边界在哪。
“大结局”不代表结束,只是把这套 AI 代理工具真正接到了我的生活里。接下来我会把精力放在 Skill 的扩展和日常流程的打磨上,如果你也把微信入口打通了,欢迎你聊聊你接的第一个 Skill 是什么。
