第一讲:从零开始——认识Hermes、安装和选模型

Hermes 入门 11 讲

用了一个月Hermes之后,我觉得这东西值得好好写一写。

它不是那种"用完即走"的AI聊天工具。它会记住你、能动手干活、还能自己长进。每天早上自动给我推AI新闻摘要,中午给我推市场建议,晚上给我推他自己一天给服务器做的维护和巡检报告,相当于一个自主全能的秘书。

但网上关于Hermes的中文资料太少了,官方文档又全是英文,而且对零基础小白不友好。我从5月18日开始,把自己摸索出来的经验整理成这个系列,从零开始手把手教。

如果你也想有个真正能干活的AI助手,而不是只会聊天的机器人,跟着往下看就行。


这三件事是入门最关键的,我单独拆一篇讲透。装不好、模型选不对,后面一切都白搭。

先搞清楚Hermes是什么

你肯定用过ChatGPT、Kimi、Claude这些。它们能聊天、写文章、改代码,但有个通病:每次新开对话,它大概率不记得你是谁,更不记得你们上次聊到哪儿了。

Hermes不一样。它是AI智能体(Agent),核心能力就三个:

  1. 1. 能记住你——跨会话持久记忆,越久越懂你
  2. 2. 能动手干活——搜索网页、执行命令、读写文件、操作浏览器
  3. 3. 能自己学——你纠正它一次,它把经验存成技能,下次直接用

简单说,ChatGPT像"很聪明的问答员",Hermes像"能记住你、能干活、还能自己长进"的助理。

安装:一条命令搞定

系统要求

  • • Linux(最推荐)/ macOS(也很稳)/ Windows(需装WSL2)
  • • 能连外网
  • • 磁盘预留2GB

Windows用户先去微软官网装WSL2,5分钟搞定。之后所有操作都在WSL2终端里进行。

安装命令

打开终端,粘贴这一行:

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

这条命令会自动:装Python环境、Node.js、ripgrep、ffmpeg、Hermes本体,全程3-5分钟。

装完 reload shell:

source ~/.bashrc   # 或 source ~/.zshrc

验证:

hermes --version

看到版本号就是成了。

国内网络可能卡住:脚本要从GitHub下载,连不上就挂代理多试几次。

首次运行setup

别急着聊天,先走配置向导:

hermes setup

会问你要:选模型提供商、填API key、选终端后端(新手选local)、启用工具集(可以先全选)。

不确定就按回车用默认,之后随时能改。

说第一句话

hermes

看到欢迎界面后,光标在  后面,直接打字:

你好,帮我查看一下当前目录下有哪些文件

如果它回复你了,并且真的列出了文件——恭喜你,装成了。

安装出问题?

hermes doctor

这条命令会诊断环境问题,告诉你哪里错了、怎么修。我装的时候要是早知道这个,能省半小时。

选模型:这是最关键的一步

Hermes本身是个"壳",真正理解你说话、生成回复的是接进去的AI模型。模型选不对,Hermes再好也使不顺。

两个硬指标

  1. 1. 上下文窗口至少64K(约5万字)。不够的话它会频繁"失忆"
  2. 2. 支持工具调用。不支持的话Hermes只能当普通聊天机器人用

好消息是,现在主流模型基本都满足。

国内用户怎么选

免费/低成本起步:

  • • Ollama(本地):完全免费,用你的电脑跑。需要好显卡(16G+显存),否则很慢
  • • OpenRouter:一个key能用200+模型,很多有免费额度

国内模型推荐:

模型特点注册地址
Kimi/Moonshot上下文大(200K),长文本很强platform.moonshot.cn
GLM/z.ai中文理解好,价格良心z.ai / open.bigmodel.cn
DeepSeekV3和R1性价比极高platform.deepseek.com
MiniMax支持浏览器OAuth,不用手动配key选MiniMax OAuth
阿里通义千问Qwen系列中文强dashscope.aliyun.com

国际备选(需代理):

  • • Anthropic Claude:工具调用最稳,但贵
  • • OpenAI GPT-4o:综合强,也贵
  • • Google Gemini:长上下文很强,有免费额度

我的建议

  • • 刚入门:DeepSeek或Kimi,便宜好用,注册简单
  • • 不想折腾key:MiniMax OAuth,浏览器登录就行
  • • 重度使用:主模型用Kimi/Claude,fallback配DeepSeek兜底

切换模型

任何时候换模型都简单:

hermes model    # 交互式选择菜单

或直接指定:

hermes config set model kimi/kimi-latest
hermes config set model deepseek/deepseek-chat

配置Fallback

主模型偶尔抽风(网络问题、额度用完),配个备用:

# 在 ~/.hermes/config.yaml 里加
fallback_providers:
  - provider: deepseek
    model: deepseek-chat

主模型挂了自动切过去,对话不中断。

安装+配置一条龙检查清单

按这个顺序走,基本不会出问题:

  1. 1. ✅ 确认系统(Linux/macOS/WSL2)
  2. 2. ✅ 执行安装命令
  3. 3. ✅ source ~/.bashrc
  4. 4. ✅ hermes --version 验证安装
  5. 5. ✅ hermes setup 完成初始配置
  6. 6. ✅ hermes 启动,说第一句话测试
  7. 7. ✅ hermes doctor 跑一遍诊断

都过了?那你已经跨过最难的坎了。

 



第二讲:第一次对话——CLI界面完全指南

Hermes 入门 11 讲

第一次打开Hermes的时候,我盯着那堆信息看了半天,不知道哪块是干嘛的。其实看习惯了挺直观的。

启动Hermes

有两种启动方式:

hermes        # 经典CLI界面
hermes --tui  # 新版的TUI界面(推荐)

--tui 是新版界面,支持鼠标、模态窗口、非阻塞输入,体验更好。两个界面功能完全一样,只是外观不同。

界面解读

启动后你会看到类似这样的画面:

╭─ ⚕ Hermes Agent ──────────────────────────────────────────╮
│  model: deepseek/deepseek-chat                            │
│  provider: deepseek                                       │
│  tools: terminal, file, web, browser, memory...           │
│  skills: plan, github-pr-workflow...                      │
│  backend: local                                           │
╰───────────────────────────────────────────────────────────╯

❯ 

从上到下:

欢迎横幅:显示当前用的模型、提供商、启用的工具、加载的技能、终端后端。一眼就能确认配置对不对。

对话区:你发的消息和Hermes的回复都会显示在这里。

输入区:最下面的  就是输入光标,直接打字回车发送。

状态栏

在输入区上方,有一条实时更新的状态栏:

⚕ deepseek-chat │ 12.4K/200K │ [██████░░░░] 6% │ $0.06 │ 15m

从左到右:

  • • 模型名:当前在用的模型
  • • Token用量:已用 / 总共可用(比如12.4K/200K)
  • • 进度条:可视化显示上下文占用比例
  • • 花费:当前会话大概花了多少钱
  • • 时长:会话已经进行了多久

进度条颜色含义

  • • 绿色(<50%):还有很多空间,随便聊
  • • 黄色(50-80%):开始有点满了,注意
  • • 橙色(80-95%):快满了,该压缩了
  • • 红色(≥95%):满了,再聊会丢上下文

看到橙色或红色的时候,输 /compress 让Hermes压缩一下历史对话,腾出空间。

发送消息

直接在  后面打字,回车发送。

多行输入

  • • Alt+Enter 或 Ctrl+J 换行
  • • 或者行尾加 \ 续行

