核心看点
- 📱 Hermes 正式支持个人微信(Weixin)接入,使用腾讯 iLink Bot API
- 🔒 内置 AES-128-ECB 加密 CDN,自动完成媒体文件的加密/解密传输
- ⚡ 长轮询获取消息,无需公网 IP、Webhook 或 WebSocket
Hermes 网关近日新增了对个人微信的 adapter——Weixin。与企业微信(WeCom)不同,这个 adapter 面向的是个人微信账号,基于腾讯的 iLink Bot API 实现,让开发者能把自己的 AI agent 快速接入微信生态。
快速接入:扫码即连
最便捷的接入方式是通过交互式向导:
hermes gateway setup
选择 Weixin 后,向导会:
- 从 iLink Bot API 请求二维码
- 在终端显示二维码(或提供 URL)
- 等待你用手机微信扫码确认登录
- 自动保存 account_id、token 和 base_url
成功后你会看到:
微信连接成功,account_id=your-account-id
核心特性一览
长轮询接收消息
不需要公网端点、Webhook 或 WebSocket。Adapter 通过 HTTP 长轮询(35 秒超时)持续从 iLink API 拉取消息,网络中断后还能通过磁盘持久化的同步指针恢复。
AES-128-ECB 加密 CDN
微信媒体文件全程走加密 CDN。Inbound 时下载并解密,Outbound 时本地加密后上传,AES key 自动管理,开发者无需关心加密细节。
自动消息分片
微信单条消息有 4000 字符限制。Adapter 会智能按段落、代码块边界拆分长消息,代码块不会被拦腰截断。
Markdown 适配
个人微信不支持原生 Markdown。Adapter 会自动转换:
- H1 标题 → 【标题】
- H2+ 标题 → **标题**
- 表格 → 键值对列表
- 代码块保持原样
权限控制:DM 和群聊分开管理
为适应个人微信的使用场景,默认策略比较保守:
# 私聊策略(默认 open)
WEIXIN_DM_POLICY=open
# 群聊策略(默认 disabled)
WEIXIN_GROUP_POLICY=disabled
群聊默认关闭是因为个人微信号通常加入很多群,全部开放容易”炸群”。可以根据需要设为 allowlist 或 open。
Context Token 持久化
iLink API 要求回显 context_token 才能保持对话连续性。Adapter 会把它按 account+peer 持久化到磁盘,即使网关重启也不会丢上下文。
媒体支持
接收:图片(JPEG)、视频(MP4)、文件、语音(如有转录优先用文本,否则下载 SILK 音频)。
发送:支持 send_image、send_document、send_video,所有 outbound 媒体自动走加密 CDN 上传流程。
安装依赖
pip install aiohttp cryptography
# 可选:终端二维码显示
pip install qrcode
值得注意的地方
- 📌 同一 token 只能被一个网关实例使用,启动时会加锁
- 📌 消息去重窗口为 5 分钟,防止网络抖动导致重复处理
- 📌 会话过期(errcode=-14)时会自动暂停 10 分钟,需重新扫码
- 📌 outbound 媒体 URL 会经过 SSRF 校验,仅限公网地址
适用场景
如果你想给自己或团队搭一个能跑在个人微信上的 AI 助手,处理私聊问答、群组信息汇总、定时通知推送等任务,这个 adapter 提供了一个相对完整的方案。
本文地址:https://www.163264.com/10866