上一篇我们一分钟把 Hermes Agent 装上了 VPS,跑通了 hermes setup 向导、能开始对话。这篇解决两个“真正用起来”的问题:
- 模型从哪来、怎么换:Hermes 自己不装大模型,推理全靠“接”各家 API——本篇讲清四类接入路线,以及如何随时切换主模型(
hermes model/ 会话内/model)。 - 怎么把 Agent 变成 7×24 的“随身助手”:接入 Telegram / WhatsApp / 飞书 / 微信等消息平台,出门在外发条消息就能指挥它干活、查状态、收定时任务结果。
顺带把工具(Tools)与“学习循环”(技能 + 记忆)讲清楚——这才是它“越用越顺手”的底层机制。
快速看懂本篇
上一篇:hermes 已装好、能对话
├─ 本篇① 模型接入:模型走云端 API,VPS 不跑大模型
│ 路线:Nous Portal 订阅 | 官方直连 Key | OpenAI 兼容中转/自建 | 本地模型
│ 切换:hermes model(会话之间)/ /model(会话内即时切换)
├─ 本篇② 消息网关:一个常驻后台进程,同时接 Telegram / WhatsApp /飞书…
│ 重点教程:Telegram、WhatsApp、飞书/Feishu、微信(个人 Weixin + 企业微信)
└─ 本篇③ 工具与学习循环:hermes tools 开工具;技能 Skills;记忆 Memory
一、模型接入:先搞懂 Hermes 的“大脑”结构
1.1 主模型 vs 辅助模型
Hermes 使用两类模型槽位:
| 槽位 | 用途 | 默认设置 |
|---|---|---|
| 主模型(Main model) | Agent 的“大脑”:每句对话、工具调用、流式输出都由它处理。 | 你在 setup 时选择的模型。 |
| 辅助模型(Auxiliary models) | 处理上下文压缩、看图、网页摘要、命令审批、会话标题等轻量任务。 | 全部为 auto,即沿用主模型;也可以单独覆盖。 |
对普通用户而言,只需要关心主模型即可;辅助模型保持 auto 就行。后续若想省钱或提速,再把上下文压缩等辅助任务指定给更便宜的 flash 模型。
1.2 四条接入路线怎么选
| 路线 | 本质 | 费用 / 门槛 | 适合谁 |
|---|---|---|---|
| ① Nous Portal 订阅 | OAuth 登录一次,300+ 模型与工具网关统一接入。 | 订阅制,一个账号一条账单。 | 不想管理一堆 API Key、希望 5 分钟跑起来的用户。 |
| ② 官方厂商直连 API | 直接使用 DeepSeek、OpenRouter、OpenAI、Gemini 等厂商 API Key。 | 各厂商按量计费,需要分别开通 Key。 | 已有某家 Key,或希望直连省钱的用户。 |
| ③ OpenAI 兼容中转 / 自建网关 | 填写 Base URL 和 Key,通过兼容接口调用模型。 | 中转服务通常按量或订阅。 | 国内直连不稳定,或团队已有统一 API 网关的用户。 |
| ④ 本地模型 | 通过 Ollama、LM Studio、vLLM 等在自己的机器上运行模型。 | 电费、硬件和显存成本。 | 数据敏感、离线环境或具备 GPU 的进阶用户。 |
四种路线并不冲突。Nous Portal 可以和其他厂商 Key 并存,在会话内用
/model随时切换,不会相互覆盖。
1.3 路线①:Nous Portal(最省事)
如果你已有 Nous Portal 订阅,可以使用:
hermes model
然后在提供商列表中选择 Nous Portal,浏览器会自动打开登录页面,完成登录并选择模型即可。
如果上一章已经执行过:
hermes setup --portal
那么模型、登录和工具网关一般已经配置完成。
登录后可使用以下命令检查状态:
hermes portal info # 登录状态、订阅信息、模型与工具网关路由
hermes portal tools # 工具网关中各工具当前走哪条路
订阅中通常可以直接使用带厂商前缀的模型 slug,例如:
anthropic/claude-sonnet-4.6
openai/gpt-5.5-pro
google/gemini-3-pro-preview
deepseek/deepseek-v4-pro
Portal 会在后台路由到对应厂商,相关账单统一由 Nous Portal 管理。
1.4 路线②:官方厂商直连(自带 Key)
hermes model
# 选择厂商 → 粘贴 API Key(密文,不回显)→ 选择模型
常见官方模型提供商如下:
| 厂商 | 环境变量 | 直连 Base URL |
|---|---|---|
| DeepSeek | DEEPSEEK_API_KEY |
https://api.deepseek.com/v1 |
| OpenRouter | OPENROUTER_API_KEY |
https://openrouter.ai/api/v1 |
| OpenAI | OPENAI_API_KEY |
https://api.openai.com/v1 |
| Anthropic Claude | ANTHROPIC_API_KEY |
Hermes 内置,无需手填。 |
| Google Gemini | GOOGLE_API_KEY / GEMINI_API_KEY |
Hermes 内置。 |
| 智谱 GLM | GLM_API_KEY |
Hermes 内置,国内通常可直连。 |
| Kimi / Moonshot | KIMI_API_KEY / KIMI_CN_API_KEY |
api.moonshot.ai / api.moonshot.cn |
| MiniMax | MINIMAX_API_KEY / MINIMAX_CN_API_KEY |
Hermes 内置。 |
| Qwen / 阿里云百炼 | DASHSCOPE_API_KEY |
Hermes 内置,支持国际与国内端点。 |
实际支持的厂商远不止这些,直接运行 hermes model 查看菜单即可。列表中已有的厂商通常已配置官方默认 Base URL,你只需要填 API Key。
1.5 路线③:OpenAI 兼容中转 / 自建网关
这是国内 VPS 上非常常见的使用方式:官方 API 连不上,或者你有自己的 OpenAI 兼容网关。
hermes model
# 提供商列表滚到底部 → 选择 "Custom endpoint (enter URL manually)"
向导通常会依次询问:
API base URL [e.g. https://api.example.com/v1]:
API key [optional]:
- Base URL 填中转地址;
- 多数 OpenAI 兼容中转要求地址以
/v1结尾; - API Key 按服务商要求填写;无鉴权网关可留空;
- Hermes 会自动探测可用模型,也可以手动输入模型名称;
- 最后为该连接设置一个显示名称,方便以后在列表中识别。
也可以直接编辑配置文件:
# ~/.hermes/config.yaml
providers:
my-relay:
api: https://relay.example.com/v1
api_key: sk-xxxx
1.6 检查当前生效的模型
hermes config get model --json # 查看 model.provider / model.default
hermes status # 查看当前模型、终端后端、工具、技能等状态
1.7 会话内即时切换模型(重点)
通过配置修改的是默认模型,通常仅对新会话生效。正在聊天时想立即切换模型,使用斜杠命令:
/model
/model anthropic/claude-sonnet-4.6
/model openai/gpt-5.5-pro --global
/model deepseek/deepseek-v4-pro --once
/model fav
/model:打开模型选择器;/model 厂商/模型:仅当前会话立即切换;--global:切换并写入config.yaml,作为以后新会话默认模型;--once:只让下一轮对话使用该模型,之后自动恢复;/model fav:使用自定义模型别名。
给常用模型设置别名:
# ~/.hermes/config.yaml
model_aliases:
fav:
model: claude-sonnet-4.6
provider: anthropic
cheap:
model: deepseek-v4-flash
provider: deepseek
也可以不编辑 YAML,直接执行:
hermes config set model.aliases.cheap deepseek/deepseek-v4-flash
会话中途切换模型会重置该模型的 prompt 缓存,下一轮可能需要重新读取整段上下文。长对话尽量在一开始选好模型,不建议频繁来回切换。
二、消息网关:把 Agent 接进 Telegram / WhatsApp / 飞书 / 微信
2.1 网关是什么
Hermes 的 gateway 是一个常驻后台进程。它可以同时连接多个消息平台,例如 Telegram、Discord、Slack、WhatsApp、Matrix、QQ、飞书、企业微信等。
每一个聊天对象或群聊都会占用一个独立 Agent 会话,网关还会负责投递 cron 定时任务的运行结果。
Telegram ┐
WhatsApp ┼→ Hermes Gateway(单个常驻进程)→ 每个聊天一个独立 Agent 会话
Discord ┘ ↕ 后台还会跑:cron 调度 / 语音 / 技能 / 记忆
官方完整能力说明可参考:Messaging Gateway 文档。
2.2 网关基础操作
hermes gateway setup # 交互式配置消息平台
hermes gateway # 前台运行,调试用;Ctrl+C 退出
hermes gateway install # 注册为系统服务
hermes gateway start # 启动后台服务
hermes gateway status # 查看状态
hermes gateway stop # 停止服务
配置完成后,推荐将网关注册为系统服务,让它在 VPS 上长期运行并开机自启。
2.3 Telegram 完整教程(最推荐)
Telegram 是 Hermes 支持较完整的平台之一,支持文本、语音留言、图片、文件和群聊使用。
Step 1:用 @BotFather 创建 Bot 并获取 Token
- 在 Telegram 搜索 @BotFather,或访问 t.me/BotFather。
- 发送
/newbot。 - 设置 Bot 显示名称,例如
My Hermes。 - 设置一个以
bot结尾的唯一用户名,例如my_hermes_bot。 - BotFather 会返回 API Token,格式类似:
123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
Token 相当于 Bot 密码。不要泄露,也不要提交到代码仓库。若 Token 泄露,立刻到 BotFather 中使用
/revoke作废并重新生成。
Step 2:关闭群聊隐私模式(可选但强烈建议)
Telegram Bot 默认启用了隐私模式。在群聊中,它只能看到斜杠命令、回复 Bot 的消息和部分服务消息,普通聊天内容不会被接收。
如需让 Bot 在群聊中正常参与对话,按以下路径操作:
@BotFather → /mybots → 选择你的 Bot → Bot Settings → Group Privacy → Turn off
修改隐私设置后,需要先将 Bot 从群中移除,再重新拉进群,Telegram 才会刷新设置。
Step 3:获取自己的数字 User ID
Hermes 使用数字 User ID 控制谁可以指挥 Bot,而不是 Telegram 用户名。
给 @userinfobot 发一条消息,它会返回你的数字 ID,例如:
123456789
Step 4:配置 Hermes
hermes gateway setup
在向导中勾选 Telegram,粘贴 Bot Token,并填写允许使用 Bot 的 User ID。多个 ID 一般使用逗号分隔。
也可以手动写入 ~/.hermes/.env:
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
TELEGRAM_ALLOWED_USERS=123456789
默认安全策略是:不在允许名单中的用户,Bot 一律不响应。建议不要关闭该限制,因为 Hermes 可能具备执行服务器命令的权限。
Step 5:启动并验证
hermes gateway
先以前台模式启动,正常情况下数秒内即可看到连接成功日志。
然后在 Telegram 给 Bot 发一条普通消息,例如:
你好,报告一下这台 VPS 的状态
如果 Bot 能正常回复,说明已经配置成功。你还可以发送:
/status
查看当前会话状态。
/start通常会被 Hermes 静默确认,可能不会产生完整对话回复。因此验证时建议发送普通文本消息,而不是只发送/start。
验证成功后按 Ctrl + C 停止前台进程,并注册为后台服务:
hermes gateway install
hermes gateway start
hermes gateway status
上线后建议立刻完成两件事
- 在 Telegram 与 Bot 的聊天中发送
/sethome,将该聊天设为 home channel。之后 cron 定时任务的结果会推送到这里。 - 发送
/model查看或切换当前模型,发送/status查看会话状态。
2.4 WhatsApp:官方 Cloud API 路线
Hermes 支持两条 WhatsApp 接入路线。官方文档建议优先使用WhatsApp Business Cloud API。
| 项目 | WhatsApp Business Cloud API | Baileys 非官方桥 |
|---|---|---|
| 性质 | Meta 官方接口,适合生产环境。 | 模拟网页版登录,属于非官方方案。 |
| 前提 | 需要 Meta 企业账号与企业号码。 | 个人号码即可。 |
| 公网要求 | 需要 HTTPS 公网地址接收 Meta webhook。 | 通常不需要。 |
| 风险 | 稳定、合规。 | 存在封号风险。 |
Cloud API 快速配置命令:
hermes whatsapp-cloud
官方向导会带你完成凭据填写与即时校验。大致流程如下:
- 创建 Meta App
前往 developers.facebook.com/apps,创建 App 并选择 WhatsApp 用途。需要获取:- Phone Number ID;
- Access Token;
- App Secret。
- 提供 HTTPS 公网地址
推荐使用 Cloudflare Tunnel:
cloudflared tunnel --url http://localhost:8090
记录命令输出的公网地址,例如:
https://xxx.trycloudflare.com
- 在 Meta 后台配置 Webhook
Callback URL 填:
https://你的地址/whatsapp/webhook
Verify Token 填 Hermes 向导生成的值,并订阅 messages 字段。
- 配置允许名单
Hermes 会写入WHATSAPP_CLOUD_ALLOWED_USERS。多个号码用逗号分隔,号码需包含国家码,但不带+。
WhatsApp 有 24 小时客服窗口限制:用户最后一条消息超过 24 小时后,Bot 只能使用 Meta 预审通过的模板消息回复。这是 Meta 平台规则,不是 Hermes 的限制。
只想个人测试且不想使用 Meta 企业号,也可以选择 Baileys 非官方桥接方案,但请自行承担封号等风险。
2.5 飞书 / Lark 完整教程(国内推荐)
飞书(Feishu,国际版名称为 Lark)对 Hermes 的支持较完整,支持文本、图片、音视频、文件、群聊 @ 响应和交互卡片等能力。
飞书默认支持 WebSocket 长连接,因此 VPS 不需要公网 IP、域名或反向代理。
Step 1:创建飞书应用
有两种方式可选:
- 方式 A:扫码自动创建(推荐)
运行hermes gateway setup,勾选 Feishu / Lark,然后使用飞书 App 扫终端二维码。Hermes 会自动创建带正确权限的机器人应用并保存凭据。 - 方式 B:手动创建
访问 飞书开放平台;国际版使用 Lark 开放平台。创建企业自建应用后,在“凭证与基础信息”复制 App ID 与 App Secret,并开启机器人能力。
如果使用手动创建方式,还需要:
- 在权限管理中至少添加
im:message、im:message:send_as_bot、im:resource、im:chat、im:chat:readonly等权限; - 在事件订阅中订阅
im.message.receive_v1,并选择长连接(WebSocket)方式; - 在版本管理中发布一个新版本;权限和事件发布后才能生效。
Step 2:配置 Hermes
hermes gateway setup
# 勾选 Feishu / Lark → 扫码或填写 App ID / App Secret → 完成
也可以手动写入 ~/.hermes/.env:
FEISHU_APP_ID=cli_xxx
FEISHU_APP_SECRET=secret_xxx
FEISHU_DOMAIN=feishu
FEISHU_CONNECTION_MODE=websocket
FEISHU_ALLOWED_USERS=ou_xxx,ou_yyy
FEISHU_HOME_CHANNEL=oc_xxx
FEISHU_DOMAIN=feishu:中国大陆飞书;国际版改为lark。FEISHU_CONNECTION_MODE=websocket:推荐值,不需要公网 HTTPS。FEISHU_ALLOWED_USERS:允许使用机器人功能的用户 open_id,强烈建议配置。FEISHU_HOME_CHANNEL:可选,用于接收 cron 定时任务结果。
Step 3:启动并验证
hermes gateway
先在前台启动,检查日志是否连接成功。之后到飞书中私聊机器人发送普通消息即可测试。
群聊中一般需要@机器人,或者使用 @all 才会触发响应。
飞书群聊行为与安全配置
| 目标效果 | 配置 |
|---|---|
| 群聊中必须 @ 机器人才响应 | FEISHU_REQUIRE_MENTION=true(默认) |
| 群消息只允许白名单用户使用 | FEISHU_GROUP_POLICY=allowlist,配合 FEISHU_ALLOWED_USERS |
| 完全禁止群聊 | FEISHU_GROUP_POLICY=disabled |
| 群内每人使用独立会话 | group_sessions_per_user: true(默认) |
2.6 微信个人号(Weixin)教程
重要说明:Hermes 的 Weixin 适配器接入的是个人微信 iLink Bot API。扫码登录后得到的是一个 iLink 机器人身份,而不是你原本可以加群的普通微信号。
因此,个人微信接入更适合单聊私信场景。普通微信群聊通常无法稳定收发消息。如果需要完整群聊能力,建议使用企业微信或飞书。
Step 1:安装依赖
pip install aiohttp cryptography
# 若需要终端直接显示二维码,可安装 messaging 扩展
cd ~/.hermes/hermes-agent && uv pip install -e ".[messaging]"
Step 2:扫码登录
hermes gateway setup
# 勾选 Weixin → 终端显示二维码或登录链接 → 手机微信扫码
# 手机上确认登录 → 凭据自动保存到 ~/.hermes/weixin/accounts/
登录成功后会显示类似信息:
微信连接成功,account_id=your-account-id
如果登录态过期,日志中出现 errcode=-14,重新执行扫码流程即可。
Step 3:配置允许名单并启动
# ~/.hermes/.env
WEIXIN_ACCOUNT_ID=your-account-id
WEIXIN_DM_POLICY=allowlist
WEIXIN_ALLOWED_USERS=user_id_1,user_id_2
然后启动网关:
hermes gateway
想获取其他用户的微信 user_id,正确方式是让对方直接给 iLink 机器人发送私信,然后从 Hermes 网关日志中读取对方 ID,再加入允许名单。
个人微信接入要点
- 使用长轮询,不需要公网 Webhook 或 WebSocket;
- 支持图片、视频、文件和语音;媒体文件需要
cryptography进行 AES-128 解密; - 支持 Markdown 回复,长文本超过 4000 字符会自动分块;
- 单聊策略默认可能偏开放,建议显式改为
allowlist; - 群聊策略建议保持
disabled,普通微信群通常不适合此方案。
2.7 企业微信(WeCom)教程
如果需要微信生态中的完整私聊、群聊和流式回复能力,企业微信(WeCom)通常是更合适的方案。
Hermes 通过企业微信的 AI Bot WebSocket 网关接入,使用常驻连接,通常不需要公网端点。
Step 1:创建 AI Bot
- 扫码自动创建(推荐):运行
hermes gateway setup,勾选 WeCom,用企业微信 App 扫码,向导会自动创建 AI Bot 并保存凭据。 - 手动创建:登录企业微信管理后台 → 应用管理 → 创建应用 → AI Bot,填写名称和描述后复制 Bot ID 与 Secret。
企业微信方案需要企业微信组织账号。个人微信账号无法直接创建 WeCom AI Bot;如没有企业,可先创建测试企业。
Step 2:配置并启动
# ~/.hermes/.env
WECOM_BOT_ID=your-bot-id
WECOM_SECRET=your-secret
WECOM_ALLOWED_USERS=user_id_1,user_id_2
WECOM_HOME_CHANNEL=chat_id
hermes gateway
先私聊机器人测试;群聊中的触发方式以企业微信管理后台 AI Bot 的设置为准。
企业微信使用要点
- 私聊与群聊策略通常默认为
open,生产环境建议设置允许名单; - 可以使用群聊白名单,例如
group_policy: allowlist与group_allow_from; - 支持 Markdown 回复,超过 4000 字符会自动分块;
- 图片上限约 10MB,文件上限约 20MB,超限图片通常会降级为文件发送;
- 支持原生流式输出,连接断开后通常会自动指数退避重连;
- 接收到 AES 加密媒体时会自动解密,需要安装
cryptography。
2.8 网关服务管理:VPS 开机自启
Linux(systemd)
hermes gateway install
hermes gateway start
hermes gateway status
journalctl --user -u hermes-gateway -f
为了让用户级服务在 VPS 重启后自动运行、SSH 断开后仍保持运行,可执行一次:
sudo loginctl enable-linger $USER
也可以安装为系统级服务,适合无桌面的 VPS:
sudo hermes gateway install --system
sudo hermes gateway start --system
sudo hermes gateway status --system
journalctl -u hermes-gateway -f
macOS(launchd)
hermes gateway install
hermes gateway start
hermes gateway status
tail -f ~/.hermes/logs/gateway.log
安装了新工具、更新 Node.js 或修改 PATH 后,建议重新运行一次
hermes gateway install,让服务单元刷新环境变量。
消息内常用运维命令
/restart:优雅重启网关;/status:查看当前会话与运行状态;/stop:中断正在执行的 Agent 任务。
2.9 更多平台与消息内常用命令
除 Telegram、WhatsApp、飞书、微信、企业微信外,Hermes 还可接入 Discord、Slack、Matrix、QQ、Teams、邮件、Signal、SMS、Home Assistant 等平台。
基本操作一致:
hermes gateway setup
在多选清单中选择平台,再根据向导填写 Token 或授权凭据即可。完整平台说明可参考官方 Messaging 文档目录。
常见国内平台接入难度对比:
| 平台 | 特点 |
|---|---|
| 飞书 | 功能完整、支持 WebSocket、无需公网,适合国内用户。 |
| 企业微信 | 群聊完整、WebSocket 常驻、无需公网,适合团队协作。 |
| 个人微信 | 接入相对简单,但更适合单聊私信,群聊能力受限制。 |
注意:各平台的允许名单变量不同,例如:
DISCORD_ALLOWED_USERS
MATRIX_ALLOWED_USERS
FEISHU_ALLOWED_USERS
WECOM_ALLOWED_USERS
WEIXIN_ALLOWED_USERS
尤其是飞书、个人微信和企业微信,默认策略可能偏开放。建议在上线前显式设置白名单。
消息中最常用的斜杠命令
| 命令 | 作用 |
|---|---|
/new 或 /reset |
新建会话,清空当前聊天上下文。 |
/model [厂商/模型] |
查看或切换当前会话模型;--global 永久修改,--once 仅下一轮使用。 |
/status |
查看当前会话信息与最近总结。 |
/sethome |
将当前聊天设为 home channel,用于接收 cron 定时任务结果。 |
/usage |
查看当前会话 Token 用量和费用。 |
/stop |
中断正在执行的 Agent。 |
/retry |
重试上一条消息。 |
/undo |
撤销最后一轮对话。 |
/voice on |
开启语音回复(TTS)。 |
/whoami |
查看自己在当前会话中的权限等级。 |
/help |
查看完整命令列表。 |
/topic |
Telegram 私聊开启多主题会话模式。 |
2.10 网关安全红线
- 不要放开允许名单:不要开启
GATEWAY_ALLOW_ALL_USERS=true。这相当于把一台可执行命令的服务器暴露给所有人。 - 飞书、微信、企业微信必须设置白名单:上线前配置
FEISHU_ALLOWED_USERS、WEIXIN_ALLOWED_USERS、WECOM_ALLOWED_USERS。 - 可使用配对码管理陌生用户:陌生人私聊时会获得一次性配对码,可通过
hermes pairing approve telegram <CODE>批准;使用hermes pairing list和hermes pairing revoke管理。 - 群聊中建议设置 @ 提及才响应:通过配置
require_mention: true,避免 Bot 在群里无意响应所有消息。 - 分层管理管理员与普通用户权限:允许名单控制谁能进入;
allow_admin_from与user_allowed_commands控制不同用户可执行的命令范围。 - 谨慎启用语音转文字:STT 默认可能按 local → groq → openai 自动选择。不需要语音处理时,不要将 Bot 拉入语音群。
三、工具与“学习循环”:让它会干活、越用越懂你
3.1 工具(Tools):Agent 的“手脚”
Hermes 内置了大量工具,并按 toolset(工具集)分组,可根据平台和需求启用或禁用。
| 类别 | 工具示例 |
|---|---|
| Web | web_search、web_extract:网页搜索与正文提取。 |
| 浏览器 | browser_navigate、click、type:浏览器自动化。 |
| 终端与文件 | terminal、read_file、patch。 |
| 代码 | execute_code、delegate_task:代码执行和子 Agent 委派。 |
| 媒体 | vision_analyze、image_generate、text_to_speech。 |
| 记忆与检索 | memory、session_search。 |
| 自动化 | cronjob:定时任务。 |
工具开关与管理命令:
hermes tools
hermes chat --toolsets "web,terminal" -q "..."
hermes tools:交互式选择平台、启用或关闭工具集;如工具需要 Key,向导会继续询问。hermes chat --toolsets:仅对当前一轮临时指定工具集。
Web 搜索默认可零配置使用:即使没有 API Key,web_search 和 web_extract 也可以在部分服务的免费额度之间自动轮转。若需要更稳定的体验,可配置 Firecrawl、Tavily 等 Key,或部署 SearXNG 自建搜索服务。
3.2 Nous Tool Gateway:一个订阅,工具全包
如果使用付费 Nous Portal 订阅,Web 搜索、图片生成、TTS、云端浏览器等常用工具后端也可由订阅统一提供。
hermes model
# 选择 Nous Portal 后,向导会询问是否将工具切换到 Nous 订阅
hermes tools
# 单独选择某个工具并设置为 "Nous Subscription"
查看当前工具路由:
hermes portal info
hermes portal tools
工具后端可以混搭。例如 Web 搜索和图片生成走 Nous,但浏览器自动化继续走自己的 Browserbase Key。
免费 Nous 账号通常可用于模型推理,但工具网关属于付费订阅能力。订阅到期后,切回自己的 API Key 或自建后端即可。
3.3 技能(Skills):Agent 的“操作手册”
技能(Skills)是按需加载的知识文档,通常以 SKILL.md 存在,并兼容 agentskills.io 开放标准。
技能默认位于:
~/.hermes/skills/
平时技能不会一直占用上下文,只有使用时才会被加载。
每个已经安装的技能都会自动变成斜杠命令,例如:
/gif-search funny cats
/github-pr-workflow create a PR for the auth refactor
/ocr-and-documents /tmp/scan.pdf extract the tables
搜索和安装技能
hermes skills search pdf
hermes skills inspect <完整ID>
hermes skills install official/security/1password
hermes skills list
hermes skills search:搜索官方或社区技能库;hermes skills inspect:安装前查看技能内容;hermes skills install:使用完整 ID 安装技能;hermes skills list:查看本地已安装技能。
最实用的 /learn:将流程沉淀为技能
/learn how I just deployed the staging server
/learn https://docs.example.com/api/quickstart
/learn the REST client in ~/projects/acme-sdk
Agent 会读取你提供的流程、文档或目录,并生成符合规范的 SKILL.md。之后只需调用对应技能,或用自然语言描述相似任务,即可复用这套操作。
资料较多时,Hermes 可能会生成“索引 + 参考文件”的结构,避免每次加载全部内容,占用过多 Token。
3.4 持久记忆(Memory):跨会话记住你
Hermes 的持久记忆通常由两份笔记组成:
| 文件 | 内容 | 容量上限 |
|---|---|---|
MEMORY.md |
环境事实、项目约定、踩坑经验、长期知识等。 | 约 2,200 字符(约 800 Tokens) |
USER.md |
你的偏好、沟通风格、常用要求等。 | 约 1,375 字符(约 500 Tokens) |
默认存放路径:
~/.hermes/memories/
每次会话开始时,记忆内容会作为快照注入系统提示词。例如你告诉它“不要使用 sudo,我已经在 docker 组”,或者“我偏好简短回复”,这些可复用信息就可能被写入记忆。
/memory
hermes journey
hermes journey list
/memory:查看待审批的记忆写入;hermes journey:查看技能和记忆随时间积累的学习时间线;hermes journey list:列出已学到的技能与记忆节点,可编辑或删除。
记忆与会话搜索的区别
- 记忆(MEMORY.md / USER.md):每次会话都会加载的“贴身便签”,容量有限。
- 会话搜索(session_search):搜索全部历史会话记录,例如询问“我们上周讨论过 X 吗”,Agent 会通过 SQLite 索引查找历史内容。
如果不希望 Agent 自动写入记忆,可在配置中启用审批:
memory.write_approval: true
启用后,记忆写入会进入待审批队列,需要通过 /memory approve 或 /memory reject 决定是否生效。
技能写入也可以启用审批:
skills.write_approval: true
四、常见问题 FAQ
Q1:改了 hermes model 默认模型,为什么正在聊的会话没变?
A:这是正常现象。配置文件修改通常只对新会话生效。正在进行的对话需要使用:
/model 厂商/模型
想永久设置默认模型,则加上:
--global
Q2:hermes model 中没有可用提供商,或者提示 No authenticated providers?
A:通常是因为当前没有有效凭据。可以:
- 在
~/.hermes/.env中补充对应厂商 API Key; - 在
hermes model中使用 Custom endpoint 配置中转接口; - 对于 Nous Portal、Anthropic、Copilot 等 OAuth 类提供商,重新登录一次。
Q3:Telegram Bot 在群里不响应?
A:按顺序检查:
- 是否已在 BotFather 中关闭群聊隐私模式;关闭后需移除并重新拉入群;
- 发送者的数字 ID 是否在
TELEGRAM_ALLOWED_USERS中; - 是否开启了
require_mention: true;若开启,需要 @Bot 或回复 Bot 的消息。
Q4:WhatsApp 一定要企业号吗?
A:使用官方 Cloud API 时,需要 Meta 企业账号、企业号码和 HTTPS 公网地址。个人测试可使用 Baileys 非官方桥,但存在封号风险。
Q5:hermes gateway setup 和 hermes setup gateway 有什么区别?
A:两者都能进入消息平台配置流程。区别仅在入口:
hermes gateway setup:属于网关命令组,配置完成后更适合继续执行 start、stop、status、install 等网关管理操作;hermes setup gateway:属于完整 setup 向导中的网关配置部分。
日常建议优先使用 hermes gateway 这一组命令。
Q6:Agent 会把我说的每句话都写进记忆吗?
A:不会。它通常只记录有价值、可复用的信息,例如个人偏好、环境事实、项目约定和经验。想完全控制记忆写入时,可启用:
memory.write_approval: true
Q7:Web 搜索工具需要单独注册账号吗?
A:不一定。新装环境通常可使用免费额度轮转。需要更稳定的使用体验时,可配置 Firecrawl、Tavily、SearXNG 等后端;有付费 Nous Portal 订阅则可直接使用 Tool Gateway。
Q8:飞书机器人一定要有公网 IP 或域名吗?
A:不需要。飞书默认使用 WebSocket 长连接,Hermes 主动连接飞书,VPS 无需公网端点。只有使用 webhook 模式时,才需要公网 HTTPS 地址。
Q9:个人微信接入后为什么在群里收不到消息或无法 @?
A:个人微信适配器使用的是 iLink 机器人身份,不是普通微信账号。iLink 机器人通常无法加入普通微信群或接收普通群消息,这是平台限制。需要多人群聊协作时,建议使用企业微信或飞书。
Q10:飞书或企业微信机器人在群中不响应怎么办?
A:按以下方向检查:
- 飞书默认需要 @机器人或
@all才响应; - 检查
FEISHU_GROUP_POLICY或WECOM_GROUP_POLICY是否设置为disabled; - 检查发送者是否在
FEISHU_ALLOWED_USERS或WECOM_ALLOWED_USERS白名单中; - 企业微信默认可能是
open,若后续收紧了策略,也需按白名单逻辑检查。
五、注意事项
- Token 就是权限:Telegram Bot Token、模型 API Key、飞书 App Secret、企业微信 Secret 都不要泄露。Telegram Token 泄露后立即在 BotFather 中执行
/revoke。 - 不要开放所有用户:建议用白名单或配对码管理用户,不要开启
ALLOW_ALL_USERS一类全开放配置。 - 会话中途切模型会有缓存成本:长对话请提前确定模型,避免频繁
/model来回切换。 - 记忆和技能需要备份:
~/.hermes/memories/、~/.hermes/skills/是长期资产,建议纳入备份;可使用hermes backup。 - 7×24 在线意味着持续计费:模型和工具通常按量收费,注意使用
/usage观察消耗,设置预算和限额。 - 日志是排错第一入口:Linux 用户级服务使用
journalctl --user -u hermes-gateway -f;系统服务移除--user;macOS 可查看~/.hermes/logs/gateway.log。
结语
到这篇结束,你的 Hermes Agent 已经具备完整的三件套:
- 想用哪个模型随时切:Nous Portal、官方 API Key、OpenAI 兼容中转均可接入;
- 多平台随身指挥:Telegram、WhatsApp、飞书、企业微信、个人微信可通过常驻网关接入;
- 会开工具、能学技能、记得住你:通过 Tools、Skills、Memory 让 Agent 越用越顺手。
站内相关阅读