粘贴大段文字:直接粘贴就行,Hermes会显示一个精简预览,不会把终端刷满。

快捷键

按键作用
Enter发送消息
Alt+Enter / Ctrl+J换行(多行输入)
Ctrl+C打断当前操作(按两次强制退出)
Ctrl+D退出Hermes
Ctrl+G用外部编辑器写长消息(保存后自动发送)
Ctrl+B语音录制(开启语音模式后)
Tab接受自动补全

Windows Terminal用户注意Alt+Enter 在Windows Terminal里是切换全屏,冲突了。用 Ctrl+Enter 或 Ctrl+J 换行。

打断和重定向

Hermes干活的时候(比如在执行命令、搜索网页),你可以随时打断:

  1. 1. 直接打字+回车:新消息会自动打断当前操作
  2. 2. Ctrl+C:强制中断

我常用第一种,方便。比如它正在搜资料,我突然想起还有一件事要补充,直接打字就行,不用等它搜完。

会话管理

退出Ctrl+D 或输 /quit

退出时的提示

Resume this session with:
  hermes --resume 20260225_143052_a1b2c3

恢复会话

hermes --continue     # 恢复最近一次会话
hermes -c             # 简写
hermes --resume 20260225_143052_a1b2c3  # 恢复指定会话

给会话命名

/title 我的项目开发

之后可以用名字恢复:

hermes -c "我的项目开发"

查看所有会话

hermes sessions list

显示模式切换

Hermes干活的时候会有动画反馈:

  ◜ (。•́︿•̀。) pondering... (1.2s)
  ┊ 💻 terminal `ls -la` (0.3s)
  ┊ 🔍 web_search (1.2s)

如果你想看更多或更少细节,用 /verbose 切换:

  • • off:静默,只显示最终结果
  • • new:只在换工具时显示
  • • all:显示每个工具调用(默认)
  • • verbose:显示完整参数和调试信息

 



第三讲:斜杠命令大全——像老手一样操控Hermes

Hermes 入门 11 讲

我刚用Hermes的时候,每次想干点啥都要打一大段话描述。后来才发现输个 / 就能调出命令菜单,很多操作一条命令就搞定,快太多了。

斜杠命令是什么

在Hermes的对话界面里,输入 / 会弹出一个自动补全菜单,列出所有可用的命令。命令不分大小写,/HELP 和 /help 效果一样。

装了的技能也会自动变成斜杠命令,比如装了 plan 技能后,输 /plan 就能调用。

基础操作类

/new 和 /reset —— 清屏重来

什么时候用:当前对话聊跑偏了、上下文太乱、或者想换个话题。

❯ /new

效果:清空当前对话上下文,保留配置和记忆,相当于开了个新对话但不用退出重进。

/reset 和 /new 效果一样,随便用哪个。

使用场景示例

❯ 帮我分析这段代码
(Hermes分析了一堆)
❯ /new
❯ 好了换件事,帮我写个邮件

/title —— 给会话起个名字

什么时候用:这个会话你想留着以后恢复,起个名字好找。

❯ /title 用户登录功能开发

之后恢复:

hermes -c "用户登录功能开发"

/save —— 手动保存会话

什么时候用:做了重要操作,想确保不会丢。

❯ /save

默认Hermes退出时自动保存,但关键时刻手动存一下更安心。

/quit —— 退出

❯ /quit

退出前会自动保存会话,并显示恢复命令。

模型切换类

/model —— 查看和切换模型

什么时候用:当前模型不够用了(比如要处理复杂代码,想换个更强的),或者当前模型挂了。

❯ /model                    # 查看当前模型配置
❯ /model anthropic/claude-opus-4    # 直接切换到Claude Opus
❯ /model                    # 不加参数进入交互式菜单

实际场景

❯ 帮我写个简单的Python脚本
(DeepSeek很快写完)
❯ /model anthropic/claude-opus-4
❯ 这个脚本有个边界情况我没想清楚,你深入分析一下
(切换到Opus处理复杂推理)
❯ /model deepseek/deepseek-chat
❯ 好了换回去,太贵了

工具和信息类

/tools —— 查看当前可用的工具

什么时候用:想知道Hermes现在能干什么,或者排查某个功能为什么没反应。

❯ /tools

会列出所有当前启用的工具,比如 terminal、web_search、read_file 等。如果你发现Hermes不会搜索网页,先 /tools 看看 web_search 在不在列表里。

/memory —— 查看记忆内容

什么时候用:好奇Hermes记住了你什么,或者想确认某条信息有没有被记进去。

❯ /memory

显示当前 MEMORY.md 和 USER.md 的内容,带占用比例。

/compress —— 压缩上下文

什么时候用:聊了很久,状态栏变橙色/红色了,或者Hermes开始忘事。

❯ /compress

Hermes会把中间部分的历史对话总结成摘要,腾出空间。我经常用这个,尤其是处理复杂任务聊到一半的时候。

/usage —— 查看Token和花费统计

什么时候用:想知道这回合花了多少token、总共花了多少钱。

❯ /usage

显示详细的输入/输出token数、预估花费。

/insights —— 使用统计

什么时候用:想看看最近用了多少、花在哪些模型上。

❯ /insights --days 7        # 最近7天
❯ /insights --days 30       # 最近30天

人格和风格类

/personality —— 切换人格

什么时候用:想让Hermes换个说话风格,或者需要它在某种特定模式下工作。

内置人格:

人格效果我什么时候用
helpful标准助手模式默认
concise极简回复,不说废话最常用,默认太啰嗦
technical技术风格,偏硬核写代码时
teacher教学风格,解释很细学新东西时
creative创意发散brainstorm时
pirate海盗风格,挺搞笑的无聊时试试
kawaii可爱风格心情好时
shakespeare莎士比亚风格基本不用
❯ /personality concise      # 切到极简模式
❯ /personality technical    # 切到技术模式

自定义人格(在 ~/.hermes/config.yaml 里加):

personalities:
  暴躁老哥: "你是个脾气火爆但技术很强的程序员,回复简短直接,偶尔吐槽"

然后 /personality 暴躁老哥 就能用。

/reasoning —— 调整推理深度

什么时候用:复杂任务需要更深思考,或者简单任务想让它直接给答案别墨迹。

❯ /reasoning              # 查看当前设置
❯ /reasoning high         # 深度推理(质量好但慢、贵)
❯ /reasoning none         # 不推理,直接给答案(快、便宜)
❯ /reasoning show         # 显示模型的思考过程
❯ /reasoning hide         # 隐藏思考过程

实际场景

❯ /reasoning high
❯ 帮我设计一个数据库表结构,要考虑未来可能的扩展
(深入分析各种方案)
❯ /reasoning none
❯ 好了,就按第一个方案,给我建表SQL
(直接输出,不废话)

技能类

/skills —— 管理技能

❯ /skills                   # 列出已安装技能
❯ /skills browse            # 浏览技能中心
❯ /skills search kubernetes # 搜索技能
❯ /skills install openai/skills/k8s    # 安装技能

/技能名 —— 调用技能

装了技能后,技能名自动变成斜杠命令:

❯ /plan 帮我设计一个用户认证系统的方案
❯ /github-pr-workflow 给这个功能创建个PR

会话管理类

/checkpoint 和 /restore —— 检查点

什么时候用:准备做一批可能有风险的操作,先存个检查点,出错了能回滚。

❯ /checkpoint               # 创建检查点
(做一堆操作)
❯ /restore                  # 回滚到最近的检查点

实际场景

