news 2026/6/30 3:47:14

Hermes Agent 安装与飞书接入实战记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Hermes Agent 安装与飞书接入实战记录

一份从零到用的保姆级教程,附带踩坑实录


一、什么是 Hermes Agent

Hermes Agent 是 Nous Research 开源的 AI Agent 框架,支持 CLI 和多种消息平台(飞书、Telegram、Discord 等)。可以对接到 DeepSeek、OpenAI、Anthropic 等任意 LLM 提供商。

核心特性

  • 跨平台 Gateway — 同一 Agent 通过飞书/Telegram/Discord 等 10+ 平台使用
  • Provider 无关 — 换模型只需一行命令
  • Skills 系统 — Agent 从经验中学习,持久化可复用流程
  • 持久化 Memory — 跨会话记住用户偏好和环境细节

官方文档:https://hermes-agent.nousresearch.com/docs/


二、安装 Hermes Agent

2.1 一键安装

curl-fsSLhttps://hermes-agent.nousresearch.com/install.sh|bash

安装完成后会自动创建~/.hermes/目录,包含配置文件和 venv。

2.2 配置模型(以 DeepSeek 为例)

# 设置 API Keyecho'DEEPSEEK_API_KEY=sk-your-key-here'>>~/.hermes/.env# 选择模型hermes model

在交互界面中选择deepseek作为 Provider,选择模型(如deepseek-v4-pro)。

也可以通过命令行:

hermes configsetmodel.provider deepseek hermes configsetmodel.default deepseek-v4-pro

2.3 验证安装

hermes doctor# 检查依赖和配置hermes chat-q"你好"# 测试对话

三、接入飞书

3.1 创建飞书应用

  1. 打开 飞书开放平台
  2. 创建企业自建应用
  3. 在「凭证与基础信息」页面获取App IDApp Secret

3.2 开启机器人能力

「应用功能 → 机器人」→ 启用

3.3 配置权限

进入「权限管理」,开通以下权限:

权限说明必需
im:message获取与发送单聊、群组消息
im:message.p2p_msg:readonly读取用户发给机器人的单聊消息
im:message.group_at_msg:readonly获取群组中用户@机器人消息群聊需要
im:message.group_msg获取群组中所有消息(敏感权限)可选
im:resource获取与上传图片或文件资源

3.4 配置事件订阅

「开发配置 → 事件订阅」→ 添加事件:im.message.receive_v1

注意:WebSocket 模式不需要配置回调地址,但事件必须订阅!

3.5 发布应用

⚠️这是最容易漏掉的一步

添加权限和事件后,必须创建新版本并发布才能生效:
「版本管理与发布 → 创建版本 → 申请发布」

不发布的话,权限修改不会生效,机器人收不到消息。


四、配置 Gateway .env

编辑~/.hermes/.env

# Feishu / LarkFEISHU_APP_ID=cli_xxxxxxxxxxxxFEISHU_APP_SECRET=your_app_secretFEISHU_DOMAIN=feishu# 飞书用 feishu,Lark 用 larkFEISHU_CONNECTION_MODE=websocket# 推荐 WebSocket,无需公网 URL# 访问控制(开发阶段打开,生产环境改用白名单)GATEWAY_ALLOW_ALL_USERS=true

依赖安装:

pip3installlark-oapi websockets

五、启动 Gateway

# 前台启动(推荐先这样,看日志)hermes gateway run# 后台启动(WSL 推荐 tmux)tmux new-shermes'hermes gateway run'# 检查状态hermes gateway status

成功启动后日志会显示:

✓ feishu connected Gateway running with 1 platform(s)

六、遇到的问题与解决方案

问题 1:飞书机器人不回复消息

现象:Gateway 启动正常,飞书显示连接成功,但给机器人发消息完全没反应。

排查过程

  1. 检查 Gateway 日志:
    tail-f~/.hermes/logs/gateway.log
  2. 发现警告:No user allowlists configured. All unauthorized users will be denied.

原因:Gateway 默认拒绝所有用户。需要开放访问或配置白名单。

解决:在.env中添加GATEWAY_ALLOW_ALL_USERS=true并重启 Gateway。


问题 2:加了白名单还是没反应

现象GATEWAY_ALLOW_ALL_USERS=true已配置,重启后仍然收不到消息。

排查:Gateway 日志没有新的错误。问题指向飞书 App 侧。

检查清单

  1. ✅ 权限管理中im:message已开通
  2. ✅ 事件订阅已添加im.message.receive_v1
  3. ❌ 缺少im:message.p2p_msg:readonly权限 — 读取单聊消息需要这个!

解决:添加im:message.p2p_msg:readonly权限。


问题 3:加了权限还没用

现象:补上p2p_msg:readonly权限后仍然不回复。

原因:飞书开放平台上修改权限和事件订阅后,必须重新创建版本并发布!这是最容易漏的一步。

解决:版本管理与发布 → 创建版本 → 发布。发布后立即生效。


问题 4:Cron Job 投递失败

