第一讲:从零开始——认识Hermes、安装和选模型
用了一个月Hermes之后,我觉得这东西值得好好写一写。
它不是那种"用完即走"的AI聊天工具。它会记住你、能动手干活、还能自己长进。每天早上自动给我推AI新闻摘要,中午给我推市场建议,晚上给我推他自己一天给服务器做的维护和巡检报告,相当于一个自主全能的秘书。
但网上关于Hermes的中文资料太少了,官方文档又全是英文,而且对零基础小白不友好。我从5月18日开始,把自己摸索出来的经验整理成这个系列,从零开始手把手教。
如果你也想有个真正能干活的AI助手,而不是只会聊天的机器人,跟着往下看就行。
这三件事是入门最关键的,我单独拆一篇讲透。装不好、模型选不对,后面一切都白搭。
先搞清楚Hermes是什么
你肯定用过ChatGPT、Kimi、Claude这些。它们能聊天、写文章、改代码,但有个通病:每次新开对话,它大概率不记得你是谁,更不记得你们上次聊到哪儿了。
Hermes不一样。它是AI智能体(Agent),核心能力就三个:
- 1. 能记住你——跨会话持久记忆,越久越懂你
- 2. 能动手干活——搜索网页、执行命令、读写文件、操作浏览器
- 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. 上下文窗口至少64K(约5万字)。不够的话它会频繁"失忆"
- 2. 支持工具调用。不支持的话Hermes只能当普通聊天机器人用
好消息是,现在主流模型基本都满足。
国内用户怎么选
免费/低成本起步:
- • Ollama(本地):完全免费,用你的电脑跑。需要好显卡(16G+显存),否则很慢
- • OpenRouter:一个key能用200+模型,很多有免费额度
国内模型推荐:
| 模型 | 特点 | 注册地址 |
|---|---|---|
| Kimi/Moonshot | 上下文大(200K),长文本很强 | platform.moonshot.cn |
| GLM/z.ai | 中文理解好,价格良心 | z.ai / open.bigmodel.cn |
| DeepSeek | V3和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. ✅ 确认系统(Linux/macOS/WSL2)
- 2. ✅ 执行安装命令
- 3. ✅ source ~/.bashrc
- 4. ✅ hermes --version 验证安装
- 5. ✅ hermes setup 完成初始配置
- 6. ✅ hermes 启动,说第一句话测试
- 7. ✅ hermes doctor 跑一遍诊断
都过了?那你已经跨过最难的坎了。
第二讲:第一次对话——CLI界面完全指南
第一次打开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. 直接打字+回车:新消息会自动打断当前操作
- 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的时候,每次想干点啥都要打一大段话描述。后来才发现输个
/就能调出命令菜单,很多操作一条命令就搞定,快太多了。
斜杠命令是什么
在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开始忘事。
❯ /compressHermes会把中间部分的历史对话总结成摘要,腾出空间。我经常用这个,尤其是处理复杂任务聊到一半的时候。
/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和普通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/articleweb搜索的后端选择:
默认用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. 理解你的需求
- 2. 判断需要调用什么工具
- 3. 调用工具,拿到结果
- 4. 根据结果继续思考,可能再调其他工具
- 5. 最后给你回复
整个过程中你会看到工具执行的实时反馈:
┊ 🔍 web_search "Python 3.12 new features" (1.2s)
┊ 📄 web_extract https://docs.python.org/3.12/whatsnew/ (2.1s)如果某个工具执行错了,你可以直接纠正它,它会重新来。
第五讲:Hermes的记忆力——持久记忆系统详解
用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 curatorcurator 是个交互式界面,可以看到所有记忆条目,删、改、合并都行。
让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一次之后,以后直接
/技能名就搞定,比自己动手还快。
技能是什么
技能是封装好的"工作流模板"。你可以理解为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支持从多个来源安装技能:
| 来源 | 说明 |
|---|---|
official | Hermes官方维护的技能 |
skills-sh | Vercel的公开技能目录 |
github | GitHub上的技能仓库 |
well-known | 网站发布的技能(通过/.well-known/skills/发现) |
url | 直接通过URL安装单个技能文件 |
常用技能推荐
plan
- • 内置技能
- • 用途:让Hermes先写实施计划,而不是直接动手
- • 适合:复杂任务,想先看方案再决定
github-pr-workflow
- • 用途:自动化PR流程
- • 功能:检查代码、写PR描述、创建草稿PR
git-commit
- • 用途:生成规范的commit message
这些只是举例,技能库一直在增长。
Hermes自动创建技能
最厉害的是这个:Hermes能自己创建技能。
当你完成一个复杂任务(比如花了好多步骤解决了一个问题),Hermes会自动把它总结成一个技能存起来。下次遇到类似情况,直接调用就行。
比如:
- 1. 你让Hermes处理一个复杂的部署流程,中间纠正了几次
- 2. 完成后,Hermes自动生成一个"部署XX项目"的技能
- 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小时助手
这个功能我用了之后就回不去了。每天早上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投递方式
定时任务的结果可以发到很多地方:
| 投递目标 | 说明 |
|---|---|
telegram | Telegram消息 |
discord | Discord频道 |
slack | Slack频道 |
email | 邮件 |
whatsapp | |
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. 任务A:每天早上7点抓取新闻 → 保存到文件
- 2. 任务B:每天早上7点半读取新闻 → 生成摘要 → 发到Telegram
- 3. 任务C:每天早上8点读取摘要 → 生成3条社交媒体文案
配置时用 context_from 参数关联。这个有点进阶,等你熟练了再玩。
网关必须运行
定时任务依赖Hermes的网关进程调度。如果你希望任务24小时运行,需要把网关作为后台服务启动:
hermes gateway install # 安装为用户服务
# 或者
hermes gateway # 前台运行(关掉终端就停了)Linux服务器用户可以用系统服务:
sudo hermes gateway install --system成本控制技巧
定时任务如果频率太高,token消耗会积少成多。几个省钱技巧:
- 1. 用wakeAgent门控:任务执行前先检查条件,不满足就不调用AI(零成本跳过)
- 2. 精简工具集:定时任务只加载需要的工具,别全打开
- 3. 用便宜的模型:在config.yaml里给cron单独配一个便宜的模型
- 4. 适当降低频率:每小时检查改成每4小时
第八讲:无处不在——消息平台集成指南
最爽的体验:在地铁上用手机给Hermes发消息,让它在家里的电脑上帮我跑任务,到站了就收到结果。
网关是什么
网关(Gateway)是Hermes的一个功能,让它能接收来自各种消息平台的消息。装了网关之后,你不一定要在电脑前才能用Hermes——手机、平板、甚至智能手表上都能聊。
核心逻辑:一个Hermes进程,同时监听多个平台的消息,所有平台共享同一个"大脑"。
支持哪些平台
| 平台 | 推荐指数 | 说明 |
|---|---|---|
| Telegram | ⭐⭐⭐⭐⭐ | 最稳定,功能最全,推荐新手 |
| Discord | ⭐⭐⭐⭐ | 适合团队协作 |
| Slack | ⭐⭐⭐⭐ | 办公场景首选 |
| 微信 | ⭐⭐⭐ | 国内用户刚需,需社区桥接 |
| 钉钉 | ⭐⭐⭐ | 国内企业常用 |
| 飞书 | ⭐⭐⭐ | 国内办公平台 |
| ⭐⭐⭐ | 海外常用 | |
| Signal | ⭐⭐ | 隐私优先 |
| ⭐⭐ | 随时随地 |
Telegram配置(最推荐)
Telegram是国内最容易连上的海外平台,而且Bot API很成熟。我强烈建议新手从这里开始。
第一步:创建Bot
- 1. 打开Telegram,搜索
@BotFather - 2. 点Start,然后输
/newbot - 3. 按提示给Bot起名字(显示名)和用户名(必须以bot结尾,如
myhermes_bot) - 4. BotFather会给你一个Token,复制保存好
第二步:配置Hermes
hermes gateway setup选择Telegram,粘贴你的Token,跟着向导走完。
第三步:启动网关
hermes gateway start第四步:测试
在Telegram里给你的Bot发消息,它应该回复你。如果正常回复,就成了。
让Bot响应群聊消息
默认Bot只响应私聊。想在群里用:
- 1. 把Bot加到群里
- 2. 在群里
@Bot名字 你的消息
或者在配置里设置:
telegram:
require_mention: false # 不需要@也能响应(群里所有消息都回,可能很吵)Discord配置
适合团队用,功能丰富。
第一步:创建Discord应用
- 1. 访问 https://discord.com/developers/applications
- 2. 点 "New Application",起个名字
- 3. 左边选 "Bot",点 "Add Bot"
- 4. 在Bot页面找到 Token,复制保存
第二步:邀请Bot加入服务器
- 1. 左边选 "OAuth2" → "URL Generator"
- 2. Scopes选
bot - 3. Bot Permissions选需要的权限(至少要有发消息、读消息)
- 4. 复制生成的URL,在浏览器打开
- 5. 选择你的服务器,授权
第三步:配置Hermes
hermes gateway setup选Discord,粘贴Token,跟着向导走。
Discord的线程功能
Discord里@Bot,它会在频道里自动创建一个线程,对话都在线程里进行,不会刷屏。这个功能很贴心。
微信接入(国内用户最关心)
重要:Hermes官方不直接支持微信,因为微信的Bot接口限制很多。但社区有桥接方案。
方案1:HermesClaw(推荐)
这是一个社区项目,把Hermes和微信桥接起来。
项目地址:https://github.com/AaronWong1999/hermesclaw
原理:通过一个中间服务,把微信消息转发给Hermes,再把Hermes的回复转回微信。
安装步骤:
- 1. 按项目README安装hermesclaw
- 2. 配置微信登录(需要扫码)
- 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. 早上在Telegram上让Hermes分析一份报告
- 2. 中午在Discord上看到它还没分析完,追加了一个问题
- 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的默认配置够用了,但调一调能让你用得更爽。这一讲我把最值得改的配置给你列出来。
配置文件在哪
Hermes的配置分两个文件:
| 文件 | 路径 | 存什么 |
|---|---|---|
| config.yaml | ~/.hermes/config.yaml | 普通设置(模型、显示、工具等) |
| .env | ~/.hermes/.env | API 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 verboseAPI 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: trueHermes干完活后终端响一声。适合启动长任务后去干别的,听到铃声就知道完了。
上下文压缩设置
聊久了上下文会满,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 dockerSSH后端:命令在远程服务器上执行。适合Hermes跑在云服务器上,你本地只是发指令。
terminal:
backend: ssh环境变量:
TERMINAL_SSH_HOST=你的服务器IP
TERMINAL_SSH_USER=用户名语音设置
文字转语音(TTS)
Hermes说话给你听:
tts:
provider: edge # edge(免费)/ elevenlabs / openai / geminiEdge 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.md | 中 | Claude Code兼容 |
.cursorrules | 低 | Cursor兼容 |
比如你在项目根目录放 AGENTS.md:
# 项目规范
- 使用TypeScript,严格模式
- 缩进用2个空格
- 测试用Vitest
- 提交前必须跑过lint和testHermes在这个项目里操作时,会自动知道这些规范。
检查配置是否正确
hermes config check这条命令会检查配置是否有缺失或错误,并给出修复建议。
第十讲:MCP扩展——连接无限可能
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. 定义了一个叫
github的MCP服务 - 2. 用npx运行GitHub的官方MCP服务
- 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、Issue | npx -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-organizer2. 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. Node.js装了吗:MCP服务大部分用Node.js运行,
node --version看看 - 2. npx能用吗:
npx --version检查一下 - 3. 服务装了吗:第一次用某个MCP服务时,npx会自动下载,需要等一会儿
- 4. 配置对吗:YAML缩进很重要,少一个空格就报错
如果工具没出现,用 /reload-mcp 重新加载。
第十一讲:故障排查与最佳实践
最后一讲,把我踩过的坑和总结的经验全倒出来。看完这讲,你基本上能独立解决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. 工具集没启用:
hermes tools检查 - 2. API key没配:web工具需要
FIRECRAWL_API_KEY或TAVILY_API_KEY - 3. key用完了或过期了
解决:
hermes tools # 确认工具集启用了
hermes config set FIRECRAWL_API_KEY xxx # 重新配key问题3:上下文满了,开始忘事
现象:聊到一半,Hermes突然忘了前面的内容;或者回复质量明显下降。
解决:
❯ /compress # 压缩上下文
❯ /usage # 查看具体占用长期解决:换个大上下文模型,或者调低压缩阈值:
compression:
threshold: 0.40 # 更早触发压缩问题4:网关启动但收不到消息
原因:
- 1. Bot Token配错了
- 2. 平台设置不完整(比如Telegram的webhook)
- 3. 防火墙挡住了
- 4. Hermes没权限访问平台API
解决:
hermes gateway setup # 重新配置
hermes gateway status # 查看状态问题5:Hermes执行危险命令前不问我
原因:审批模式关掉了
解决:
hermes config set approvals.mode manual问题6:定时任务不执行
原因:
- 1. 网关没运行
- 2. 任务被暂停了
- 3. 时间格式写错了
解决:
hermes gateway status # 确认网关运行中
hermes cron list # 检查任务状态
hermes cron run 任务名 # 手动触发测试问题7:装了技能但调不出来
原因:
- 1. 技能没安装成功
- 2. 技能名记错了
- 3. 技能有平台限制(比如macOS专用)
解决:
hermes skills list # 看看到底装上了没
❯ /skills # 在对话里列出可用技能问题8:恢复会话失败
原因:
- 1. 切换了profile(配置集)
- 2. 会话文件损坏
- 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-chat3. 精简工具集
只开需要的工具,减少每次请求的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 # 或 smart3. 网关配白名单
gateway:
allowed_users:
- telegram:你的ID4. 容器隔离
不信任的命令用Docker后端执行:
hermes config set terminal.backend docker5. 定期备份
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最新版本撰写,部分功能可能随版本更新有所变化,以官方文档为准。