适用场景:
- 你已经安装好了
Hermes Agent - 你想直接让
Hermes接飞书
前提条件,至少确认这些条件成立:
hermes --version能正常输出版本- 飞书开放平台可以创建企业自建应用
- 你的飞书账号能访问该应用
- 已有可用的推理 provider
- 如果你要走 GPT 而不是 MiniMax,需要额外满足:
-
hermes auth list里有可用的openai-codex凭据
1. 创建飞书应用,开通对应权限及长连接
(注意:应用发布需要企业管理员通过,自己的账号测试可以通过自己创建的企业来进行操作)
- 在非书中搜索,打开开发者小助手,进入开发者后台


- 创建应用


- 添加机器人能力

- 开通对应权限
注意要打开的权限:
| 权限 | 作用 |
|---|---|
im:message.receive_v1 |
核心!接收用户发给机器人的单聊 / 群聊消息 |
im:message:send_as_bot/ application:bot:send_message |
机器人回复消息、发卡片 / 文本 |
im:message.p2p_msg:readonly |
读取用户单聊发给机器人的消息内容 |
im:message.group_at_msg:readonly |
读取群里 @机器人的消息内容 |
im:chat:readonly |
读取会话信息(群 / 单聊) |
contact:user.base:readonly |
读取用户基础信息(昵称 / ID,Hermes 做用户识别用) |

- 打开事件与回调的长连接


- 创建版本,发布应用

- 发布完成,会收到消息。点击打开应用

就可以看到机器人聊天框了

2. Hermes连接飞书
- Windows 上先处理编码
在原生 Windows PowerShell 里,Hermes 很容易因为 GBK 编码报错。先执行:
ruby
chcp 65001
$OutputEncoding = [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
$env:PYTHONIOENCODING='utf-8'
后面的 hermes 命令都建议在这个终端里执行。
- 确认 Hermes 已安装
css
hermes --version
hermes doctor
- 启动飞书接入向导
arduino
hermes gateway setup
选择 Feishu / Lark

因为我们前面已经创建好了机器人,选择 2,到飞书开发者后台复制 APP ID 和 密钥(注意,密钥是不会显示的,点击复制按钮后回到hermes控制台直接鼠标右键回车即可)

省略了第一步的话,可以优先选择:
Scan QR code to create a new bot automatically
如果二维码流程失败,再改成手动输入 App ID / App Secret。
接着会出现两个选项:
| 选项 | 含义 | 适用场景 |
|---|---|---|
1. feishu (China) |
飞书(国内版) | 国内版飞书(feishu.cn域名,国内公司常用) |
2. lark (International) |
Lark(国际版) | 国际版飞书(larksuite.com域名,海外公司 / 团队常用) |
我这里用的是国内版,选 1

- 选择 Connection mode
建议选:
WebSocket
原因:
- 本机直连最简单
- 不需要公网域名
- 不需要 HTTPS 回调地址
- 不需要自己暴露 webhook 服务
Webhook 只适合你已经有公网可访问的 HTTP/HTTPS 服务时使用。

- Direct messages authorization
建议选:
Use DM pairing approval
这表示:
- 第一次有人私聊机器人,先给出 pairing code
- 机器人管理员审批后,这个用户才能继续使用
这是最适合个人测试和小范围使用的策略。
- Group chats handling
建议选:
Respond only when @mentioned in groups
这样群里只有 @机器人 时才会回复,避免乱接话。
- Home chat ID
这个可以先留空。
它只影响:
- cron 结果发送到哪里
- 跨平台通知发到哪里
接入飞书聊天本身不依赖这个值。


- 回车完成
3. 验证

4. 切换模型
-
先确认权限列表
hermes auth list
我这有两个模型:MiniMax-M2.7、openai-codex

- 执行以下命令
从 MiniMax-M2.7,走 GPT,把 provider 改成 openai-codex
arduino
chcp 65001
$OutputEncoding = [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
$env:PYTHONIOENCODING='utf-8'
hermes config set model.provider openai-codex
hermes config set model.base_url https://chatgpt.com/backend-api/codex
hermes config set model.default gpt-5.4-mini
- 验证本地 Hermes 是否真的修改
arduino
hermes config show
正确的结果会包含:
makefile
provider: openai-codex
default: gpt-5.4-mini
base_url: https://chatgpt.com/backend-api/codex

- 切换完成后需要重置会话,通过在飞书里对机器人发送:
bash
/reset
或者:
arduino
/new

可以通过 hermes chat -Q -q "Reply with OK only." --provider openai-codex -m gpt-5.4-mini 查看当前会话ID,回复OK说明没问题

5. 结论
- 飞书聊天会保存到 Hermes 的 session 记录中
- 这不等于每条聊天都会自动写入长期记忆
MEMORY.md/USER.md - 飞书文本聊天支持
- 飞书群里
@机器人聊天支持 - 飞书语音/视频通话、飞书会议实时语音对话,当前不作为已验证能力
要写入长期记忆可以在飞书中名且说:
记住:以后默认用中文回答,默认使用 GPT-5.4-mini。把这两条写入长期记忆。
验证是否成功:
如果你只想快速跑通,按这套最短路径:
- 用 UTF-8 PowerShell
hermes gateway setup- 选
Feishu / Lark - 选
WebSocket - 选
DM pairing approval - 选
群里只有 @机器人 才回复 Home chat ID留空- 飞书后台发布版本
- 运行
hermes gateway run - 飞书里给机器人发
hi - 本机执行
hermes pairing approve feishu <code> - 飞书里再发
你好 - 如需 GPT,改
config.yaml到openai-codex + gpt-5.4-mini - 发
/reset - 再问
你现在是什么模型
满足下面三项,就说明这条链路已经跑通:
- 飞书里机器人能收消息并回复
hermes sessions list能看到新 sessionagent.log里能看到实际使用的 provider/model
如果你要继续完善,可以再做这几件事:
- 给飞书机器人加几个快捷菜单
- 用
/sethome配置默认通知会话 - 把 gateway 放到更稳定的长期运行环境
- 补充飞书应用权限和事件配置