需配置消息白名单机制限制Hermes Agent接收和响应消息的来源,包括Telegram(allowed_users)、飞书(可见范围与权限控制)、企微(可信IP+可见范围)及全局中间件(ALLOWED_USER_IDS环境变量)。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望限制 Hermes Agent 接收和响应消息的来源,防止未授权用户或平台滥用其功能,则需配置消息白名单机制。该机制通过在网关层过滤入站请求身份,仅允许预设用户、群组或平台账号与 Agent 交互。以下是具体配置步骤:
一、配置 Telegram 消息白名单
Telegram 网关支持基于用户 ID 的白名单控制,可阻止非授权用户的私聊或群组消息被处理。此策略在 gateways.telegram.allowed_users 字段中生效,运行时由 telegram.py 模块实时比对传入消息的 from.id 或 chat.id。
1、启动 Telegram 并搜索 @userinfobot,发送任意消息获取您的 user_id(纯数字,如 123456789)。
2、编辑 ~/.hermes/config.yaml 文件,在 telegram 网关配置块中添加 allowed_users 列表:
3、确保已启用 telegram 网关且 bot_token 正确无误:
4、保存文件后执行 hermes restart 使配置生效。
二、配置飞书消息白名单
飞书网关不依赖用户 ID 白名单,而是通过事件订阅校验与应用权限范围实现访问控制。白名单逻辑嵌入在飞书开放平台的应用配置中,Hermes 仅响应经飞书签名验证且属于本企业/本应用可见范围内的消息事件。
1、登录飞书开放平台,进入对应自建应用的「机器人」设置页。
2、在「可见范围」中选择「指定成员」或「指定部门」,取消勾选“所有人”选项。
3、在「权限管理」中确认仅授予必要权限,如 im:message:receive 和 contact:user:readonly,避免开启 im:chat:manage 等高危权限。
4、检查 config.yaml 中 feishu 配置块是否包含正确的 app_id、app_secret 与 verification_token,确保与飞书后台完全一致。
三、配置企业微信消息白名单
企业微信通过可信 IP + 成员/部门白名单双重机制实现消息入口防护。Hermes 本身不解析成员身份,但必须配合企业微信后台设置才能拦截非白名单来源消息。
1、登录企业微信管理后台 → 应用管理 → 对应自建应用 → 「接收消息」设置页。
2、在「可信IP列表」中仅填写 Hermes 所在服务器的公网 IP 地址,不可填写 0.0.0.0/0 或内网地址段。
3、在「可见范围」中明确指定允许使用该机器人的成员或部门,禁用“全部成员”选项。
4、确认 config.yaml 中 wecom 配置块的 corp_id、agent_id、secret 与后台完全匹配,并确保 token 和 aes_key 已正确填入。
四、启用全局用户身份校验中间件
Hermes Agent 提供统一的身份校验钩子(位于 middleware/auth.py),可在所有启用的网关前置执行。该中间件读取环境变量 ALLOWED_USER_IDS 并强制校验每条入站消息的发起者标识,覆盖 Telegram、飞书、企微等平台的异构用户 ID 格式。
1、编辑 ~/.hermes/.env 文件,添加以下行:
2、确保该文件已被 hermes 进程加载,可通过运行 hermes env list 验证变量是否存在。
3、在 config.yaml 中为每个启用的网关启用 auth_middleware:
4、重启服务:hermes restart。


















