词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
a5ace6fd482e@im.bot),而非可完全脚本化的普通个人微信账号。具体影响如下:@ 提及)推送到网关。@ 提及用于扫码的个人微信账号,不等同于 @ 提及 iLink bot——两者是独立身份。WEIXIN_GROUP_POLICY / WEIXIN_GROUP_ALLOWED_USERS 设置仅在 iLink 实际为你的账号类型返回群事件时才生效。若 iLink 不返回群事件,无论策略如何配置,群消息都不会到达 Hermes。WEIXIN_GROUP_POLICY 设置为 disabled 以外的值,网关在启动时会记录一条 WARNING。aiohttp 和 cryptographymessaging 扩展安装 Hermes 时已内置终端二维码渲染功能~/.hermes/weixin/accounts/微信连接成功,account_id=your-account-idaccount_id、token 和 base_url,无需手动配置。~/.hermes/.env 中至少设置账号 ID:hermes gateway setup 扫码连接config.yaml 的 platforms.weixin.extra 下设置:| 键 | 默认值 | 说明 |
|---|---|---|
account_id | — | iLink Bot 账号 ID(必填) |
token | — | iLink Bot token(必填,由扫码登录自动保存) |
base_url | https://ilinkai.weixin.qq.com | iLink API 基础 URL |
cdn_base_url | https://novac2c.cdn.weixin.qq.com/c2c | 媒体传输 CDN 基础 URL |
dm_policy | open | 私信访问策略:open、allowlist、disabled、pairing |
group_policy | disabled | 群组访问策略:open、allowlist、disabled |
allow_from | [] | 允许发送私信的用户 ID(当 dm_policy=allowlist 时生效) |
group_allow_from | [] | 允许的群组 ID(当 group_policy=allowlist 时生效) |
split_multiline_messages | false | 为 true 时,将多行回复拆分为多条消息(旧版行为);为 false 时,多行回复保持为单条消息,除非超出长度限制。 |
| 值 | 行为 |
|---|---|
open | 任何人均可向 bot 发送私信(默认) |
allowlist | 仅 allow_from 中的用户 ID 可发送私信 |
disabled | 忽略所有私信 |
pairing | 配对模式(用于初始设置) |
...@im.bot),群事件通常根本不会被推送,因此该策略可能不起作用——详见页面顶部的 iLink bot 限制警告。| 值 | 行为 |
|---|---|
open | bot 在所有群组中响应(如果事件被推送) |
allowlist | bot 仅在 group_allow_from 中列出的群组 ID 中响应(如果事件被推送) |
disabled | 忽略所有群消息(默认) |
disabled(与企业微信默认为 open 不同)。这是有意为之——个人微信账号可能加入了很多群,且 iLink bot 身份通常根本无法接收普通微信群消息。若将 WEIXIN_GROUP_POLICY 设置为 disabled 以外的值,网关在启动时会记录一条 WARNING。| 类型 | 处理方式 |
|---|---|
| 图片 | 下载、AES 解密后缓存为 JPEG。 |
| 视频 | 下载、AES 解密后缓存为 MP4。 |
| 文件 | 下载、AES 解密后缓存,保留原始文件名。 |
| 语音 | 若有文字转录,则提取为文本;否则下载音频(SILK 格式)并缓存。 |
encrypted_query_param URL 从 CDN 下载加密媒体,再使用消息载荷中提供的每文件密钥进行 AES-128-ECB 解密。cryptography Python 包。| 方法 | 发送内容 |
|---|---|
send | 带 Markdown 格式的文本消息 |
send_image / send_image_file | 原生图片消息(通过 CDN 上传) |
send_document | 文件附件(通过 CDN 上传) |
send_video | 视频消息(通过 CDN 上传) |
getuploadurl)context_token(针对特定对话方)。适配器维护一个基于磁盘的上下文 token 存储:~/.hermes/weixin/accounts/<account_id>.context-tokens.json#、## 等)getconfig API 获取 typing_ticketsend_typing 发送开始输入信号;stop_typing 发送停止输入信号getupdates;服务器保持请求直到消息到达或超时asyncio.create_task 并发分发get_updates_buf)保存至磁盘,确保重启后从正确位置恢复| 条件 | 行为 |
|---|---|
| 瞬时错误(第 1–2 次) | 2 秒后重试 |
| 持续错误(第 3 次及以上) | 退避 30 秒后重置计数器 |
会话过期(errcode=-14) | 暂停 10 分钟(可能需要重新登录) |
| 超时 | 立即重新轮询(正常长轮询行为) |
| 变量 | 必填 | 默认值 | 说明 |
|---|---|---|---|
WEIXIN_ACCOUNT_ID | ✅ | — | iLink Bot 账号 ID(来自扫码登录) |
WEIXIN_TOKEN | ✅ | — | iLink Bot token(由扫码登录自动保存) |
WEIXIN_BASE_URL | — | https://ilinkai.weixin.qq.com | iLink API 基础 URL |
WEIXIN_CDN_BASE_URL | — | https://novac2c.cdn.weixin.qq.com/c2c | 媒体传输 CDN 基础 URL |
WEIXIN_DM_POLICY | — | open | 私信访问策略:open、allowlist、disabled、pairing |
WEIXIN_GROUP_POLICY | — | disabled | 群组访问策略:open、allowlist、disabled |
WEIXIN_ALLOWED_USERS | — | (空) | 私信白名单的逗号分隔用户 ID |
WEIXIN_GROUP_ALLOWED_USERS | — | (空) | 群组白名单的逗号分隔群聊 ID(非成员用户 ID)。变量名为历史遗留,实际填写的是群 ID 而非用户 ID。 |
WEIXIN_HOME_CHANNEL | — | — | cron/通知输出的聊天 ID |
WEIXIN_HOME_CHANNEL_NAME | — | Home | 默认频道的显示名称 |
WEIXIN_ALLOW_ALL_USERS | — | — | 网关级别的允许所有用户标志(由配置向导使用) |
| 问题 | 解决方法 |
|---|---|
Weixin startup failed: aiohttp and cryptography are required | 安装两者:pip install aiohttp cryptography |
Weixin startup failed: WEIXIN_TOKEN is required | 运行 hermes gateway setup 完成扫码登录,或手动设置 WEIXIN_TOKEN |
Weixin startup failed: WEIXIN_ACCOUNT_ID is required | 在 .env 中设置 WEIXIN_ACCOUNT_ID,或运行 hermes gateway setup |
Another local Hermes gateway is already using this Weixin token | 先停止另一个网关实例——每个 token 只允许一个轮询器 |
会话过期(errcode=-14) | 登录会话已过期。重新运行 hermes gateway setup 扫描新二维码 |
| 配置过程中二维码过期 | 二维码最多自动刷新 3 次。若持续过期,请检查网络连接 |
| Bot 不响应私信 | 检查 WEIXIN_DM_POLICY——若设置为 allowlist,发送方必须在 WEIXIN_ALLOWED_USERS 中 |
| Bot 忽略群消息 | 群组 策略默认为 disabled。设置 WEIXIN_GROUP_POLICY=open 或 allowlist——但请注意,扫码登录的 iLink bot 身份(...@im.bot)通常根本无法接收普通微信群消息。若网关日志中没有群消息的原始入站事件,限制来自 iLink 侧,而非 Hermes。 |
| 媒体下载/上传失败 | 确保已安装 cryptography。检查对 novac2c.cdn.weixin.qq.com 的网络访问 |
Blocked unsafe URL (SSRF protection) | 出站媒体 URL 指向私有/内部地址,仅允许公网 URL |
| 语音消息显示为文本 | 若微信提供了转录文本,适配器会使用文本内容,这是预期行为 |
| 消息出现重复 | 适配器通过消息 ID 去重。若仍出现重复,检查是否有多个网关实例在运行 |
iLink POST ... HTTP 4xx/5xx | iLink 服务返回 API 错误。检查 token 有效性和网络连通性 |
| 终端二维码无法渲染 | 使用 messaging 扩展重新安装:pip install hermes-agent[messaging]。或者,打开二维码上方打印的 URL |