如何让Hermes不用@即可在飞书群里面回消息?
用Hermes Agent挺长时间了,一直在用Discord做消息工具。国内Discord频繁抽风,经常掉线,实在受不了,还是决定切回飞书。结果第一个坑就来了:Hermes在飞书群里默认只回复@它的消息,不@就不回复。其实问题还是出在飞书权限上。 觉得有用的朋友别忘记点赞收藏!
飞书机器人的消息接收机制
飞书对机器人接收消息做了严格的权限分级:
- 默认级别:只接收@机器人的消息
- 敏感权限:接收群组中所有消息
这个分级设计当然是有道理的。飞书把”所有消息”做成敏感权限,需要单独申请和审核,就是防止机器人滥用。想象一下,如果每个进群的机器人都监听所有消息,那群聊里随便聊个天,五个bot同时插嘴,场面没法看。
但这对Hermes这类需要持续对话的Agent来说就很尴尬。每次都要@才回,对话节奏全断了。你要是跟一个朋友聊天,每句话都得先叫对方名字,那也没法聊了。
我的需求其实很简单:用群来隔离上下文。Hermes的每个飞书群对应一个独立session,群里的对话是封闭的。理财群只聊理财,技术群只聊技术,互不干扰。这比在同一个聊天窗口里来回切换话题要清爽得多。
配置过程和踩坑记录
第一步:开通敏感权限
在飞书开放平台,找到你的应用 → 事件与回调 → 开通「获取群组中所有消息(敏感权限)」。

这一步要注意:敏感权限需要提交审核。如果这个应用只是自己用,建议把应用设为”仅企业内部可用”,这样不需要审核,开通就能用。
第二步:配置群ID
在飞书群里打开群设置,滑动到底部,就可以看到oc_开头的 群ID,复制即可。

把这个群ID配到Hermes Agent的.env文件中。如果只有一个Agent,文件在 .hermes 目录下。 如果你有多个profile,文件在.hermes/<profile>/ 目录下。
打开编辑,找到FEISHU相关的配置,增加一行, 把前面复制的群ID 放进去。
FEISHU_FREE_RESPONSE_CHANNELS=oc_1234567890abcdefg

第三步:重启生效
配置完之后,重启Hermes Gateway,在群里直接发消息测试。从下图可以看到,之前发消息没有@,Hermes根本不理。现在直接发消息,Hermes就能回复了。

实际使用了一周的感受
打通之后用了一周,说几个实际体验:
群里其他人发消息的时候,Hermes也会尝试回复。如果群里只有你和Hermes,完全没问题。但如果有三四个人同时聊天,Hermes可能接不上话茬,回复会有些莫名其妙。所以最好用专用群,别把工作大群直接接上。
群session的上下文长度取决于Hermes的配置。聊得太久,早期内容会被截断。需要重置的时候,清除对应群的session就行,不用退群重建。
飞书在国内网络下直连,延迟比Discord低很多。Discord在高峰期动不动就是3-5秒延迟,飞书基本是秒回。移动端也是飞书的体验更好,Discord在国内的推送经常迟到。
另外要注意飞书的消息推送有频率限制。单机器人单用户每秒最多推送20条,超过会触发限流。如果Agent回复特别长,拆成多条消息发送的时候要注意这个限制。
你有没有折腾过飞书机器人的权限?或者遇到过其他坑?欢迎评论区交流。觉得有用的朋友别忘记点赞收藏!
编辑本页