现象:创建 cron job 设置了deliver=all,但飞书没收到消息。

日志no delivery target resolved for deliver=all

原因:没有配置FEISHU_HOME_CHANNELdeliver=all找不到投递目标。

解决

  1. 先在飞书给机器人发一条消息,从日志中获取chat_id
  2. .env中设置:FEISHU_HOME_CHANNEL=oc_xxxxxxxxxxxxxx
  3. 重启 Gateway

之后也可以用命令行直接发消息:

hermes send-tfeishu-f/path/to/message.txt

七、验证全链路

  1. 在飞书中找到你的机器人
  2. 发送 “你好”
  3. 应该收到 Hermes 的回复

如果 Gateway 日志中有:

info gateway.run: inbound message: platform=feishu ... info gateway.run: response ready: platform=feishu ...

说明全链路通了。


八、常用命令速查

# 配置hermes model# 选模型hermes config edit# 编辑配置hermes doctor# 健康检查# Gatewayhermes gateway run# 启动hermes gateway status# 状态hermes gateway restart# 重启# Cron(定时任务)hermescronlist# 查看任务hermescronrun<id># 手动触发# 直接推送hermes send-tfeishu"消息内容"# 推送到飞书hermes send-tfeishu-ffile.txt# 从文件推送# 日志tail-f~/.hermes/logs/gateway.log# Gateway 日志tail-f~/.hermes/logs/agent.log# Agent 日志

九、总结

接入飞书的关键步骤链路:

创建飞书应用 → 启用机器人 → 配置权限 → 订阅事件 → ⚠️发布版本 ↓ 配置 .env(APP_ID + SECRET + ALLOW_ALL_USERS) ↓ 安装依赖(lark-oapi + websockets) ↓ 启动 Gateway → 检查日志中 feishu connected ↓ 飞书发消息测试 → 收到回复 ✅

最容易被遗漏的三件事:

  1. im:message.p2p_msg:readonly权限— 单聊必须
  2. 发布版本— 修改权限/事件后必须重新发布
  3. GATEWAY_ALLOW_ALL_USERS=true— 开发阶段必须开放
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/30 3:45:14

从零搭建 K8s 权限体系:开发组只读 + 运维组管理(中集)

上集拆解了 RBAC 四个核心概念&#xff08;User / ServiceAccount / Role / Binding&#xff09;&#xff0c;搞清楚了 Subject → Binding → Role 这条链路。这集中手把手搭建&#xff0c;把概念变成能跑的命令。建议读完上集再看这篇&#xff0c;概念定义和证书签发流程上集…

作者头像 李华
网站建设 2026/6/30 3:44:45

Web安全双雄:XSS与CSRF攻击原理与立体防御实战

1. 项目概述&#xff1a;从“小把戏”到“大麻烦”的Web安全双雄在Web应用开发与安全防护的日常工作中&#xff0c;有两个名字总是如影随形&#xff0c;它们不像SQL注入那样直接“掏空”数据库&#xff0c;也不像DDoS那样声势浩大&#xff0c;却像潜伏在阴影中的刺客&#xff0…

作者头像 李华
网站建设 2026/6/30 3:42:52

近400家美国报纸状告OpenAI和微软,AI版权纠纷成结构性产业冲突

【近400家美国报纸状告OpenAI和微软&#xff1a;偷内容不付钱】近日&#xff0c;曼哈顿联邦法院收到一份长达55页的诉状&#xff0c;代表近400家美国报纸的出版商联盟将OpenAI和微软告上法庭。原告名单涵盖《纽约每日新闻》等知名报纸&#xff0c;以及众多美国本地小报。出版商…

作者头像 李华
网站建设 2026/6/30 3:41:36

3步掌握小说下载器:你的个人数字图书馆终极指南

3步掌握小说下载器&#xff1a;你的个人数字图书馆终极指南 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 你是否曾遇到过这样的情况&#xff1a;追更的小说突然下架&#xff0c;付…

作者头像 李华
网站建设 2026/6/30 3:40:54

Sand.ai曹越:每代模型押注非共识,视频模型是通往世界模型重要路径

曹越与Sand.ai的创业历程“每一代模型&#xff0c;我们都在押注一个非共识。” Sand.ai创始人曹越不太关心自己站在共识的哪一边。Sand.ai是一家视频生成模型和产品公司&#xff0c;成立于2024年1月。在上一段创业“光年之外”结束后&#xff0c;曹越投入到Sand.ai的创业中&…

作者头像 李华
网站建设 2026/6/30 3:40:41

THS7530EVM评估板实战指南:全差分放大器高速电路设计与调试

1. 项目概述&#xff1a;从评估板到实战设计在模拟电路设计&#xff0c;尤其是高速信号链的构建中&#xff0c;全差分放大器&#xff08;FDA&#xff09;是一个绕不开的核心器件。它不像普通的单端运放那样“接地气”&#xff0c;其差分输入和输出的架构&#xff0c;天生就是为…

作者头像 李华