Hermes 支持个人微信接入:扫码即连,内置 AES 加密和长轮询

核心看点

  • 📱 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 后,向导会:

  1. 从 iLink Bot API 请求二维码
  2. 在终端显示二维码(或提供 URL)
  3. 等待你用手机微信扫码确认登录
  4. 自动保存 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

群聊默认关闭是因为个人微信号通常加入很多群,全部开放容易”炸群”。可以根据需要设为 allowlistopen

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

(0)
上一篇 7小时前
下一篇 4小时前

相关推荐