这个适配器是针对个人微信账号的,使用的是腾讯的 iLink Bot API。它通过 HTTP 长轮询(long-polling)接收消息,因此不需要公网端点或 Webhook。如果你需要企业微信,请使用 WeCom 适配器。
一个个人微信账号
Python 包:aiohttp 和 cryptography
qrcode 包(可选,用于在终端中显示二维码)
安装依赖:
pip install aiohttp cryptography
# 可选:用于终端二维码显示
pip install qrcode
执行以下命令:
hermes gateway setup
在提示中选择 Weixin。向导会自动完成以下操作:从 iLink Bot API 请求二维码 → 在终端显示二维码(或提供一个 URL)→ 等待你用微信手机端扫码 → 提示你在手机上确认登录 → 自动将账号凭证保存到 ~/.hermes/weixin/accounts/。
成功后你会看到类似消息:微信连接成功,account_id=your-account-id
向导会自动保存 account_id、token 和 base_url,无需手动配置。
QR 登录完成后,在 ~/.hermes/.env 中至少设置 account ID:
WEIXIN_ACCOUNT_ID=your-account-id
# 可选:访问控制
WEIXIN_DM_POLICY=open
WEIXIN_ALLOWED_USERS=user_id_1,user_id_2
# 可选:定时任务/通知的主频道
WEIXIN_HOME_CHANNEL=chat_id
WEIXIN_HOME_CHANNEL_NAME=Home
hermes gateway
适配器会恢复已保存的凭证,连接 iLink API,并开始长轮询接收消息。
该适配器支持非常丰富的功能,包括:长轮询传输(无需公网端点)、二维码扫码登录、私聊和群聊消息(可配置访问策略)、媒体支持(图片/视频/文件/语音)、AES-128-ECB 加密的 CDN 媒体传输(自动加解密)、上下文 Token 持久化(重启后保持回复连续性)、Markdown 格式适配(标题/表格/代码块自动转换为微信可读格式)、智能消息分块(4000 字符以内保持单条发送)、输入中提示("对方正在输入…")、消息去重(5 分钟滑动窗口)以及自动重试与退避机制。
私聊策略(DM Policy) 默认为 open(任何人可以私聊机器人),可设为 allowlist(仅白名单用户)、disabled(忽略所有私聊)或 pairing(配对模式)。
群聊策略(Group Policy) 默认为 disabled(忽略所有群消息,这是有意为之,因为个人微信可能在很多群中)。可设为 open 或 allowlist。
启动失败提示缺少 aiohttp/cryptography:执行 pip install aiohttp cryptography
提示缺少 WEIXIN_TOKEN:重新运行 hermes gateway setup 完成扫码登录
会话过期(errcode=-14):重新运行 hermes gateway setup 扫描新二维码
机器人不回复私聊:检查 WEIXIN_DM_POLICY 是否设为 allowlist 且发送者不在白名单中
机器人不回复群消息:群策略默认为 disabled,需要设置 WEIXIN_GROUP_POLICY=open 或 allowlist
终端二维码无法显示:安装 pip install qrcode,或使用终端上方打印的 URL 链接
整个流程非常简洁:安装依赖 → 运行 hermes gateway setup 扫码 → 配置环境变量 → 启动 hermes gateway,就可以让 Hermes Agent 通过你的个人微信收发消息了。