❯ /checkpoint
❯ 帮我重构这个项目的目录结构
(Hermes一顿操作)
❯ 呃不对,这个结构不太对
❯ /restore                  # 回到重构前的状态

/busy —— 控制打断行为

什么时候用:Hermes正在干活的时候,你想发新消息但不想打断它。

❯ /busy status              # 查看当前模式
❯ /busy interrupt           # 新消息打断当前任务(默认)
❯ /busy queue               # 新消息排队,等当前任务完再处理
❯ /busy steer               # 新消息作为提示注入当前任务,不打断

实际场景

❯ 帮我分析这个日志文件
(Hermes开始分析,很长)
❯ /busy queue
❯ 对了,分析完后顺便看看有没有重复的错误模式
(这条消息不会打断分析,等分析完再处理)

显示控制类

/verbose —— 切换输出详细程度

什么时候用:想看Hermes具体调了哪些工具、传了什么参数,或者反过来想清静点。

❯ /verbose                  # 在 off → new → all → verbose 之间循环切换
模式显示什么
off只显示最终结果
new只在切换工具时显示一行
all显示每个工具调用(默认)
verbose显示完整参数和调试信息

我日常用 all,出问题调 verbose

/skin —— 切换界面皮肤

❯ /skin                     # 查看当前皮肤
❯ /skin 皮肤名               # 切换皮肤

语音类

/voice —— 语音模式

❯ /voice on                 # 开启语音输入
❯ /voice off                # 关闭
❯ /voice tts                # 开关语音播报回复

开了 /voice on 后,按 Ctrl+B 录音,再按一下停止。Hermes自动转文字处理。

后台任务类

/background —— 后台执行

什么时候用:有个任务要跑很久,但你想在前台继续聊别的。

❯ /background 分析一下/var/log目录下的日志,找出今天的错误

Hermes会在后台开一个新会话执行这个任务,前台你可以正常聊天。任务完成后结果会弹出来。

实际场景

❯ /background 把项目里所有TODO找出来,按文件分类
❯ (继续在前台聊别的)
(几分钟后弹出后台任务结果)

其他实用命令

/platforms —— 查看平台状态

❯ /platforms                # 显示当前配置的平台信息

/footer —— 切换运行时信息页脚

❯ /footer                   # 开关消息末尾显示模型/Token/时长信息

/reload-mcp —— 重载MCP服务

❯ /reload-mcp               # 修改MCP配置后,不用重启Hermes,直接重载

自定义快捷命令

有些操作你经常做,可以在 ~/.hermes/config.yaml 里定义快捷命令:

quick_commands:
  status:
    type: exec
    command: df -h /
  gpu:
    type: exec
    command: nvidia-smi
  update:
    type: exec
    command: cd ~/.hermes/hermes-agent && git pull

然后输 /status 直接看磁盘,/gpu 看显卡,/update 更新Hermes。这些不走AI,本地直接执行,零token。

我的日常 workflow

分享几个我实际在用的操作流:

开始一天工作

❯ /personality concise
❯ /reasoning high
❯ /title 今天的工作

聊久了上下文满了

❯ /compress

遇到复杂问题换强模型

❯ /model anthropic/claude-opus-4
(处理完)
❯ /model deepseek/deepseek-chat

做风险操作前

❯ /checkpoint
(让Hermes改代码)
❯ 嗯好像还行,不用restore了

长任务不耽误聊天

❯ /background 分析一下过去一周的日志
❯ (继续在前台讨论别的)

命令速查表

命令作用使用频率
/new新开对话⭐⭐⭐⭐⭐
/title命名会话⭐⭐⭐⭐
/model切换模型⭐⭐⭐⭐
/personality切换人格⭐⭐⭐⭐
/reasoning调整推理⭐⭐⭐
/compress压缩上下文⭐⭐⭐⭐⭐
/memory查看记忆⭐⭐⭐
/usage查看花费⭐⭐⭐
/tools查看工具⭐⭐
/skills查看技能⭐⭐⭐
/background后台任务⭐⭐⭐
/checkpoint创建检查点⭐⭐⭐
/busy控制打断⭐⭐
/verbose切换详细度⭐⭐⭐
/voice语音模式⭐⭐
/quit退出⭐⭐⭐⭐

 



第四讲:给Hermes装上手脚——工具与工具集

Hermes 入门 11 讲

工具是Hermes和普通AI聊天最大的区别。没有工具,它只能嘴上说;有了工具,它真能动手干。

工具是什么

简单说,工具就是Hermes能执行的具体动作。比如:

  • • 搜索网页
  • • 执行终端命令
  • • 读写文件
  • • 操作浏览器
  • • 生成图片
  • • 发送消息

你跟ChatGPT说"帮我搜一下Python3.12的新特性",它只能告诉你它训练数据里记得的。你跟Hermes说同样的话,它会真的打开搜索引擎,找到最新资料,然后告诉你。

工具集(Toolsets)

工具太多了,Hermes把它们分组管理,叫"工具集"。你可以按需启用,不需要的关掉,省token也安全。

常用工具集:

工具集包含的能力
web网页搜索、内容提取
terminal执行终端命令
file读写文件、搜索文件
browser浏览器自动化
vision图像识别分析
memory记忆管理
cronjob定时任务
skills技能系统
todo待办事项
delegation子代理委派

怎么配置工具集

hermes tools

这是个交互式界面,用方向键选择平台(CLI、Telegram、Discord等),空格键勾选/取消工具集,回车保存。

不同平台可以配不同工具。比如:

  • • CLI上可以全开(你在电脑旁,出问题了你能看到)
  • • Telegram上只开web和memory(远程操作,安全第一)

各工具详解

web(网页搜索)

让Hermes能上网搜东西。

❯ 帮我搜一下最近一周AI领域的重要新闻

Hermes会调用 web_search,把搜到的结果读一遍,然后给你整理摘要。

还可以让它提取具体网页的内容:

❯ 提取这个网页的主要内容:https://example.com/article

web搜索的后端选择

默认用Firecrawl,需要 FIRECRAWL_API_KEY。国内用户推荐配 TAVILY_API_KEY 或 EXA_API_KEY,都挺好用。

如果你有自己的SearXNG搜索实例,也可以配 SEARXNG_URL,完全免费。

terminal(终端执行)

让Hermes能在你的系统上执行命令。这是最强大的工具,也是最有风险的。

❯ 当前目录下哪个文件夹占空间最大?

Hermes会自动运行 du -sh * | sort -hr,然后把结果告诉你。

❯ 帮我创建一个备份脚本,每天自动备份Documents文件夹

它会写脚本、测试、告诉你怎么用。

安全提示:terminal工具默认会审批危险命令(rm、dd之类)。你可以在配置里调整审批模式:

approvals:
  mode: manual    # 手动审批(默认)
  # mode: smart   # 智能审批,低风险自动过
  # mode: off     # 关闭审批,危险!

file(文件操作)

读写文件、搜索文件内容。

❯ 帮我读一下config.yaml的内容
❯ 在readme.md末尾加一段安装说明
❯ 搜索项目里所有包含"TODO"的文件

browser(浏览器)

让Hermes控制浏览器,访问网页、填表单、截图。

❯ 打开 https://news.ycombinator.com,告诉我前三条新闻的标题
❯ 帮我截图这个网页

vision(图像识别)

传图片给Hermes分析。

在CLI里:Alt+V 粘贴剪贴板图片,或者拖图片到终端(部分终端支持)。

