这是一个用于 OpenClaw 的微信频道插件(weixin),由 qqbot 精简改造而来,面向个人自用。
- 处理个人用户发来的消息
- 处理群聊中的 @Bot 消息(群艾特)
注意:目前只支持处理文本消息
注意:消息推送和回复接口是插件的关键适配点,需要你根据自己的微信网关/服务实现。
个人微信并没有官方API,如果你想要接入,需自己完成消息监听、推送和回复,大概是以下步骤:
- 你自己的微信连接层(通过
Hook、协议等)负责把消息推送到插件,消息需包含replyUrl字段 - 插件将消息转成 OpenClaw 事件并交给主应用
- 插件调用
${replyUrl}sendText/进行回复 - 你自己的回复层负责把 bot 的输出转回微信
index.ts:插件入口src/api.ts:微信 API 适配层src/channel.ts:OpenClaw 渠道实现src/gateway.ts:消息路由与状态src/outbound.ts:发送消息接口src/runtime.ts:运行时逻辑src/types.ts:类型定义src/config.ts:配置加载
- 克隆仓库并安装依赖:
git clone https://github.com/ljc545w/weixin/
cd weixin
pnpm install- 在 OpenClaw 主程序中启用插件:
openclaw plugin install ./weixin
openclaw plugin enable weixin- 完成
weixin插件配置。 3.1 在openclaw.json.channels.weixin中配置accountId(机器人的微信ID)。 3.2 在openclaw.json.channels.weixin中配置gateway,插件会基于此地址启动wss或http服务,然后,你需要自行完成消息监听,将消息推送到该地址。 3.3 设置openclaw.json.channels.weixin.enable为true。 3.4 在openclaw.json.channels.weixin.allowFrom添加允许执行/new等命令的用户微信ID。
本插件支持消息事件的接收和处理,但以下部分需要你自己实现对接:
- 接收微信消息后推送到插件:
src/gateway.ts、src/api.ts - 解析 OpenClaw 输出并回复给目标用户:
src/outbound.ts - 群 @ 解析与回复定位(@用户)
- 在你的微信网关中把个人消息转换为插件输入事件。
- 把群消息艾特
bot的场景映射到插件事件(at标记)。 - 插件的发送接口(
outbound)会将回复内容发送到你的网关,由你返回给用户,因此,网关须支持sendText/路由。 - 测试个人与群 @ 回复行为。
- 输入消息格式:参考
src/types.ts/WeixinMessage - 输出消息格式:
{ accountId, userName, content }
你可以根据自己的网关 layer 扩展字段。
- 目前此插件只做消息桥接逻辑,不含完整微信客户端认证/会话管理。
- 请勿直接把敏感信息写入仓库。
欢迎把这个仓库当作你自己微信自用的起点:
如果你愿意,也可以把你的创意提 PR 回 upstream。
weixin:由 qqbot 精简改造的 OpenClaw 微信频道插件,特别感谢原作者sliverp的贡献。