Files
weixin_ClawBot_Bridge/docs/01-overview.md
T

99 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 01 — 概述:ClawBot、iLink、OpenClaw 是什么关系
## 1. 背景
2026 年 3 月,微信上线了官方插件 **微信 ClawBot**(入口:微信 → 我 → 设置 → 插件 → 微信 ClawBot),这是微信**首次官方开放个人账号的 Bot API**。在此之前,程序控制微信只有灰色手段:
| 方式 | 典型实现 | 性质 |
|---|---|---|
| 逆向 iPad/网页协议 | WeChatPadPro、itchat(-uos) | 违反用户协议,随时封号 |
| PC 客户端 Hook | DLL 注入、内存读写 | 违法风险,高封号率 |
| 企业微信 API | 官方开放 | 合法,但面向企业不是个人微信 |
| **ClawBot / iLink** | 微信内置官方插件 | **官方产品,有专项使用条款背书** |
腾讯为此发布了《微信 ClawBot 功能使用条款》(签订地深圳南山,适用中国大陆法律)。条款明确腾讯的定位:**只提供消息收发通道,不存储用户输入/输出内容,不提供 AI 服务**——AI 能力完全由开发者自己接。
## 2. 三个概念的分工
| 名词 | 是什么 | 谁的产品 |
|---|---|---|
| **ClawBot** | 微信客户端内置插件,用户在微信里看到的 AI 联系人(带 "AI" 标识的普通聊天窗口) | 腾讯 |
| **iLink(智联)** | Bot 通信协议,HTTP/JSON + 长轮询,服务端 `ilinkai.weixin.qq.com` | 腾讯 |
| **OpenClaw** | 开源 AI Agent 框架(2025-11 首发,昵称"小龙虾"),腾讯官方通道的默认宿主 | 第三方开源社区(非腾讯) |
关系链条:
```
用户 → 微信客户端(ClawBot 插件) → iLink 服务器 → Bot 后端(默认是 OpenClaw,可以是任何东西)
```
腾讯发布的 npm 包:
- `@tencent-weixin/openclaw-weixin-cli` — 一键安装工具(检测 openclaw → 装插件 → 引导扫码 → 重启 gateway)
- `@tencent-weixin/openclaw-weixin` — 真正的协议实现包(TypeScript,约 41 个源文件:`auth/`、`api/`、`cdn/`、`messaging/`、`monitor/`、`config/`、`storage/`)
## 3. 关键事实:iLink 不绑定 OpenClaw
**iLink 是标准 HTTP/JSON API,与 OpenClaw 框架零耦合。** 官方的 npm 包只是协议的一个封装实现。任何语言、任何进程都可以直接调 iLink:
- 无需公网 IP(长轮询,主动外连)
- 无需 SDK(`fetch` / `requests` 即可)
- 无需安装 OpenClaw
已有的非 OpenClaw 实践:
- [cc-weixin](https://github.com/hao-ji-xing/cc-weixin):把 Claude Code Agent 接进微信
- [OpenAkita](https://github.com/openakita/openakita/blob/main/docs/im-channels.md):Python Agent 框架的微信适配器,直调 iLink 原生 API
- [openclaw-weixin-sdk](https://github.com/openclaw-java/openclaw-weixin-sdk):Java SDK + CLI + Web Terminal
> 协议跟随情况:2026-04 官方包已迭代到 2.1.x,但 iLink HTTP 协议本体(`getupdates` / `sendmessage` / `getuploadurl` / AES-128-ECB / CDN)未变,第三方适配器无需改动。
## 4. 能力边界总览
下表合并了多个来源的观察,**存在版本差异和放量灰度,标注 ⚠️ 的项建议实测确认**:
| 项 | 状态 | 备注 |
|---|---|---|
| 私聊(1 对 1) | ✅ 支持 | 主要形态 |
| 群聊 | ⚠️ 未开放/存疑 | 协议源码有 `group_id` 字段,但多数资料称群聊未开放 |
| 文本收发 | ✅ | 微信侧不支持 Markdown 渲染,发送时应转纯文本 |
| 图片收发 | ✅ | CDN + AES-128-ECB 加密 |
| 语音 | ⚠️ 入站 ✅ / 出站存疑 | 入站 silk 编码且附 ASR 转写文本;有资料称 bot 暂不能主动发语音,也有适配器实现了语音上传 |
| 文件/视频 | ⚠️ 协议支持 | item type 有定义,CDN 链路完整;早期资料称"仅文本",后续适配器已实现 |
| 主动推送 | ⚠️ 受限 | 需携带入站消息返回的 `context_token`;有资料称超过 24h 窗口后送达不到 |
| 历史消息拉取 | ❌ | 只有游标机制,无历史 API |
| 一个微信号绑定 bot 数 | 1 个 | 一个微信号 = 一个 bot 实例 |
| 客户端版本要求 | iOS ≥ 8.0.70 | 有资料称安卓 ≥ 8.0.70、鸿蒙 ≥ 8.0.16.40 也已支持 ⚠️ |
| 开放状态 | 逐步放量 | 不是所有账号都能看到插件入口 |
## 5. 合规要点(详细条款解读见 06 文档)
- 这是官方通道,正常使用无封号风险——这是它相对 itchat/Wechaty 的核心价值。
- 腾讯保留限速、内容识别、拦截、终止连接的权利(条款 4.7)。
- 腾讯不存储消息内容,但收集 IP、操作日志、设备信息用于安全审计(条款 5.3)。
- 禁止用于绕过微信技术保护、违法违规、危害网络安全等用途(条款 4.6)。
- 腾讯可随时变更/终止服务(条款 7.2)——**核心业务不要单点依赖它,设计降级方案**。
## 6. 与其他 IM 通道的对比(选型参考)
如果你的 AI 项目不只接微信,可以横向比较(数据来自 OpenAkita 的多平台实践):
| 平台 | 接收方式 | 需要公网 IP | 群聊 | 合法性 |
|---|---|---|---|---|
| 微信个人号(iLink) | HTTP 长轮询 | 否 | ⚠️ 未开放 | 官方 |
| Telegram | 长轮询 / Webhook | 否 | ✅ | 官方 |
| 飞书 | WebSocket 长连接 | 否 | ✅ | 官方 |
| 钉钉 | Stream (WebSocket) | 否 | ✅ | 官方 |
| 企业微信 | HTTP 回调 | **是** | ✅ (@机器人) | 官方 |
| QQ 官方机器人 | WebSocket | 否 | ✅ | 官方 |
微信 iLink 的独特优势:用户在**自己的微信主界面**直接和 AI 聊,零安装、零跳转,体验最接近"真人联系人"。独特劣势:仅私聊、主动消息受限、灰度放量。
## 参考资料
- [微信 Bot API 技术解析:腾讯 iLink 协议首次合法开放](https://github.com/hao-ji-xing/openclaw-weixin/blob/main/weixin-bot-api.md)
- [WeChat ClawBot iLink 协议解析 — Charles Li](https://www.chihao.li/blog/zh/wechat-clawbot-ilink-protocol)
- [微信 ClawBot 是什么?OpenClaw 接入微信完整解读](https://xiaoman.lovetalkon.com/blog/openclaw-wechat-ai)
- [OpenAkita IM 通道集成指南](https://github.com/openakita/openakita/blob/main/docs/im-channels.md)
- [openclaw-weixin-sdk (Java) README](https://github.com/openclaw-java/openclaw-weixin-sdk)