❯ [粘贴图片] 这张图表说明了什么趋势?
❯ [粘贴图片] 这段代码有什么bug?

memory(记忆)

下一讲专门讲,这里先提一下。记忆工具让Hermes能主动保存和更新它的记忆。

cronjob(定时任务)

第九讲专门讲。简单说就是让Hermes按时自动干活。

todo(待办)

让Hermes管理待办事项列表。

❯ 帮我建一个待办:整理本周的工作汇报
❯ 查看我的待办列表
❯ 把待办#1标记为完成

delegation(子代理)

让Hermes生成子代理去并行处理多个任务。比如:

❯ 帮我同时做三件事:1.分析日志 2.检查磁盘空间 3.更新依赖包

Hermes会生成3个子代理,各自执行一个任务,最后汇总结果。

启动时指定工具集

如果你只想用某些工具,启动时直接指定:

hermes chat --toolsets "web,terminal,file"

这样就不会加载其他工具,省token,也减少误操作风险。

工具是怎么工作的

当你发消息给Hermes,它的处理流程是:

  1. 1. 理解你的需求
  2. 2. 判断需要调用什么工具
  3. 3. 调用工具,拿到结果
  4. 4. 根据结果继续思考,可能再调其他工具
  5. 5. 最后给你回复

整个过程中你会看到工具执行的实时反馈:

  ┊ 🔍 web_search "Python 3.12 new features" (1.2s)
  ┊ 📄 web_extract https://docs.python.org/3.12/whatsnew/ (2.1s)

如果某个工具执行错了,你可以直接纠正它,它会重新来。

 



第五讲:Hermes的记忆力——持久记忆系统详解

Hermes 入门 11 讲

用ChatGPT最烦的就是每次新开对话要重新交代一遍背景。Hermes解决了这个问题,而且解决得挺优雅的。

为什么记忆很重要

想象一下这个场景:

你用ChatGPT:

  • • 第一次:"我是个产品经理,在做一款社交APP"
  • • 第二次(新对话):"我是个产品经理,在做一款社交APP,之前我们聊到..."
  • • 第三次(又新对话):"我是个产品经理..."

每次都要重复自我介绍,累不累?

用Hermes:

  • • 第一次:"我是个产品经理,在做一款社交APP"
  • • Hermes默默记下
  • • 第二次打开:"继续上次的想法"——它知道你是谁、在做什么

这就是持久记忆的价值。

Hermes怎么记

Hermes的记忆分两个文件,都在 ~/.hermes/memories/ 目录下:

文件记什么容量
MEMORY.md环境信息、项目情况、学到的经验约2200字符
USER.md你的偏好、沟通风格、身份信息约1375字符

为什么容量这么小?因为要塞进每次对话的系统提示里。如果记忆太大,占用的token就多,留给对话的空间就少了。所以Hermes会精选最重要的信息记下来。

记忆是怎么自动更新的

你不需要手动编辑这些文件。Hermes会在对话中自动判断什么值得记:

会自动记的

  • • 你的偏好("我喜欢简洁的回复")
  • • 环境信息("我的项目在~/code/myapp,用React")
  • • 学到的经验("上次用这个方法解决了某个问题")
  • • 重要约定("我们团队用tab缩进,不用空格")

不会记的

  • • 一次性的信息("今天天气不错")
  • • 很容易重新获取的("Python怎么装"——这个搜一下就有)
  • • 太大的内容(日志、代码块)

记忆长什么样

每次启动会话,Hermes会在系统提示里加载记忆,格式大概这样:

══════════════════════════════════════════════
MEMORY (your personal notes) [67% — 1,474/2,200 chars]
══════════════════════════════════════════════
用户项目是一个Rust web服务,在~/code/myapi,用Axum+SQLx
§
这台机器是Ubuntu 22.04,装了Docker和Podman
§
用户喜欢简洁回复,不喜欢啰嗦

每个条目之间用 § 分隔。上面还显示了占用比例,满了就会提示。

手动管理记忆

虽然自动记很方便,但有时候你也想手动整理。

查看记忆

❯ /memory

或者在命令行:

hermes curator

curator 是个交互式界面,可以看到所有记忆条目,删、改、合并都行。

让Hermes记住某件事

直接告诉它就行:

❯ 记住,我每次发给你代码的时候都希望你在回复里标注行号

它会自动把这条加到USER.md里。

让Hermes忘掉某件事

❯ 忘掉我之前说的关于那个旧项目的信息,那个项目已经结束了

修改已有的记忆

❯ 更新记忆:我不用VS Code了,现在用Cursor

记忆的容量管理

记忆快满的时候(超过80%),Hermes会自动合并相关条目,腾出空间。

你也可以主动整理:

❯ 整理一下记忆,把关于项目的信息合并成一条

Session Search:搜索过往对话

除了MEMORY.md和USER.md这两份"精华笔记",Hermes还保存了所有对话的完整记录,存在SQLite数据库里(~/.hermes/state.db)。

你可以搜索过往对话:

❯ 我们上周是不是聊过一个关于数据库迁移的话题?帮我找找

Hermes会用全文搜索找到相关对话,然后用模型给你总结。

命令行也可以查:

hermes sessions list          # 列出所有会话
hermes sessions search 关键词  # 搜索内容

记忆 vs 会话搜索的区别


持久记忆会话搜索
速度秒开(在系统提示里)需要搜索+总结
容量约1300 token无限(所有会话)
用途关键信息随时可用找某次具体聊了什么
管理Hermes自动维护自动保存,无需管理

简单说:记忆是"常用知识点",会话搜索是"历史档案"

外部记忆(可选进阶)

如果你觉得内置记忆不够用,Hermes还支持外部记忆提供商:

hermes memory setup

可选的提供商包括Honcho、Mem0等,它们提供知识图谱、语义搜索等更强大的记忆能力。但这些需要额外配置,新手可以先不用管。

 



第六讲:技能系统——Hermes的超能力商店

Hermes 入门 11 讲



有些操作我每周都要做一遍,教了Hermes一次之后,以后直接 /技能名 就搞定,比自己动手还快。

技能是什么

技能是封装好的"工作流模板"。你可以理解为APP——每个技能专注做一类事,有明确的步骤和最佳实践。

举个例子:

  • • 一个"写PR"的技能知道怎么检查代码、写描述、创建草稿PR
  • • 一个"做部署"的技能知道怎么打包、测试、推送到服务器

你装了技能之后,直接 /技能名 就能调用,不需要每次都描述一遍流程。

技能 vs 工具的区别


工具技能
是什么单个动作(搜索、执行命令)一套流程(多个步骤组合)
比喻螺丝刀、锤子宜家家具的组装说明书
怎么用Hermes自己决定什么时候调用你主动 /技能名 调用
谁提供Hermes内置官方/社区/你自己创建

怎么用技能

查看已安装的技能

❯ /skills

调用技能

❯ /plan 帮我设计一个用户认证系统的实现方案
❯ /github-pr-workflow 给这个功能创建个PR
❯ /gif-search 找一张开心的猫

每个技能就是一个斜杠命令,直接输就行。

只加载技能不执行

❯ /plan

这样会把技能加载进当前会话,Hermes会问你要做什么。

从技能中心安装

Hermes自带了一些技能,但更多技能需要从技能中心下载。

浏览官方技能

hermes skills browse

搜索技能

hermes skills search kubernetes
hermes skills search react
hermes skills search 部署

安装技能

hermes skills install openai/skills/k8s
hermes skills install official/security/1password

