Hermes Agent 接入微信、飞书和企业微信:白名单配置

· 更新于 · 发布:iVPSer · Linux教程建站

先完成 Hermes Agent VPS 部署,确认模型和 Gateway 正常。容器与备份也要检查,再添加消息平台。

这些配置在 2026-09-02 核对过。平台权限和环境变量会变化,操作时再对照文末官方文档。

共同配置原则

在运行中的容器启动官方向导:

sudo docker exec -it hermes hermes gateway setup

每增加一个平台,都要保存凭据并配置明确 allowlist,随后重启 Gateway,再分别用允许与拒绝账号测试。不要用 open 临时掩盖用户 ID 或事件订阅错误。

修改后收紧秘密文件并重启:

chmod 600 "$HOME/.hermes/.env"
sudo docker exec hermes hermes gateway restart
sudo docker exec hermes hermes gateway status

个人微信 Weixin

Hermes 的 Weixin 适配器通过腾讯 iLink Bot API 出站长轮询,不需要公网 webhook。在向导中选择 Weixin,用手机扫码并确认。

扫码连接的是独立 iLink bot,不是可以完全脚本化的普通个人微信账号。普通微信群通常不能邀请该身份,或无法把群事件送达到 Hermes,不要承诺“扫码后所有微信群都能用”。

向导保存账户与 token 后,核对最终策略:

WEIXIN_DM_POLICY=allowlist
WEIXIN_ALLOWED_USERS=填写允许私聊的用户ID
WEIXIN_GROUP_POLICY=disabled

同一个 token 只能有一个 poller。迁移 VPS、恢复备份或从宿主机切到容器时,先停旧 Gateway,再启动新实例。

飞书或 Lark

飞书推荐出站 WebSocket 长连接,不需要公网回调地址。在向导中选择 Feishu/Lark;扫码创建不可用时,再到开发者控制台创建应用并输入 App ID 与 App Secret。

手工创建应用要按当前文档配置消息、资源和会话权限,并订阅 im.message.receive_v1。应用版本发布、企业管理员审批和事件订阅都完成后,权限才真正生效。

关键值应类似:

FEISHU_CONNECTION_MODE=websocket
FEISHU_ALLOWED_USERS=ou_允许用户的OpenID
FEISHU_GROUP_POLICY=allowlist
FEISHU_REQUIRE_MENTION=true

用户白名单填写 Open ID。群聊继续要求 @ 机器人;没回复时先查应用版本、事件、Open ID 和 Gateway 日志,不要先把策略改成 open

企业微信 WeCom

企业微信 AI Bot 使用出站 WebSocket,不需要公网 webhook。在向导中选择 WeCom,通过扫码或管理后台提供 Bot ID 与 Secret。

私聊和群策略上线前都要显式收紧:

WECOM_DM_POLICY=allowlist
WECOM_ALLOWED_USERS=填写允许私聊的用户ID
WECOM_GROUP_POLICY=allowlist

需要按群进一步限制时,在现有 platforms.wecom.extra 下合并配置,不要重复创建顶层键:

platforms:
  wecom:
    extra:
      dm_policy: allowlist
      allow_from:
        - "user_id_1"
      group_policy: allowlist
      group_allow_from:
        - "group_id_1"
      groups:
        group_id_1:
          allow_from:
            - "user_id_1"

group_allow_from 放群 ID,groups.<group_id>.allow_from 放成员用户 ID。两层含义不能互换。

用拒绝路径完成验收

依次验证:允许的私聊账号能得到最小回复;未授权账号不能触发模型或工具;未批准的群与成员不能触发 Agent;重启容器后白名单仍有效;接入渠道后没有新增公网监听。

sudo docker exec hermes hermes gateway status
sudo docker exec hermes hermes doctor
sudo docker logs --since 10m hermes
sudo ss -lntp

日志出现重复 poller、持续认证失败或未授权消息触发任务时,不要继续扩大开放范围。先停旧实例,核对 token、用户 ID、事件审批和策略文件。

官方渠道文档