Hermes 接入飞书远程控制实战教程
本篇目标
把运行在 WSL2 里的 Hermes Agent 接入飞书机器人,最终实现 飞书私聊 -> Hermes Gateway -> Hermes Agent -> OpenAI Codex / gpt-5.5 -> 飞书回复。
本篇按照“能复现”的教程方式整理。主线只保留必要操作;本次实操遇到的网络、权限、飞书事件投递等问题,放在后面的排错章节。
一、最终效果
本次跑通后的形态如下:
| 项目 | 结果 |
|---|---|
| Hermes 版本 | v0.12.0 |
| 模型 provider | openai-codex |
| 模型 | gpt-5.5 |
| 飞书连接方式 | websocket |
| 飞书入口 | 机器人私聊 |
| 群聊 | 暂时禁用 |
| 访问控制 | 只允许自己的飞书 open_id |
| Home channel | 当前飞书私聊会话 |
最终消息测试:
| 场景 | 内容 |
|---|---|
| 用户在飞书私聊发送 | 你好,请只回复:Hermes 飞书通道已接通。 |
| 机器人回复 | Hermes 飞书通道已接通。 |
二、开始前确认
先确认你已经完成 前两篇教程(本地部署 和 Codex 鉴权迁移):
| 前置条件 | 为什么需要 |
|---|---|
| Hermes 已在 WSL2 中安装 | 飞书 Gateway 会在这个环境里运行 |
Hermes 已登录 openai-codex | 飞书消息最终要交给 Codex 模型处理 |
~/.hermes/config.yaml 存在 | 保存 Hermes 模型和通用配置 |
~/.hermes/.env 存在或可创建 | 保存飞书 App ID、Secret 等敏感配置 |
检查 Hermes 版本:
~/HermesWorkspace/hermes_env/bin/hermes --version
期望看到类似 Hermes Agent v0.12.0 (2026.4.30)。
检查 Codex OAuth 状态:
~/HermesWorkspace/hermes_env/bin/hermes auth status openai-codex
期望看到:
openai-codex: logged in
检查当前模型配置:
~/HermesWorkspace/hermes_env/bin/hermes config show
本次实操使用的是 provider: openai-codex 和 model: gpt-5.5。
note
hermes doctor 里可能会出现 Telegram、Discord、Browser tools、OpenRouter 等 warning。只要 Codex OAuth 和 Feishu Gateway 所需依赖正常,这些 warning 不影响本篇的飞书私聊入口。
三、理解 Gateway 命令
当前 Hermes 版本的 Gateway 使用子命令。
常用命令如下:
| 目的 | 命令 |
|---|---|
| 配置平台 | hermes gateway setup |
| 前台运行 Gateway | hermes gateway run |
| 查看状态 | hermes gateway status |
| 停止 Gateway | hermes gateway stop |
| 安装后台服务 | hermes gateway install |
因此不要再使用旧写法:
hermes gateway
应该使用:
hermes gateway run
四、安装飞书依赖
飞书平台需要 Python SDK lark-oapi。先检查依赖:
~/HermesWorkspace/hermes_env/bin/python -c "import importlib.util; mods=['lark_oapi','websockets','aiohttp']; [print(m + '=' + ('installed' if importlib.util.find_spec(m) else 'missing')) for m in mods]"
如果看到:
lark_oapi=missing
安装它:
~/HermesWorkspace/hermes_env/bin/pip install -U lark-oapi
安装完成后再次检查,期望看到:
lark_oapi=installed
websockets=installed
aiohttp=installed
网络问题
如果安装时报:
Name or service not known
Could not find a version that satisfies the requirement lark-oapi
这通常不是包名写错,而是当前环境无法访问 PyPI。给 pip 命令放行网络权限后,重新执行同一条安装命令即可。
五、备份 Hermes 配置
接入飞书前,先备份配置。这样即使向导写错了 .env,也可以回滚。
mkdir -p ~/.hermes/backups
cp ~/.hermes/config.yaml ~/.hermes/backups/config.yaml.before-feishu.$(date +%Y%m%d_%H%M%S)
if [ -f ~/.hermes/.env ]; then
cp ~/.hermes/.env ~/.hermes/backups/dotenv.before-feishu.$(date +%Y%m%d_%H%M%S)
fi
ls -lh ~/.hermes/backups | tail
本次实操生成过这样的备份:
config.yaml.before-feishu.20260504_045452
dotenv.before-feishu.20260504_045452