安装时会自动做安全扫描,检查有没有恶意内容。如果扫描发现有风险但你觉得没问题,可以加 --force 强制安装(危险的不会给你强制过)。

更新技能

hermes skills check    # 检查哪些技能有更新
hermes skills update   # 批量更新

技能来源

Hermes支持从多个来源安装技能:

来源说明
officialHermes官方维护的技能
skills-shVercel的公开技能目录
githubGitHub上的技能仓库
well-known网站发布的技能(通过/.well-known/skills/发现)
url直接通过URL安装单个技能文件

常用技能推荐

plan

  • • 内置技能
  • • 用途:让Hermes先写实施计划,而不是直接动手
  • • 适合:复杂任务,想先看方案再决定

github-pr-workflow

  • • 用途:自动化PR流程
  • • 功能:检查代码、写PR描述、创建草稿PR

git-commit

  • • 用途:生成规范的commit message

这些只是举例,技能库一直在增长。

Hermes自动创建技能

最厉害的是这个:Hermes能自己创建技能

当你完成一个复杂任务(比如花了好多步骤解决了一个问题),Hermes会自动把它总结成一个技能存起来。下次遇到类似情况,直接调用就行。

比如:

  1. 1. 你让Hermes处理一个复杂的部署流程,中间纠正了几次
  2. 2. 完成后,Hermes自动生成一个"部署XX项目"的技能
  3. 3. 下周再部署,直接 /deploy-xx-project 搞定

这功能太实用了,用久了Hermes会越来越懂你的 workflow。

技能存在哪

所有技能都在 ~/.hermes/skills/ 目录下。每个技能是一个文件夹,里面至少有 SKILL.md 文件。

你也可以自己写技能——就是写一个markdown文件,描述清楚步骤和注意事项。格式支持YAML frontmatter,可以声明名称、描述、适用平台等信息。

在对话里用技能命令

所有 hermes skills 开头的命令,在对话里都能用 /skills 调用:

❯ /skills browse
❯ /skills search kubernetes
❯ /skills install openai/skills/k8s
❯ /skills check

 



第七讲:定时自动化——让Hermes成为你的24小时助手

Hermes 入门 11 讲

这个功能我用了之后就回不去了。每天早上9点自动给我推一份AI新闻摘要,比我自己刷效率高多了。

什么是定时任务

简单说就是:你告诉Hermes"每隔多久干一件什么事",然后它就会按时执行,不需要你盯着。

比如:

  • • 每天早上9点,查一下Hacker News上的AI新闻,发给我摘要
  • • 每小时检查一下服务器状态,出问题了告警
  • • 每周日晚上,整理本周的工作记录

这些配置一次,自动运行,非常省心。

创建定时任务

最简单的方式,直接在对话里说人话:

❯ 每天早上9点,帮我查一下AI领域的新闻,发一段摘要给我

Hermes会自动创建定时任务,你只需要确认一下细节。

也可以用斜杠命令:

❯ /cron add "every day 9am" "搜索AI新闻并生成摘要"

或者用独立命令:

hermes cron create "every day 9am" "搜索AI新闻并生成摘要"

时间格式

Hermes支持好几种时间描述方式:

一次性延迟

30m     → 30分钟后执行一次
2h      → 2小时后执行一次
1d      → 1天后执行一次

循环间隔

every 30m    → 每30分钟
every 2h     → 每2小时
every 1d     → 每天

标准Cron表达式(适合精确控制):

0 9 * * *       → 每天上午9点
0 9 * * 1-5     → 工作日早上9点
0 */6 * * *     → 每6小时
30 8 1 * *      → 每月1号早上8:30

具体时间

2026-03-15T09:00:00    → 2026年3月15日上午9点执行一次

我日常用自然语言描述就够了,不需要记Cron语法。

实用场景示例

场景1:每日新闻摘要

❯ /cron add "every day 9am" "搜索过去24小时AI领域的重要新闻,整理成5条bullet points的摘要" --deliver telegram

每天早上9点,Hermes会自动搜索新闻,生成摘要,发送到你的Telegram。

场景2:服务器健康检查

❯ /cron add "every 1h" "检查系统负载、磁盘空间和内存使用情况。如果有任何指标异常,详细报告问题" --deliver telegram

每小时检查一次,出问题了马上告诉你。

场景3:每周工作汇总

❯ /cron add "every sunday 8pm" "帮我整理本周的工作:1.查看~/work目录下本周修改的文件 2.总结主要工作内容 3.列出下周待办" --deliver email

场景4:数据备份提醒

❯ /cron add "every day 11pm" "检查今天的备份是否完成,如果没完成提醒我" --deliver telegram

场景5:价格监控

❯ /cron add "every 6h" "查看XX商品的价格,如果比上周低了,告诉我" --deliver telegram

场景6:清理下载文件夹

❯ /cron add "every week" "删除~/Downloads里超过30天的文件,然后报告清理了多少空间" --deliver local

场景7:社交媒体内容准备

❯ /cron add "every day 7am" "搜索今天AI圈的热门话题,写3条朋友圈/微博文案草稿" --deliver telegram

场景8:学习提醒

❯ /cron add "every day 8pm" "提醒我今天的学习计划完成了吗,没完成的话督促我" --deliver telegram

投递方式

定时任务的结果可以发到很多地方:

投递目标说明
telegramTelegram消息
discordDiscord频道
slackSlack频道
email邮件
whatsappWhatsApp
weixin微信(需配置)
dingtalk钉钉
feishu飞书
local只保存在本地文件,不发消息
all发到所有已配置的平台

默认行为:

  • • 如果你在CLI里创建的任务,默认保存到本地
  • • 如果你在Telegram/Discord里创建的任务,默认发回来源平台

管理定时任务

查看所有任务

❯ /cron list

或命令行:

hermes cron list

暂停任务

❯ /cron pause 任务名或ID

恢复任务

❯ /cron resume 任务名或ID

立即执行一次

❯ /cron run 任务名或ID

删除任务

❯ /cron remove 任务名或ID

修改任务

❯ /cron edit 任务名 --schedule "every 2h"     # 改时间
❯ /cron edit 任务名 --prompt "新的任务描述"     # 改内容

绑定技能

定时任务可以绑定技能,让任务拥有"专业能力"。

比如你先装了一个"写技术博客"的技能,然后创建一个定时任务:

hermes cron create "every week sunday 10am" \
  "写一篇本周AI技术热点分析" \
  --skill tech-blogger \
  --deliver telegram

这样每次执行时,Hermes会先加载 tech-blogger 技能的指导,再执行任务,质量更高。

任务链

多个任务可以串联,前一个的输出作为后一个的输入。

比如:

  1. 1. 任务A:每天早上7点抓取新闻 → 保存到文件
  2. 2. 任务B:每天早上7点半读取新闻 → 生成摘要 → 发到Telegram
  3. 3. 任务C:每天早上8点读取摘要 → 生成3条社交媒体文案

配置时用 context_from 参数关联。这个有点进阶,等你熟练了再玩。

网关必须运行

定时任务依赖Hermes的网关进程调度。如果你希望任务24小时运行,需要把网关作为后台服务启动:

hermes gateway install     # 安装为用户服务
# 或者
hermes gateway             # 前台运行(关掉终端就停了)

Linux服务器用户可以用系统服务:

sudo hermes gateway install --system

成本控制技巧

