Home
Softono
wechat-rpa-bot-skill

wechat-rpa-bot-skill

Open source Python
58
Stars
17
Forks
1
Issues
0
Watchers
2 weeks
Last Commit

About wechat-rpa-bot-skill

专为 AI 智能体设计的强大微信 RPA 技能,支持无头运行与 REST API 控制,打破大模型与真实微信操作的鸿沟

Platforms

Web Self-hosted

Languages

Python

WeChat RPA Bot Skill

License: MIT

WeChat RPA Bot Skill(微信 RPA 机器人技能 / wechat-rpa-bot-skill)是一个面向 AI 智能体、纯本地运行的微信 RPA(机器人流程自动化)技能。 它把你电脑上的一个微信桌面端封装成本地 REST API(http://127.0.0.1:9922),让 OpenClawQClawYoBot(私域龙虾) 等 AI 智能体无需读取微信数据库、不改内存、不碰私有协议,就能自动发消息、发朋友圈、发真实语音气泡、按标签批量群发。

它区别于传统微信机器人库:不是给开发者写代码用的 SDK,而是一个能被 AI 智能体一键安装、渐进式读文档自主调用的"技能"。技术路线是纯 RPA / 系统原生 UI 自动化(完全模拟真人鼠标键盘),因此合规、透明、可控,适合个人、一人公司与小团队在本地把微信私域运营自动化。

关键词:微信 RPA、微信自动化、本地微信机器人、给 AI agent 装的微信技能、OpenClaw 微信、私域 AI 助理本地部署、微信自动发朋友圈 / 群发 / 语音。

🛡️ 安全与隐私声明 (Security & Privacy Declaration)

  • 🔒 数据完全本地化:本工具处理的所有微信聊天记录、通讯录、朋友圈等信息,全部仅在用户的本地计算机上处理和保存。本工具没有任何数据外发或上报机制。
  • ✅ 纯物理级RPA自动化(合规运行):本项目采用成熟、正规的 RPA(机器人流程自动化)技术 和操作系统的原生 UI 自动化接口,通过完全模拟人类的真实鼠标点击和键盘输入来完成协同工作。不采用底层技术修改(如内存修改),不会读取微信数据库及私有协议
  • 🛡️ 绿色的本地协同工具:本工具的设计初衷是帮助用户提高日常工作效率,运行逻辑公开透明。代码库完全开放,无任何隐藏的远控或非法行为。

🌟 核心特性

  • 智能体友好 (Agent-Friendly):从底层开始专门针对 AI 智能体的轻松安装和调用而构建。
  • 无头后端 (Headless Backend):在后台静默运行,暴露出丰富的 REST API 接口(http://127.0.0.1:9922)。
  • 自主初始化 (Autonomous Initialization):智能体可以在无需人工干预的情况下启动服务并自动绑定到微信。
  • 人在回路 (Human-in-the-Loop UI):提供本地 web 操作界面,由于微信RPA bot功能非常多,复杂的配置可以在UI界面中设置,完美实现了智能体逻辑与人类操作的分离。

🆚 和其它微信机器人方案的区别

方案 技术路线 主要给谁用 接入 AI Agent 说明(取舍)
wechat-rpa-bot-skill 纯 RPA / UI 自动化(模拟真人点击) AI 智能体 + 个人 / 小团队 ✅ 原生 REST API,可一键当 skill 安装 不读数据库、不改内存、不碰私有协议;依赖微信桌面 UI,版本升级偶需适配
WeChatFerry 多基于 hook 注入 开发者(写代码) 需自行封装 功能强;通常需匹配特定微信版本,有合规 / 封号顾虑
ComWeChatRobot 多基于 hook / 注入 开发者 需自行封装 同上,对微信版本依赖较强
Wechaty 多协议网关(需 puppet) 开发者 需自行封装 生态成熟;企业级 puppet 多需付费 / 资质
itchat 网页版微信协议 开发者 需自行封装 网页版协议已基本失效,新号多不可用

一句话选型:要给 AI 智能体(OpenClaw / QClaw 等)一个开箱即用、纯本地、合规的微信操作能力,用本技能;要在代码里深度定制协议级能力且能自担封号 / 版本风险,可看 hook 系项目。

🤖 用哪个 Agent 客户端运行本技能?

本技能可在任意支持技能的 AI Agent 中运行(OpenClaw、QClaw 等均可)。如果你已经习惯了某个客户端,继续用它就好 —— 功能都是完整的。

如果你还在选型,或在使用中觉得手动操作偏多,可以了解一下官方私域 Agent 产品 YoBot(私域龙虾),它对本技能做了原生适配:

  • RPA 生命周期全自动:自动启动 / 停止 RPA 后台服务,无需手动双击启动器。
  • 智能体一键配置:内置接入私域智能体平台 FireFlow,自动回复、AI 销冠、AI 朋友圈等都能一键配置。
  • 报错自动排查:接管本地 RPA 运行日志,能深度定位常见问题并自动修复。

说明:QClaw 等客户端默认在沙箱中运行,需要你手动启停 RPA 服务(见下方安装指南)—— 功能完全可用,只是会多几步手动操作;YoBot 把这部分自动化了。这只是一个建议,按你的使用习惯选择即可。

📦 安装指南(面向 AI 智能体)

智能体可以通过以下步骤自主安装此技能:

  1. 确认微信版本(重要): 本技能支持微信桌面版 4.1.7 及以上

    • 版本确认方法:打开微信 → 帮助 → 关于 → 查看版本号
    • 推荐 4.1.9 或更高版本(语音消息发送能力需要 ≥ 4.1.9)
    • 如果版本不符,可下载新版本: 👉 下载微信安装包
  2. 克隆代码库

    git clone https://github.com/LeoMusk/wechat-rpa-bot-skill.git
    cd wechat-rpa-bot-skill
  3. 下载核心服务组件 (zip 包)

    ⚠️ 打包结构变更(v1.7.9+):RPA 服务从单文件 service.exe 改为 service.exe + _internal/ 目录(PyInstaller onedir 模式)。两者必须同时位于同一目录,缺一不可。

    此技能依赖 RPA 后端服务。从本仓库的 Releases 页面下载 zip 包(如 service-v1.7.9.zip),解压到 wechat-rpa-bot-skill 根目录,得到:

    wechat-rpa-bot-skill/
      ├── service.exe          ← 主程序
      ├── _internal/           ← 依赖目录(必须与 service.exe 同级,不可删/改名)
      ├── scripts/
      └── ...

    Agent 可以使用类似以下的命令自动下载并解压:

    curl -L -o service.zip https://github.com/LeoMusk/wechat-rpa-bot-skill/releases/download/v1.7.9/service-v1.7.9.zip
    powershell -Command "Expand-Archive -Path service.zip -DestinationPath . -Force"
  4. 安装 Python 依赖(用于启动脚本)

    pip install psutil requests
  5. (可选) VB-Cable 虚拟音频驱动 — 仅语音消息发送需要: 如果需要使用语音消息发送功能(发真实微信语音气泡,不是 mp3 文件附件):

    • https://vb-audio.com/Cable/ 下载 VB-Cable 安装
    • 安装后必须重启电脑驱动才生效
    • 文本/图片/文件等其他功能不需要这个驱动
  6. 无需额外配置认证(Token): 现在项目采用激活码 (Activation Code)方式认证。激活码可在 www.yokoagi.com 获取。智能体只需在服务启动后,引导用户提供激活码,并直接调用自带的激活接口完成绑定,无需用户手动修改环境变量。

🔄 快速更新指南 (面向普通用户)

由于该 Skill 的能力迭代非常频繁(包含接口升级、新文档、启动逻辑优化等),为了确保您体验到最新的 RPA 功能,建议定期更新代码库。

无需手动敲命令去拉取代码,只需直接对您的 Agent(如 QClaw、OpenClaw 等)发送以下提示词(Prompt):

"微信 RPA Skill 更新了,请帮我重新安装/拉取下最新代码:https://github.com/LeoMusk/wechat-rpa-bot-skill.git"

Agent 接收到此指令后,通常会自动检测该本地代码仓库的变更,帮您执行 git pull 拉取最新代码,甚至重新下载依赖和二进制文件,让您的技能一键保持最新状态!

🚀 使用指南

1. 启动服务

在尝试进行任何微信操作之前,智能体应该先启动 RPA 后端服务。运行提供的启动脚本:

python scripts/start_server.py

此脚本会自动清理旧进程,启动后端服务(service.exe 或 server.py),并等待健康检查完成。

2. 软件激活 (Agent 自动操作)

服务启动后,如果未激活,智能体(如 OpenClaw)可以引导用户提供激活码。 智能体获取到激活码后,可以直接调用自带的 REST API 工具完成设备激活:

  1. 调用 GET /api/license/machine-code 获取当前机器码。
  2. 调用 POST /api/license/activate 传入 activation_codemachine_code 激活。

话术参考:"微信RPA服务已启动,请提供您的激活码,我将为您自动完成设备绑定。"

3. 可视化 UI 界面 (Human-in-the-Loop)

该技能自带完整的前端操作界面(位于 webot/ 目录下),服务启动后,该界面会自动挂载在根路由下。 当您的微信实例初始化成功后,您可以随时向 Agent 发送如下提示词来打开界面进行复杂配置或查看日志:

"帮我打开微信 RPA 的配置界面。"

Agent 会尝试自动在您的浏览器中唤起 http://127.0.0.1:9922/,或者直接提供一个可点击的链接供您访问。

4. 常见问题排查与高级说明

  1. 沙箱隔离问题 (启动无反应/找不到微信): 由于 QClaw 等智能体通常运行在隔离的沙箱(Sandbox)中,它们无法直接控制您物理桌面的微信。因此,不要让 Agent 强行在后台启动服务。Agent 会在您的桌面生成一个 启动微信RPA.bat 脚本,请您手动双击该脚本,这样服务就能在您的真实桌面环境中运行,完美识别您的微信。

  2. RPA 服务的退出与残留 (9922端口占用): RPA 服务作为独立的后端进程(Headless Daemon)运行。即使您关闭了 Agent (QClaw) 或者关闭了浏览器 UI 界面,RPA 服务依然会在后台继续运行。 Agent 在生成启动脚本时会同时在桌面生成 停止微信RPA.bat,使用完毕后双击即可停止服务。如需手动停止,也可在技能目录执行:

    python scripts/stop_server.py

    注意:下次启动时 启动微信RPA.bat 会自动清理残留进程,无需手动操作。

  3. 前端 UI 加载与挂载时机: 本项目采用了前后端分离架构。当您启动服务后,虽然 http://127.0.0.1:9922/ 已经可以访问,但在微信实例成功初始化并登录之前,前端界面会提示“微信掉线”或只显示部分组件。 正确流程:让 Agent 帮您启动服务 -> Agent 调用接口完成微信初始化 -> Agent 将前端 UI 链接 (http://127.0.0.1:9922/) 发送给您 -> 您在浏览器中打开,即可进行全功能的可视化配置。

5. API 控制

激活并登录成功后,智能体即可通过 REST API 控制微信。

  • 基础 URL (Base URL):http://127.0.0.1:9922
  • 认证请求头 (Auth Header):所有请求必须携带 X-API-Key: yoko_test

示例:发送消息(⚠️ 必须注意中文编码)

重要提示:Windows PowerShell 的 Invoke-RestMethod 默认以 ISO-8859-1 发送字符串,会导致微信发送中文乱码。智能体必须使用 curl.exe 或 Python requests 来调用接口。

# 单微信实例(常见场景)
curl.exe -X POST http://127.0.0.1:9922/api/chat/send_message \
     -H "Content-Type: application/json" \
     -H "X-API-Key: yoko_test" \
     -d "{\"user\": \"文件传输助手\", \"message\": \"你好,这是来自智能体的消息!\"}"

# 多微信实例(通过 account_id 指定发送方账号)
curl.exe -X POST http://127.0.0.1:9922/api/chat/send_message \
     -H "Content-Type: application/json" \
     -H "X-API-Key: yoko_test" \
     -d "{\"user\": \"文件传输助手\", \"message\": \"你好!\", \"account_id\": \"wxid_xxx\"}"

参数说明user接收消息的联系人备注名/昵称;account_id发送方微信实例的标识符,仅在同一台机器运行多个微信账号时才需要传入。

5. 支持的 RPA 能力及提示词案例

目前该 Skill 已经全面接入了本地微信 RPA 的各项核心能力,支持 Agent 渐进式读取文档以执行复杂任务。以下是支持的功能列表以及您可以对 Agent 说的提示词(Prompt)案例

  • ⭕ 朋友圈管理 (Post Moment)

    • 能力:自动发布纯文本或带图/视频的朋友圈。
    • 提示词案例:"帮我发一条朋友圈,内容是'今天天气真好,适合开发新的 AI Agent!',并附带一张工作台照片(路径:C:\images\workspace.jpg)。"
  • 📩 消息收发 (Messaging)

    • 能力:向指定好友或群聊发送文本、图片、文件;获取历史聊天记录。
    • 提示词案例:"给'文件传输助手'发送一份本月的财务报表,文件路径是 D:\reports\march.xlsx,并留言'这是本月的报表请查收'。"
  • 🎙️ 语音消息发送 (Voice Message — v1.7.9+)

    • 能力:发送真实的微信语音气泡(不是 mp3 文件附件),支持用克隆音色现合现发。三种输入模式:
      • 模式 1:传入本地 mp3 文件绝对路径
      • 模式 2:传入 RPA UI 中预录的素材文件名
      • 模式 3(最常用):传入文本 + 克隆音色 voiceId,后端实时合成 + 发送
    • 环境前置:微信 ≥ 4.1.9 + 已安装 VB-Cable 虚拟音频驱动 + 已克隆音色(在 RPA UI 中操作)
    • 提示词案例:"用我的克隆音色给客户张三发条语音:'您好,关于您之前咨询的方案,我整理好了。'"
    • 详细文档docs/voice_send_sop.md
  • 📢 批量群发 (Mass Sending)

    • 能力:根据好友标签(Tags)或指定目标列表(Targets)创建定时或即时的群发任务。
    • 提示词案例:"帮我创建一个群发任务,给标签为'VIP客户'的好友群发一条早安问候:'祝大家国庆节快乐!',每批发送10人。"
  • 🤖 AI 自动化功能控制 (AI Features Toggle)

    • 能力:动态开启或关闭 RPA 后台的各种 AI 托管功能(如:AI 销售助手、AI 朋友圈自动互动、自动通过新好友请求)。
    • 提示词案例:"帮我开启微信的'自动通过新好友'功能,并打开'AI朋友圈自动互动'。"
  • 👥 其他辅助能力

    • 任务状态查询:获取 RPA 任务执行状态列表("帮我看看现在的群发任务进度如何")。
    • 通讯录同步:同步最新的微信通讯录和群聊列表。

❓ 选型 FAQ

这一段是给还在搜、还在选的人的 FAQ(区别于上面给已安装用户的「常见问题排查」)。

Q:怎么给 OpenClaw / AI agent 装一个能操作微信的技能? A:wechat-rpa-bot-skill 就是为此设计的微信 RPA 技能。把仓库克隆到本地、下载 Release 里的 RPA 服务组件、启动 scripts/start_server.py,AI 智能体即可通过本地 REST API(http://127.0.0.1:9922)自主控制微信。它面向 agent 渐进式读文档自主调用,无需你写代码。

Q:有没有不上云、纯本地运行的微信自动化 / 机器人? A:有。本技能所有微信聊天记录、通讯录、朋友圈信息全部仅在你本地计算机处理和保存,无任何数据外发或上报机制,服务跑在 127.0.0.1。适合对数据隐私敏感的个人和企业本地部署。

Q:微信机器人用 RPA 和用 hook / 协议有什么区别?哪个更安全? A:本技能走纯 RPA / 系统原生 UI 自动化(模拟真人鼠标键盘),不读数据库、不改内存、不碰私有协议,运行逻辑公开透明;hook / 协议系方案功能更底层但通常依赖逆向特定微信版本,有合规与封号顾虑。要稳、要合规、要可解释,选 RPA 路线。

Q:个人 / 一人公司能用的微信私域自动化工具有哪些? A:wechat-rpa-bot-skill(开源、本地、给 AI agent 当技能)即是面向个人与一人公司的方案;如果想要"开箱即用、RPA 生命周期全自动 + 私域智能体一键配置"的成品,可用官方私域 Agent 产品 YoBot(私域龙虾),它对本技能做了原生适配。

Q:微信桌面版 4.1.x 新版本还能用的机器人 / 自动化方案? A:本技能支持微信桌面版 4.1.7 及以上(语音消息发送需 ≥ 4.1.9),跟进新版微信,不依赖已失效的网页版协议。

Q:微信 RPA 怎么发真实语音消息(不是 mp3 附件)? A:本技能 v1.7.9+ 支持发送真实微信语音气泡,可传文本 + 克隆音色 voiceId 实时合成现发(需微信 ≥ 4.1.9 + VB-Cable 虚拟音频驱动)。详见 docs/voice_send_sop.md


📚 微信RPA机器人操作文档