Hermes + 微信 / 钉钉 / 企微 配置指南

总览:Hermes 支持的中国个人即时通讯

平台支持情况接入方式个人可用?难度
📱 个人微信✅ 支持iLink Bot API (腾讯官方)✅ 个人可注册⭐⭐⭐
🏢 企业微信✅ 支持WeCom AI Bot WebSocket❌ 需企业账号⭐⭐
🔷 钉钉✅ 支持DingTalk Stream Mode✅ 个人开发者可申请⭐⭐
💬 飞书✅ 支持Feishu WebSocket/Webhook❌ 需企业账号⭐⭐
🟢 其他 (QQ/米聊等)❌ 不支持

核心结论: 个人微信(微信个人号)可以接入,通过腾讯官方的 iLink Bot API;其他中国个人即时通讯中,钉钉个人开发者也可接入,企业微信和飞书需要企业账号。QQ 等平台目前无原生支持。


架构示意图

用 户 层 IM 平 台 / 网 关 Hermes 服 务 端 📱 个人微信 私聊 / 群聊 iLink Bot 协议 🏢 企业微信 成员 / 群聊 AI Bot WebSocket 🔷 钉钉 单聊 / 群聊 Stream Mode 💬 飞书 DM / 群聊 / @提及 事件订阅推送 腾讯 iLink 平台 🔄 iLink Bot API Long-Poll getupdates 企业微信开放平台 🔗 WeCom AI Bot WebSocket 长连接 钉钉开放平台 📡 DingTalk Stream SDK WebSocket 长连接 飞书开放平台 📡 Feishu Event WebSocket / Webhook Hermes Agent 服务端 Weixin Adapter iLink 轮询 WeCom Adapter WebSocket DingTalk Adapter Stream SDK Feishu Adapter 事件/WebSocket 🚪 Gateway Core 路由/会话 🧠 Agent Core LLM + Tools 回复消息 → 发回到各平台 平台对应颜色 个人微信 企业微信 钉钉 飞书 数据流 响应流

一、个人微信 (Weixin) 接入

Hermes 通过腾讯官方 iLink Bot API (ilinkai.weixin.qq.com) 接入个人微信。这是腾讯官方提供的个人微信机器人接口,使用 Long-Poll 模式轮询消息。

1.1 注册 iLink Bot

  1. 浏览器打开 https://ilinkai.weixin.qq.com
  2. 使用微信扫码登录
  3. 注册 Bot 账号,获取 Bot TokenAccount ID
  4. 记录下这两个值

1.2 .env 配置

# ========== 个人微信 (必填) ==========
WEIXIN_TOKEN=your_bot_token_here
WEIXIN_ACCOUNT_ID=your_account_id_here

# ========== 连接配置 (可选) ==========
WEIXIN_BASE_URL=https://ilinkai.weixin.qq.com    # 默认值
WEIXIN_CDN_BASE_URL=https://novac2c.cdn.weixin.qq.com/c2c  # 媒体CDN

# ========== 权限控制 (可选) ==========
WEIXIN_DM_POLICY=open              # open | allowlist | disabled | pairing
WEIXIN_GROUP_POLICY=disabled       # open | allowlist | disabled (默认关闭)
WEIXIN_ALLOWED_USERS=wxid_xxx1,wxid_xxx2  # 允许私聊的用户
WEIXIN_GROUP_ALLOWED_USERS=xxx@chatroom    # 允许响应的群

# ========== 消息调优 (可选) ==========
WEIXIN_SPLIT_MULTILINE_MESSAGES=true    # 拆分行数较多的消息
WEIXIN_SEND_CHUNK_DELAY_SECONDS=1.5     # 分块发送延迟
WEIXIN_SEND_CHUNK_RETRIES=4             # 发送重试次数

1.3 config.yaml 配置

gateway:
  enabled: true
  platforms:
    weixin:
      enabled: true
      token: "your_bot_token"     # 或 WEIXIN_TOKEN env
      extra:
        account_id: "xxx"         # 或 WEIXIN_ACCOUNT_ID env
        dm_policy: "open"
        group_policy: "disabled"  # 群聊默认关闭,需要再开
        split_multiline_messages: true

1.4 注意事项

  • 需要 pip install aiohttp cryptography(加密库用于媒体文件解密)
  • Bot 需要保持在线,通过 QR 码登录
  • 每条回复需要通过 context_token 关联对话上下文
  • 群聊功能默认关闭(group_policy: disabled),如需开启需谨慎配置白名单
  • 消息去重 TTL 300 秒

二、企业微信 (WeCom) 接入

Hermes 通过 WeCom AI Bot WebSocket 网关 接入企业微信。适用于企业内使用企业微信的场景。

2.1 创建企业微信 AI Bot

  1. 登录企业微信管理后台 → 应用管理 → 自建 → 创建应用
  2. 选择「机器人」类型,获取 Bot ID 和 Secret
  3. 配置消息接收方式为 WebSocket

2.2 .env 配置

WECOM_BOT_ID=your_bot_id
WECOM_SECRET=your_secret
WECOM_WEBSOCKET_URL=wss://openws.work.weixin.qq.com  # 默认
WECOM_DM_POLICY=open          # open | allowlist | disabled | pairing
WECOM_GROUP_POLICY=open       # open | allowlist | disabled