定时任务如果频率太高,token消耗会积少成多。几个省钱技巧:

  1. 1. 用wakeAgent门控:任务执行前先检查条件,不满足就不调用AI(零成本跳过)
  2. 2. 精简工具集:定时任务只加载需要的工具,别全打开
  3. 3. 用便宜的模型:在config.yaml里给cron单独配一个便宜的模型
  4. 4. 适当降低频率:每小时检查改成每4小时

 



第八讲:无处不在——消息平台集成指南

Hermes 入门 11 讲



最爽的体验:在地铁上用手机给Hermes发消息,让它在家里的电脑上帮我跑任务,到站了就收到结果。

网关是什么

网关(Gateway)是Hermes的一个功能,让它能接收来自各种消息平台的消息。装了网关之后,你不一定要在电脑前才能用Hermes——手机、平板、甚至智能手表上都能聊。

核心逻辑:一个Hermes进程,同时监听多个平台的消息,所有平台共享同一个"大脑"。

支持哪些平台

平台推荐指数说明
Telegram⭐⭐⭐⭐⭐最稳定,功能最全,推荐新手
Discord⭐⭐⭐⭐适合团队协作
Slack⭐⭐⭐⭐办公场景首选
微信⭐⭐⭐国内用户刚需,需社区桥接
钉钉⭐⭐⭐国内企业常用
飞书⭐⭐⭐国内办公平台
WhatsApp⭐⭐⭐海外常用
Signal⭐⭐隐私优先
Email⭐⭐随时随地

Telegram配置(最推荐)

Telegram是国内最容易连上的海外平台,而且Bot API很成熟。我强烈建议新手从这里开始。

