飞牛部署「爱马仕」Hermes 保姆级教程 — 从零到钉钉群里聊上天
全程无废话,每一步都写到你闭着眼都能操作。装完你就能在钉钉群里 @ 一个 AI 机器人聊天,它还不用公网 IP、不用域名、不用备案。
前言:Hermes 是什么?
Hermes(谐音"爱马仕")是一个开源的 AI 智能体,和 OpenClaw 是同一家族的产品。它能接入钉钉、飞书、微信、Telegram、Discord 等聊天平台,你在群里 @ 它,它就能干活:回答问题、查资料、写代码、定时推送……
为什么值得装?
- ✅ 钉钉走 Stream 模式:不需要公网 IP、不需要回调域名、不需要备案,内网也能用(这点对 NAS 玩家太友好了)
- ✅ 模型自由:支持硅基流动、DeepSeek、OpenAI、Kimi、GLM 等几乎所有 OpenAI 兼容 API
- ✅ 飞牛应用中心一键安装,有图形化配置界面
- ✅ 免费开源,数据在自己手里
今天教程要装的效果:飞牛 NAS 上跑 Hermes,钉钉群里 @ 它就能对话,模型走硅基流动(便宜大碗)。
一、准备工作(5 分钟)
你需要准备:
| 材料 | 说明 |
|---|---|
| 飞牛 fnOS 设备 | 任意型号,有应用中心即可 |
| 硅基流动账号 | 注册地址:https://cloud.siliconflow.cn (送免费额度) |
| 钉钉账号 | 需要企业管理员权限(创建应用用) |
⚠️ 安全第一:下面所有sk-xxxx、dingxxxx、AppSecret都是占位符,请替换成你自己的真实值,并且永远不要把你的密钥发到群里、贴到博客里。
二、飞牛安装 Hermes(3 分钟)
- 打开飞牛桌面 → 进入应用中心
- 搜索框输入
hermes - 找到 Hermes(图标是个小徽章,开发商 trim.hermes)→ 点安装
- 等待安装完成,然后点击打开,会进入 Hermes 的网页控制台(Dashboard)
看到类似这样的界面就成功了:
Hermes Agent - Dashboard
版本 0.18.0💡 如果打不开,检查一下飞牛的"应用"列表里 Hermes 是否显示"运行中"。
三、配置模型:接入硅基流动(10 分钟,重点!)
Hermes 默认用的是 DeepSeek 官方接口,我们要换成硅基流动(模型更全、价格更实惠,一个 key 通吃 DeepSeek/Qwen/GLM)。
3.1 先去硅基流动拿 API Key
- 打开 https://cloud.siliconflow.cn → 注册/登录
- 左侧菜单 → API 密钥 → 新建 API 密钥
- 复制生成的 Key,形如:
sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(只显示一次,务必保存好)
3.2 在 Hermes 里配置
打开 Hermes Dashboard,按以下路径操作(不同版本菜单位置可能略有差异,核心就是找"模型/设置"):
- 进入 设置 → 模型(Model)
- 提供商(Provider)选择:Custom OpenAI-Compatible(自定义 OpenAI 兼容接口)
- 填入三个关键值:
Base URL(接口地址):https://api.siliconflow.cn/v1
API Key(密钥):sk-你的硅基流动密钥
模型(Model):deepseek-ai/DeepSeek-V4-Flash模型名去硅基流动"模型广场"里挑,常用推荐:
deepseek-ai/DeepSeek-V4-Flash(快、便宜,日常够用)deepseek-ai/DeepSeek-V3.2(更强)Qwen/Qwen3.5-27B(通义千问)zai-org/GLM-5.2(智谱)
- 保存配置
⚠️⚠️ 重点坑:报错 401 Token is invalid 怎么办?(必看!)
这是最容易踩的坑,我折腾了很久才找到原因:
如果你只设置了 OPENAI_API_KEY 这个环境变量,Hermes 调用时会报:
Error code: 401 - {'code': 30014, 'message': 'Token is invalid.'}原因:Hermes 有个安全机制叫"域名门控"——OPENAI_API_KEY 只认 OpenAI 官方域名(api.openai.com)。你的接口是 api.siliconflow.cn,不属于官方域名,所以 Hermes 会故意忽略 OPENAI_API_KEY,请求发出去时根本没带密钥,硅基流动自然返回 401。
解决办法:设置域名推导的环境变量。规则很简单:
api.siliconflow.cn→ 取主域名siliconflow→ 转大写 → 拼_API_KEY
结果就是:SILICONFLOW_API_KEY
在 Hermes 的环境变量(Env)设置里加一行:
SILICONFLOW_API_KEY = sk-你的硅基流动密钥同理可推:
- 用
api.deepseek.com→ 设DEEPSEEK_API_KEY - 用
api.groq.com→ 设GROQ_API_KEY - 用
api.mistral.ai→ 设MISTRAL_API_KEY
🔑 通用规则:<域名主名大写>_API_KEY,域名带api.前缀要去掉。
设置完环境变量后,必须重启 Gateway(见第五节),否则不生效!
四、连接钉钉(15 分钟)
4.1 钉钉开放平台创建应用
- 打开钉钉开放平台:https://open-dev.dingtalk.com (用企业管理员账号登录)
- 左侧 → 应用开发 → 企业内部应用 → 创建应用
- 应用名称随便填(比如"Hermes 助手"),保存
- 进入应用详情 → 凭证与基础信息,这里有两个关键值:
AppKey = dingxxxxxxxxxxxxxxxx(这就是 Client ID)
AppSecret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(这就是 Client Secret)📌 这两个值先复制保存好,后面要用。
4.2 给应用添加"机器人"能力(关键!)
- 在应用详情页往下翻,找到机器人能力 → 点添加机器人
- 机器人名称随便填(比如"Hermes")
消息接收模式:务必选「Stream 模式」 ✅
- 选 Stream 模式就不需要配置公网回调 URL,这是整个方案能"免公网"的核心!
- 保存
4.3 发布应用
- 左侧 → 版本管理与发布 → 创建版本 → 发布
- 发布时设置可见范围:选择包含你自己的部门/成员(不然你自己都找不到机器人)
4.4 在 Hermes 里配置钉钉
回到 Hermes Dashboard:
- 进入 设置 → 消息平台(Messaging Platforms)
- 找到 DingTalk → 开启(Enable)
- 填入:
Client ID(AppKey): dingxxxxxxxxxxxxxxxx
Client Secret(AppSecret): xxxxxxxxxxxxxxxxxxxxxxxx
Allowed Users(允许用户): *(星号=所有人都能@,或填指定员工ID)- 保存
4.5 启动 Gateway(必做!)
配置完成后,去 Dashboard 的状态(Status)页面,找到 Gateway:
- 如果显示 stopped → 点 Start
- 等几秒,看到状态变成 running,并且 DingTalk 显示 connected 就成功了
⚠️ 记住:每次改了模型密钥或平台配置,都要重启 Gateway 才生效(先 Stop 再 Start,比 Restart 按钮更可靠,我实测 Restart 有时不生效)。
五、钉钉群里开聊(3 分钟)
- 打开钉钉,进入一个企业内部群(外部群/家校群加不了企业机器人)
- 点右上角 ... → 智能群助手 → 添加机器人
- 在列表里找到你刚才创建的机器人(应用名)→ 添加
- 在群里 @机器人 发一句:"你好"
- 机器人回复你,恭喜,大功告成!🎉
💡 可选:给机器人发 /sethome,把当前对话设为"home channel"(Hermes 推送定时任务结果、跨平台消息会发到这个对话)。六、常见问题排查(FAQ)
Q1:钉钉报 "Provider authentication failed"?
- 就是第三节的 401 问题,检查
SILICONFLOW_API_KEY是否设置、Gateway 是否重启过。
Q2:群里添加机器人时找不到我的机器人?
- ① 应用没添加"机器人"能力(回 4.2 检查)
- ② 应用没发布或可见范围不含你(回 4.3)
- ③ 群是外部群(换企业内部群)
Q3:改完配置不生效?
- 99% 是 Gateway 没重启。去 Status 页 Stop 再 Start,确认进程时间变了。
Q4:机器人回复特别慢?
- 先看是不是模型接口慢(硅基流动部分时段负载高);也可以换个快模型如
deepseek-ai/DeepSeek-V4-Flash。
Q5:Stream 模式连不上?
- 检查网络能否访问
wss-open-connection.dingtalk.com(Stream 长连接域名),公司网络/防火墙可能拦截。
七、安全提醒(认真看!)
- 密钥就是钱:API Key、AppSecret 泄露 = 别人用你的钱调用模型,切勿发到群里/博客/截图外传
- 建议在 Hermes 里设置 Allowed Users 白名单,只允许自己或家人使用
- 硅基流动控制台可以随时吊销/重置泄露的密钥
- Hermes 有密钥脱敏功能(日志里自动打码),但你自己发出去的没人能帮你收回
结语
整个过程其实就是三步:装应用 → 配模型 → 配钉钉。最折腾的就是那个 401 域名门控的坑,希望这篇教程能帮你少走弯路。
折腾 NAS 的乐趣就在这:把服务一个个跑起来,然后发现"诶,还挺好用"。有问题欢迎评论区交流~