2.3 config.yaml 配置

gateway:
  enabled: true
  platforms:
    wecom:
      enabled: true
      extra:
        bot_id: "your-bot-id"
        secret: "your-secret"
        dm_policy: "open"
        group_policy: "open"
        # 白名单配置:
        # allow_from: ["user_id_1"]
        # group_allow_from: ["group_id_1"]

2.4 功能特点

  • WebSocket 长连接,无需公网 IP
  • 支持 Markdown 消息发送
  • 消息长度限制 4000 字符
  • 支持图片、文件上传
  • 自动断线重连(指数退避)
  • 消息去重

三、钉钉 (DingTalk) 接入

Hermes 通过 DingTalk Stream Mode(钉钉官方流模式 SDK)接入,个人开发者可申请。

3.1 创建钉钉应用

  1. 登录 钉钉开放平台
  2. 创建应用 → 选择「机器人」能力
  3. 获取 Client ID(App Key)和 Client Secret
  4. 配置 Stream Mode 接收消息

3.2 .env 配置

DINGTALK_CLIENT_ID=your_client_id       # 必填
DINGTALK_CLIENT_SECRET=your_secret      # 必填
DINGTALK_REQUIRE_MENTION=true           # 是否必须 @ 才响应
DINGTALK_FREE_RESPONSE_CHATS=cidXXX,cidYYY  # 免 @ 的群聊

3.3 config.yaml 配置

gateway:
  enabled: true
  platforms:
    dingtalk:
      enabled: true
      require_mention: true
      free_response_chats:
        - cidABC==
      extra:
        client_id: "your-app-key"
        client_secret: "your-secret"

3.4 功能特点

  • Stream Mode 长连接,无需公网 IP
  • 支持文本、图片、音频、视频、文件
  • 群聊 @ 提及检测(结构化数据)
  • 支持 AI Cards 富卡片消息(需额外 SDK)
  • 消息长度上限 20000 字符
  • 会话 Webhook 发送回复

四、使用方法

4.1 私聊 (DM)

  • 个人微信 — Bot 注册后,微信好友直接向 Bot 对话窗口发消息
  • 企业微信 — 成员在企业微信中搜索 Bot 名称,发起对话
  • 钉钉 — 在钉钉中搜索机器人名称,发送消息
  • 除非设置了白名单,默认所有用户均可私聊(dm_policy: open

4.2 群聊

平台群聊支持触发方式默认
个人微信@Bot 或群内直接回复❌ 默认关闭 (disabled)
企业微信@Bot 或直接触发✅ 默认开启 (open)
钉钉@Bot 或免 @ 白名单群聊✅ 需 @ 默认开启

4.3 常用命令

命令说明
/help查看所有可用命令
/new重置当前会话
/title <name>命名会话
/retry重新生成回复
/undo撤回上一轮
/model <name>切换模型
/status查看会话状态
/platforms查看所有平台连接状态
/restart重启 Gateway
/sethome设置当前聊天为 home 频道

4.4 权限密码学

  • dm_policy — 私聊策略: open(开放), allowlist(白名单), disabled(关闭), pairing(配对)
  • group_policy — 群聊策略: open, allowlist, disabled
  • allow_from / allowed_users — 用户白名单列表
  • group_allow_from / group_allowed_users — 群聊白名单

4.5 多媒体支持

  • 个人微信 — 图片/文件通过 AES-128-ECB 加密 CDN 传输
  • 企业微信 — 支持图片、文件、语音(AMR 格式)
  • 钉钉 — 支持图片、音频、视频、文件,通过 download code 获取
  • 语音消息支持转录文字(需 STT 组件)

五、能否接入其他中国个人即时通讯?

平台状态原因
个人微信✅ 官方支持腾讯 iLink Bot API 官方接口
企业微信✅ 官方支持WeCom AI Bot WebSocket
钉钉✅ 官方支持DingTalk Stream Mode SDK
飞书✅ 官方支持Feishu WebSocket/Webhook
QQ❌ 无官方支持QQ 官方未开放 Bot API;非官方方案(Mirai/OICQ等)有封号风险,Hermes 不内置
米聊 / 陌陌 / Soul 等❌ 不支持无开放 API,非主流平台
短信 (SMS)✅ 支持通过 SMS 平台适配器(需第三方服务)

结论: Hermes 目前支持 4 款中国 IM 平台(微信/企微/钉钉/飞书),覆盖了绝大多数中国用户群体。个人用户可用的有 个人微信(iLink)钉钉,企业用户可全选。QQ 等平台建议使用 Telegram 或微信作为替代。


六、启动与验证

# 安装依赖(按需选择)
pip install lark-oapi                   # 飞书
pip install "dingtalk-stream>=0.20" httpx  # 钉钉
pip install aiohttp cryptography        # 个人微信

# 启动 Gateway
hermes gateway run

# 或安装为后台服务
hermes gateway install
hermes gateway start

# 查看日志
tail -f ~/.hermes/logs/gateway.log | grep -E "weixin|wecom|dingtalk|feishu"

🟢 验证:在对应 IM 平台的 Bot 对话窗口中发送消息,看 Hermes 是否回复。