第一步:创建Bot

  1. 1. 打开Telegram,搜索 @BotFather
  2. 2. 点Start,然后输 /newbot
  3. 3. 按提示给Bot起名字(显示名)和用户名(必须以bot结尾,如 myhermes_bot
  4. 4. BotFather会给你一个Token,复制保存好

第二步:配置Hermes

hermes gateway setup

选择Telegram,粘贴你的Token,跟着向导走完。

第三步:启动网关

hermes gateway start

第四步:测试

在Telegram里给你的Bot发消息,它应该回复你。如果正常回复,就成了。

让Bot响应群聊消息

默认Bot只响应私聊。想在群里用:

  1. 1. 把Bot加到群里
  2. 2. 在群里 @Bot名字 你的消息

或者在配置里设置:

telegram:
  require_mention: false   # 不需要@也能响应(群里所有消息都回,可能很吵)

Discord配置

适合团队用,功能丰富。

第一步:创建Discord应用

  1. 1. 访问 https://discord.com/developers/applications
  2. 2. 点 "New Application",起个名字
  3. 3. 左边选 "Bot",点 "Add Bot"
  4. 4. 在Bot页面找到 Token,复制保存

第二步:邀请Bot加入服务器

  1. 1. 左边选 "OAuth2" → "URL Generator"
  2. 2. Scopes选 bot
  3. 3. Bot Permissions选需要的权限(至少要有发消息、读消息)
  4. 4. 复制生成的URL,在浏览器打开
  5. 5. 选择你的服务器,授权

第三步:配置Hermes

hermes gateway setup

选Discord,粘贴Token,跟着向导走。

Discord的线程功能

Discord里@Bot,它会在频道里自动创建一个线程,对话都在线程里进行,不会刷屏。这个功能很贴心。

微信接入(国内用户最关心)

重要:Hermes官方不直接支持微信,因为微信的Bot接口限制很多。但社区有桥接方案。

方案1:HermesClaw(推荐)

这是一个社区项目,把Hermes和微信桥接起来。

项目地址:https://github.com/AaronWong1999/hermesclaw

原理:通过一个中间服务,把微信消息转发给Hermes,再把Hermes的回复转回微信。

安装步骤:

  1. 1. 按项目README安装hermesclaw
  2. 2. 配置微信登录(需要扫码)
  3. 3. 配置Hermes网关指向hermesclaw

方案2:企业微信

如果你有企业微信,可以用企业微信的机器人API,官方支持更好。

钉钉/飞书

这两个平台Hermes原生支持,配置方式跟Telegram类似:

hermes gateway setup

选择对应的平台,按向导填写Webhook地址和Token。

多平台同时运行

你可以同时接多个平台:

hermes gateway setup   # 配置Telegram
hermes gateway setup   # 再配置Discord
hermes gateway setup   # 再配置Slack

然后:

hermes gateway start   # 一个命令启动所有平台

所有平台共享同一个Hermes实例,你在Telegram发的消息,Hermes记得,你在Discord接着聊也没问题。

平台间的对话连续性

这是我觉得最实用的功能之一。

场景:

  1. 1. 早上在Telegram上让Hermes分析一份报告
  2. 2. 中午在Discord上看到它还没分析完,追加了一个问题
  3. 3. 晚上回家在CLI上继续聊

这三个平台的对话是连续的,Hermes记得之前聊了什么。不需要每个平台重新开始。

语音消息

Telegram和Discord支持发送语音消息,Hermes会自动转文字处理,然后文字回复你。

配置语音转文字:

hermes config set stt.provider local   # 本地转(需要装faster-whisper)
# 或
hermes config set stt.provider groq    # 用Groq API转(快)

安全设置

网关开放在公网上,安全很重要。

用户白名单

gateway:
  allowed_users:
    - telegram:12345678
    - discord:username#1234

不在白名单里的人发消息,Hermes不会回复。

未授权DM处理

unauthorized_dm_behavior: pair   # 未授权用户发消息,回复一个配对码(默认)
# unauthorized_dm_behavior: ignore  # 直接忽略

命令审批

远程操作时,危险命令需要审批:

approvals:
  mode: manual   # 手动审批

Hermes会发消息问你"是否执行rm -rf /?",你回复"yes"才执行。

把网关设为后台服务

如果你希望网关24小时运行:

Linux/macOS

hermes gateway install     # 安装为用户级服务
# 或
sudo hermes gateway install --system   # 系统级服务

WSL2
WSL2关机后服务会停。建议配Windows任务计划程序,或者买个小服务器跑。

 



第九讲:进阶配置——打造属于你的Hermes

Hermes 入门 11 讲




Hermes的默认配置够用了,但调一调能让你用得更爽。这一讲我把最值得改的配置给你列出来。

配置文件在哪

Hermes的配置分两个文件:

文件路径存什么
config.yaml~/.hermes/config.yaml普通设置(模型、显示、工具等)
.env~/.hermes/.envAPI key和密码

为什么分开?因为 .env 存的是敏感信息,而 config.yaml 可以随便分享。

用命令改配置

不用手动编辑文件,Hermes提供了命令行工具:

hermes config              # 查看当前配置
hermes config set KEY VAL  # 修改某个值
hermes config edit         # 用编辑器打开config.yaml

比如:

hermes config set model deepseek/deepseek-chat
hermes config set terminal.backend docker
hermes config set display.tool_progress verbose

API key用 hermes config set 也会自动存到 .env,不用担心放错地方。

值得改的显示设置

输出详细程度

display:
  tool_progress: all       # off / new / all / verbose
  • • off:静默,只显示最终结果
  • • new:只在换工具时显示
  • • all:显示每个工具调用(默认,推荐)
  • • verbose:显示完整参数和调试信息

我日常用 all,出了问题调 verbose

流式输出

display:
  streaming: true

开启后,Hermes的回复会一个字一个字实时显示,不用等它全部生成完。体验好很多。

显示花费

display:
  show_cost: true

在状态栏显示当前会话花了多少钱。用了贵的模型时看着数字涨,能帮你养成节约的习惯。

终端响铃

display:
  bell_on_complete: true

Hermes干完活后终端响一声。适合启动长任务后去干别的,听到铃声就知道完了。

上下文压缩设置

聊久了上下文会满,Hermes会自动压缩。可以调触发阈值:

compression:
  enabled: true
  threshold: 0.50    # 上下文用到50%时触发压缩

如果你用的大模型(200K+上下文),可以调高点:

compression:
  threshold: 0.70    # 用到70%再压缩

审批模式

Hermes执行危险命令前会问你。三个模式:

approvals:
  mode: manual    # 手动审批(默认,推荐)
  # mode: smart   # 智能审批,安全的自动过,危险的问你
  # mode: off     # 关闭审批,危险!

新手建议 manual,熟悉后切 smart,省事很多。

终端后端

默认命令在你本地执行。可以换到其他环境:

terminal:
  backend: local     # 本地(默认)
  # backend: docker  # Docker容器(隔离安全)
  # backend: ssh     # 远程服务器

Docker后端:命令在Docker容器里执行,不会影响你的主机。适合测试不熟悉的命令。

hermes config set terminal.backend docker

SSH后端:命令在远程服务器上执行。适合Hermes跑在云服务器上,你本地只是发指令。

terminal:
  backend: ssh

环境变量:

TERMINAL_SSH_HOST=你的服务器IP
TERMINAL_SSH_USER=用户名

语音设置

文字转语音(TTS)

Hermes说话给你听:

tts:
  provider: edge     # edge(免费)/ elevenlabs / openai / gemini

Edge TTS完全免费,支持中文,音质够用。

语音转文字(STT)

你说,Hermes听:

stt:
  provider: local    # 本地(需装faster-whisper)
  # provider: groq   # Groq API(快,需key)
  # provider: openai # OpenAI Whisper

本地转文字完全免费,隐私也好,但需要装依赖。

时区设置

默认用服务器本地时区。如果你服务器在国外,想按北京时间跑定时任务:

timezone: "Asia/Shanghai"

人格自定义

系统默认的人格是标准助手。你可以完全自定义:

编辑 ~/.hermes/SOUL.md

# 身份

你是一个经验丰富但脾气有点暴躁的全栈开发者。说话直接,不爱废话,但技术能力很强。

# 风格

- 回复简短,直击要点
- 代码注释很少,认为好代码应该自解释
- 遇到蠢问题会吐槽,但还是会帮忙解决

这个文件的内容会替换掉Hermes的默认身份设定。每次启动都会加载,比 /personality 命令更持久。

项目上下文文件

在你的项目目录下放这些文件,Hermes会自动加载:

文件优先级用途
.hermes.md最高项目专属指令
AGENTS.md项目规范(递归查找)
CLAUDE.mdClaude Code兼容
.cursorrulesCursor兼容

比如你在项目根目录放 AGENTS.md

# 项目规范

- 使用TypeScript,严格模式
- 缩进用2个空格
- 测试用Vitest
- 提交前必须跑过lint和test

Hermes在这个项目里操作时,会自动知道这些规范。

检查配置是否正确

hermes config check

这条命令会检查配置是否有缺失或错误,并给出修复建议。

 



第十讲:MCP扩展——连接无限可能

Hermes 入门 11 讲



MCP这玩意儿有点像USB接口,一个标准,插什么设备都行。Hermes支持MCP之后,能接的东西突然多了好多。

什么是MCP

MCP全称 Model Context Protocol,翻译过来就是"模型上下文协议"。

简单说,它是一个通用接口标准。任何人都可以按照这个标准做一个"服务",然后Hermes(或其他支持MCP的AI)就能直接用这个服务里的功能。

打个比方:

  • • 以前每个AI工具都要自己写代码接GitHub、接数据库、接各种API
  • • 有了MCP,GitHub官方做了一个MCP服务,所有AI都能直接用
  • • 你只需要配置一下地址,不用写一行代码

为什么要关心MCP

因为MCP让Hermes的能力边界无限扩展了。

官方内置的工具只有几十种,但MCP生态里已经有成百上千的服务:

  • • GitHub MCP:管理代码仓库、PR、Issue
  • • 文件系统MCP:读写指定目录的文件
  • • PostgreSQL MCP:查询数据库
  • • Slack MCP:发消息、读频道
  • • 浏览器MCP:网页自动化
  • • 甚至你家智能家居的MCP...

而且这些不需要Hermes官方支持,社区谁都可以做。

怎么配置MCP

好消息:纯配置,不写代码。只需要在 ~/.hermes/config.yaml 里加几行。

配置格式

mcp_servers:
  github:
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_你的token"

这段配置做了什么:

  1. 1. 定义了一个叫 github 的MCP服务
  2. 2. 用npx运行GitHub的官方MCP服务
  3. 3. 传了一个GitHub Token用于认证

配置完重启Hermes,它会自动发现这个服务里的工具,然后就能用了。

实际示例

让Hermes帮你管GitHub

mcp_servers:
  github:
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"
    tools:
      include: [create_issue, list_issues, search_code]

然后你就可以说:

❯ 帮我看看我有哪些open的issue,给最urgent的那个加评论

让Hermes读写指定文件夹

mcp_servers:
  mydocs:
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/你的用户名/Documents"]

然后:

❯ 帮我整理Documents里的文件,把超过1年的旧文件移到archive文件夹

常用MCP服务推荐

服务用途安装
GitHub管理仓库、PR、Issuenpx -y @modelcontextprotocol/server-github
Filesystem文件读写npx -y @modelcontextprotocol/server-filesystem /path
PostgreSQL数据库查询npx -y @modelcontextprotocol/server-postgres
Slack消息发送npx -y @modelcontextprotocol/server-slack
Puppeteer浏览器自动化npx -y @modelcontextprotocol/server-puppeteer
Brave Search网页搜索npx -y @modelcontextprotocol/server-brave-search

大部分服务都只需要上面那种简单的配置,复制粘贴改改参数就行。

工具过滤

有些MCP服务提供的工具很多,但你可能只想让Hermes用其中几个。可以配置白名单:

mcp_servers:
  github:
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-github"]
    tools:
      include: [create_issue, list_issues]   # 只用这两个

或者黑名单:

mcp_servers:
  stripe:
    url: "https://mcp.stripe.com"
    tools:
      exclude: [delete_customer]   # 除了删除客户,其他都能用

这既是功能管理,也是安全控制。

Hermes作为MCP服务器

不只是接别人的MCP服务,Hermes自己也能当MCP服务器。

什么意思?你可以让Claude Code、Cursor、或其他MCP客户端通过Hermes来:

  • • 发Telegram消息
  • • 读Discord频道
  • • 查Hermes的记忆

启动方式:

hermes mcp serve

然后在Claude Code的配置里加上:

{
  "mcpServers": {
    "hermes": {
      "command": "hermes",
      "args": ["mcp", "serve"]
    }
  }
}

这样Claude Code写代码的时候,可以通过Hermes发消息通知你,或者读你的Hermes记忆来了解项目背景。

5个实用场景

不用写代码,纯配置就能实现:

1. 自动整理下载文件夹

配一个Filesystem MCP指向Downloads,然后创建定时任务:

❯ /cron add "every week" "整理~/Downloads,把图片移到Pictures,文档移到Documents,其他的问我" --skill file-organizer

2. GitHub Issue管理

配GitHub MCP,然后:

❯ 看看这周有哪些新bug,按严重程度排个序
❯ 给#123 issue回复:已修复,请测试

3. 数据库报表

配PostgreSQL MCP:

❯ 查一下上个月的用户增长数据,做个简单的趋势分析

4. 自动填网页表单

配Puppeteer MCP:

❯ 打开这个报名页面,帮我填一下信息:姓名xxx,邮箱xxx...

5. 跨AI工具协作

Hermes当MCP服务器,Claude Code当客户端:

  • • Claude Code写代码时发现需要确认,通过Hermes发Telegram问你
  • • 你手机上回复,Claude Code收到后继续写

故障排查

MCP服务连不上?检查这几点:

  1. 1. Node.js装了吗:MCP服务大部分用Node.js运行,node --version 看看
  2. 2. npx能用吗npx --version 检查一下
  3. 3. 服务装了吗:第一次用某个MCP服务时,npx会自动下载,需要等一会儿
  4. 4. 配置对吗:YAML缩进很重要,少一个空格就报错

如果工具没出现,用 /reload-mcp 重新加载。

 



第十一讲:故障排查与最佳实践

Hermes 入门 11 讲

最后一讲,把我踩过的坑和总结的经验全倒出来。看完这讲,你基本上能独立解决90%的问题。

故障排查顺序

遇到问题不要慌,按这个顺序排查:

hermes doctor → hermes model → hermes setup → hermes sessions list

第一步:hermes doctor

hermes doctor

这条命令会自动检查:

  • • 安装是否完整
  • • 配置有没有问题
  • • 模型提供商是否正常
  • • 工具是否能用
  • • 磁盘空间够不够

出问题了它会给出明确的修复建议,跟着做就行。

第二步:hermes model

如果doctor没发现问题,大概率是模型配置不对:

hermes model

重新选一下模型,确认:

  • • 提供商选对了
  • • API key有效(没过期、没用完额度)
  • • 模型名称正确

常见坑:API key前面多了个空格、复制的时候少了一个字符、key被重置了。重新复制粘贴一遍往往就好了。

第三步:hermes setup

前两步都不行,重新跑设置向导:

hermes setup

这会重新走一遍配置流程,把可能配错的地方重置。

第四步:hermes sessions list

如果之前能聊,突然不能了:

hermes sessions list

看看会话状态是否正常。有时候会话文件损坏,恢复不了,用 hermes --new 新开一个就好。

常见问题速查

问题1:Hermes回复空内容或报错

原因:模型提供商配置有问题(key错误、模型不可用、网络不通)

解决

hermes model    # 重新选择

如果用的是国内模型,检查能不能直连。Claude/OpenAI这些国外模型,国内需要代理。

问题2:工具不工作(比如不能搜索网页)

原因

  1. 1. 工具集没启用:hermes tools 检查
  2. 2. API key没配:web工具需要 FIRECRAWL_API_KEY 或 TAVILY_API_KEY
  3. 3. key用完了或过期了

解决

hermes tools                    # 确认工具集启用了
hermes config set FIRECRAWL_API_KEY xxx   # 重新配key

问题3:上下文满了,开始忘事

现象:聊到一半,Hermes突然忘了前面的内容;或者回复质量明显下降。

解决

❯ /compress          # 压缩上下文
❯ /usage             # 查看具体占用

长期解决:换个大上下文模型,或者调低压缩阈值:

compression:
  threshold: 0.40    # 更早触发压缩

问题4:网关启动但收不到消息

原因

  1. 1. Bot Token配错了
  2. 2. 平台设置不完整(比如Telegram的webhook)
  3. 3. 防火墙挡住了
  4. 4. Hermes没权限访问平台API

解决

hermes gateway setup    # 重新配置
hermes gateway status   # 查看状态

问题5:Hermes执行危险命令前不问我

原因:审批模式关掉了

解决

hermes config set approvals.mode manual

问题6:定时任务不执行

原因

  1. 1. 网关没运行
  2. 2. 任务被暂停了
  3. 3. 时间格式写错了

解决

hermes gateway status    # 确认网关运行中
hermes cron list         # 检查任务状态
hermes cron run 任务名    # 手动触发测试

问题7:装了技能但调不出来

原因

  1. 1. 技能没安装成功
  2. 2. 技能名记错了
  3. 3. 技能有平台限制(比如macOS专用)

解决

hermes skills list       # 看看到底装上了没
❯ /skills               # 在对话里列出可用技能

问题8:恢复会话失败

原因

  1. 1. 切换了profile(配置集)
  2. 2. 会话文件损坏
  3. 3. 换了一台机器

解决

hermes sessions list                    # 列出所有会话
hermes --resume 20260225_143052_a1b2c3  # 用ID恢复

成本控制技巧

用久了账单会涨,几个省钱方法:

1. 按场景选模型

场景推荐模型原因
日常闲聊DeepSeek / GLM便宜够用
写代码Kimi / Claude代码能力强
复杂分析Claude Opus推理能力最强
辅助任务Gemini Flash又快又便宜

2. 用Fallback降成本

主模型用贵的,fallback配便宜的:

fallback_providers:
  - provider: deepseek
    model: deepseek-chat

3. 精简工具集

只开需要的工具,减少每次请求的token消耗:

hermes tools    # 关掉不用的

4. 定时任务用便宜的模型

在config.yaml里给辅助任务单独配模型:

auxiliary:
  compression:
    provider: openrouter
    model: google/gemini-2.5-flash   # 压缩用便宜的

安全最佳实践

1. API key别泄露

.env 文件里的key是敏感信息:

  • • 别上传到GitHub
  • • 别截图发朋友圈(打码也不安全)
  • • 定期轮换key

2. 远程操作开审批

approvals:
  mode: manual    # 或 smart

3. 网关配白名单

gateway:
  allowed_users:
    - telegram:你的ID

4. 容器隔离

不信任的命令用Docker后端执行:

hermes config set terminal.backend docker

5. 定期备份

hermes backup    # 备份配置、记忆、会话

进阶技巧

同时开多个Hermes

用profile隔离不同场景:

hermes -p work     # 工作profile
hermes -p personal # 个人profile

每个profile有独立的配置、记忆、会话。

工作树隔离

hermes -w    # 在独立的git worktree里运行

适合让Hermes做代码改动,不影响主分支。

批量查询

hermes chat -q "你的问题"    # 单轮查询,非交互式

适合脚本里调用,或者快速问个问题。

查看日志

hermes logs      # 查看日志
hermes logs -f   # 实时跟踪

日志里的API key会自动打码,可以放心分享。

社区资源

遇到问题自己搞不定?

  • • GitHub Issues:https://github.com/NousResearch/hermes-agent/issues
  • • Discord社区:https://discord.gg/NousResearch
  • • 官方文档:https://hermes-agent.nousresearch.com/docs/

发issue的时候带上 hermes doctor 的输出,维护者能更快定位问题。

写在最后

11讲到这里就结束了。

回顾一下你学到了什么:认识Hermes、安装、选模型、界面操作、斜杠命令、工具、记忆、技能、定时任务、多平台集成、进阶配置、MCP扩展、故障排查。

从完全不懂到能独立使用,这个系列的目标就是让你少走弯路。我踩过的坑都给你标出来了,剩下的就是多动手、多尝试。

Hermes是个工具,真正发挥价值的是你怎么用它。希望你能用它提高效率、解决实际问题。

如果文章对你有帮助,欢迎转发给需要的朋友。有问题也可以在评论区讨论。


本系列文章基于Hermes Agent最新版本撰写,部分功能可能随版本更新有所变化,以官方文档为准。