需在钉钉开放平台创建加签自定义机器人并记录Webhook URL和secret;在Hermes Gateway配置dingtalk通道启用并注入凭证;配置钉钉事件订阅,指定HTTPS回调地址、Token、AES Key并订阅im.message.receive_v1;最后重启Hermes服务并验证日志与消息响应。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望 Hermes Agent 通过钉钉机器人接收和响应企业内部消息,则需完成钉钉开放平台侧的机器人创建、权限配置与事件订阅,并在 Hermes Gateway 中完成对应通道的启用与凭证注入。以下是解决此问题的步骤:
一、在钉钉开放平台创建自定义机器人
该步骤用于获取机器人唯一身份凭证(Webhook URL 和加签密钥),是 Hermes Agent 接收钉钉消息的基础入口。钉钉仅允许通过 Webhook 方式向自定义机器人推送消息,且必须启用加签机制以保障通信安全。
1、登录钉钉开放平台,进入“应用开发” → “企业内部开发” → “创建应用”。
2、填写应用名称(如 Hermes-DingTalk-Bridge)与描述,选择“企业内部开发”类型,点击“创建”。
3、在新应用详情页,进入“功能管理” → “机器人”,点击“添加机器人”。
4、选择“自定义机器人”,勾选“加签”选项,点击“完成”。
5、记录生成的 Webhook URL(含 access_token 参数)和 加签密钥(secret),二者后续将用于 Hermes 配置。
二、配置 Hermes Gateway 的 dingtalk 通道
该步骤将钉钉机器人凭证注入 Hermes 运行时环境,使其能验证并解析来自钉钉的加密事件请求,同时具备构造合法响应消息的能力。
1、编辑 Hermes 配置文件 ~/.hermes/config.yaml。
2、在 gateways: 下新增 dingtalk: 区块,内容如下:
3、设置 enabled: true 启用通道。
4、填入上一步获取的 access_token(从 Webhook URL 中提取,即 access_token=xxx 后的字符串)。
5、填入上一步获取的 secret 字符串。
6、可选:在 allowed_users: 下添加指定钉钉用户 ID 列表(格式为 - "uabcdefg123456789"),限制仅授权人员可触发指令。
三、配置钉钉事件订阅(关键)
钉钉默认不主动推送消息事件给机器人;必须显式开启事件订阅并指定回调地址,才能使 Hermes Agent 感知用户发送的消息。该配置必须在钉钉开放平台中完成,且需确保 Hermes 服务已对外暴露可被钉钉访问的 HTTPS 回调端点。
1、回到钉钉开放平台,进入该应用的“事件订阅”页面。
2、点击“开通事件订阅”,选择“接收消息”类型。
3、在“回调URL”栏填写 Hermes 服务实际监听的钉钉回调地址,格式为:https://your-domain.com/webhook/dingtalk(需与 Hermes 配置中 webhook_url 一致,且必须为有效 HTTPS)。
4、在“Token”与“AES Key”字段中,分别填入您自行设定的任意字符串(如 hermes-dt-token 和 hermes-dt-aes-key-32charslong),并同步写入 config.yaml 中对应字段。
5、在“订阅事件”列表中,勾选 im.message.receive_v1。
6、点击“保存并验证”,钉钉将发起一次签名验证请求;确保 Hermes 服务正在运行且返回 200 响应,验证成功后方可生效。
四、重启 Hermes 服务并验证连通性
该步骤使新配置载入内存,并触发与钉钉平台的握手初始化流程,确保事件监听器注册成功、凭证校验通过、消息路由链路就绪。
1、在 Hermes 所在服务器终端执行命令:hermes restart。
2、观察控制台日志,确认输出包含 "dingtalk gateway started" 及 "event subscription verified" 类似字样。
3、打开钉钉客户端,在目标群聊中添加该机器人。
4、向机器人发送一条测试消息,例如 /help。
5、检查 Hermes 日志是否打印出完整消息结构体及处理动作,确认消息已抵达并被正确解析。


















