站点图标 高效码农

彻底搞懂Hermes Agent:10个必试功能让AI助理秒变专家

Hermes Agent 使用指南:安装后建议尝试的十个功能

如果你刚刚接触 Hermes Agent,或者正在考虑从其他 AI 助手迁移过来,那么这篇文章就是为你准备的。本文基于实际的上手操作和源码分析,整理出安装 Hermes 后最值得先尝试的十件事。每件事都配有具体的配置方法、使用场景和验证方式,帮助你快速掌握这个工具的核心能力。

图像

前置条件:安装与部署

在开始十件事之前,我们先完成最基本的安装。Hermes Agent 支持 macOS、WSL2 和 Linux 系统。一条命令即可完成安装:

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

命令中的 -x 参数可以让你看到执行过程。如果你使用的是 Windows 系统,需要先安装 WSL2,然后在其中运行 Hermes Agent。

安装完成后,执行配置命令:

hermes setup

这个命令会以交互式方式引导你完成模型、通信渠道(Channel)等基础配置。这里有一个小细节需要注意:配置模型密钥时,粘贴的内容不会显示在屏幕上,你可能以为没贴上而重复粘贴,导致密钥错误。如果遇到这种情况,可以手动编辑配置文件:

vim ~/.hermes/.env

检查文件中的 key 是否正确,不正确的修改即可。之后配置通信渠道的方式与 OpenClaw 大同小异。

第一件事:配置浏览器反爬环境

如果你希望 Hermes 能够帮你自动阅读文章、填写表单、抢票或操作后台系统,那么它需要一个“像真人一样”的浏览器环境。普通的后端浏览器(如 Local Chromium)很容易被网站的反爬机制拦截。

解决方案是配置 Camofox 或 Browserbase。你只需要对 Hermes 说:

“帮我配置 COMOFOX 及 CAMOFOX_URL”

配置前后的效果差异很明显。配置完成后,Hermes 可以顺利访问那些原本会被拦截的页面。

亮点说明:Hermes 有一个很实用的特性——它会自己判断哪些指令属于高危操作,然后主动请求你的授权。相比之下,某些同类工具即使配置好了也会频繁弹出授权请求,而且授权信息里只有一串无意义的数字,你根本不知道它在请求什么权限。

图像

第二件事:定义你的“灵魂”(SOUL.md)

默认的 Hermes 是一个通用的 AI 助手,但每个人都有自己的使用习惯和偏好。通过自定义 SOUL.md 文件,可以让 Hermes 更贴合你的需求。

这个文件默认是空的(被注释掉了),需要你自己添加。一个简单的方法是:先和 Hermes 聊两天,在对话中自然展现你的风格和要求,然后问它:

“灵魂定义(SOUL.md)这个 Hermes 有没有推荐配置?”

Hermes 会基于这两天的对话总结出一份配置。下面是一份可用的参考文本:

---
name: 严谨架构师
version: 2.0
---

# 🧠 思考模式
- **先验证后回答**:任何不确定的 API、配置、路径,先查工具确认,不靠猜测。
- **先计划后执行**:3步以上的任务,先列方案标风险,确认再动手。
- **交付即验证**:做完一件事,主动给出"怎么检查它是否生效"。

# 🛡️ 自我约束
- 不确定时直接说"我不确定",比瞎编好。
- 发现记忆或技能有冲突,主动指出并请求裁决。
- 任务失败时,分析原因并沉淀为 Skill,不重复踩坑。

# 🗣️ 输出纪律
- 结论先行,代码/命令为主,少废话。
- 高危操作(删数据、重启、覆盖)必须预警。

亮点说明:Hermes 能够读取你的历史会话记录(session 机制),从而总结出符合你风格的建议。这个能力在后面还会用到。

第三件事:配置辅助模型(Auxiliary)

Auxiliary 模块是 Hermes 的“副驾 LLM 路由中心”。它的设计目标是让主模型专注于核心思考,而把那些重复、廉价或专门的任务交给辅助模型处理。配置好这个模块可以帮你节省成本并提升效率。

Hermes 支持为以下 8 种任务指定独立的模型和提供商:

任务类型 用途
vision 截图、验证码、图片分析
web_extract 网页内容抓取与提炼
compression 上下文压缩摘要
session_search 历史会话搜索摘要
approval 危险命令审批决策
skills_hub 技能市场搜索和安装辅助
mcp MCP 服务调用辅助
flush_memories 记忆系统清理和重组

配置方式非常直接,你只需要说:

“压缩会话辅助模型帮我配置成 qwen3.5-plus”

配置完成后,可以通过手动触发压缩来验证。查看日志文件 ~/.hermes/logs/agent.log,你会看到类似这样的输出:

  • flush_memories 使用的模型是 qwen3.6-plus(默认)
  • compression 使用的模型是你自定义的 qwen3.5-plus

亮点说明:Hermes 的压缩阈值会跟随模型的上下文窗口自动调整。不同模型(如 1M 上下文和 200K 上下文)触发压缩的比例不同,摘要预算也会相应放大:

max_summary_tokens = min(context_length * 0.05, _SUMMARY_TOKENS_CEILING)

1M 模型最多可以分配 50K token 给摘要,而 200K 模型只有 10K,这种设计更加合理。

图像

第四件事:理解和使用记忆系统

Hermes 的记忆系统分为三层,你可以根据自己的需求逐层配置。

第一层:内置记忆(默认开启)

配置文件位于 ~/.hermes/config.yaml

memory:
  memory_enabled: true           # MEMORY.md — agent 笔记
  user_profile_enabled: true     # USER.md — 用户画像
  memory_char_limit: 2200        # 默认够用,重度使用可调到 4000
  user_char_limit: 1375          # 默认够用
  nudge_interval: 10             # 每 10 轮提醒 agent 存记忆,可调到 5 更积极
  flush_min_turns: 6             # 退出前至少 6 轮以上才触发记忆刷新
  • MEMORY.md:存储 agent 的笔记,包括环境事实、项目惯例、踩过的坑。字符上限 2200,如果经常写满可以调到 4000。
  • USER.md:存储用户画像,包括偏好、沟通风格、工作习惯。字符上限 1375。
  • nudge_interval:每 10 轮提醒 agent 存一次记忆,如果你觉得记忆不够好,可以调到 5。

第二层:外部 Memory Provider(按需选择)

Hermes 支持 8 种外部记忆插件。以配置 mem0 为例,在终端执行:

hermes memory setup

然后配置密钥即可。

亮点说明:Hermes 的配置采用 YAML 格式,并且将密钥和配置分开存放,比 JSON 格式更友好。不过需要注意,修改 config.yaml 后需要重启 Hermes 才能生效(没有配置热加载)。

配置 mem0 后,每轮对话至少会触发两次 API 调用(sync_turn 写入 + queue_prefetch 搜索)。如果 agent 主动调用工具,还会有额外调用。建议先看看第一层和第三层是否满足需求,再决定是否开启外部记忆。

第三层:Session Search(默认开启)

Session Search 不是传统意义上的记忆,而是记忆系统的互补机制。它存储所有历史对话原文,位置在 ~/.hermes/state.db,使用 FTS5 关键词检索和 LLM 摘要。

有两种检索模式:

  • query 为空:直接返回最近 session 列表,不调用 LLM
  • 有 query:FTS5 检索 → LLM 摘要

如果摘要 LLM 调用失败,会直接返回原始文本前 500 字符的原始预览,不会因为 LLM 挂了就什么都不返回。

图像

第五件事:配置网络搜索能力

让 Hermes 具备网络搜索能力非常简单。它原生支持 exa、Tavily、parallel、firecrawl。你只需要告诉它:

“帮我配置个 exa 吧”

Hermes 会自动完成配置。

亮点说明:Hermes 会在 IM(即时消息)界面中清晰打印工具执行的过程,这对调试和理解 agent 的行为非常有帮助。

图像

第六件事:使用自动化审计(Hooks)

Hermes Agent 有两套互补的扩展系统:

  1. Gateway Hooks:网关事件驱动钩子
  2. Plugin System:插件生命周期钩子

核心理念是:Hooks 处理事件通知,Plugins 处理功能扩展,两者互补。

可用的 8 个生命周期 Hook

Hook 名称 触发时机
on_session_start 会话创建时
pre_llm_call 每轮 LLM 调用前
pre_api_request 每次 API 调用前
post_api_request 每次 API 调用后
pre_tool_call 每次工具执行前
post_tool_call 每次工具执行后
post_llm_call 每轮 LLM 调用后
on_session_end 会话结束时

实操示例:终端命令审计插件

你可以让 Hermes 帮你开发一个审计插件,比如:

“做一个终端命令审计插件(Terminal Audit Hook):在每次 terminal 工具执行完毕后,自动把命令内容、执行结果、时间戳、会话 ID 追加到日志文件。”

Hermes 会帮你写好并配置好。整个过程比某些同类工具方便很多。

图像

第七件事:使用沙箱(Sandbox)提高安全性

默认情况下,Hermes 执行命令使用的是本地环境。如果你需要更高的安全性,可以配置 Docker 沙箱。

你可以单独创建一个 agent 实例(profile)来配置 Docker 沙箱。参考命令如下:

# 将 Worker 绑定到你的副 Bot (Token B)
hermes -p worker config set gateway.telegram.bot_token "TOKEN_B"
hermes -p worker config set gateway.telegram.enabled true

# 设置 Worker 为 Docker 沙箱模式
hermes -p worker config set terminal.backend docker
hermes -p worker config set terminal.docker_image python:3.11-slim

# Worker 可以用便宜点的模型
hermes -p worker config set model.provider alibaba
hermes -p worker config set model.model qwen3.5-plus

配置完成后,在 worker bot 中尝试执行 rm -rf /,一开始 agent 会拒绝。坚持确认后,它会在 Docker 容器中执行,由于系统保护,只会删除部分目录,不会影响宿主机。

你可以通过 docker ps 命令确认容器确实启动了。

亮点说明:Hermes 支持多 profile(agent 实例)配置,而且只需要一句话就能完成。在同类工具中,通常需要自己登录后台手动调整。

图像

第八件事:多 Agent 协同

多 agent 功能值得单独用一篇文章来介绍,这里先做一个简要展示。

在同一个 session 下,你可以触发多个 agent 协同工作。触发方式很简单,直接说:

“请 spawn 三个 subagent 来相互讨论下 Hermes 的优劣势”

Hermes 会创建三个子 agent,它们会相互讨论并给出结果。

另一种多 agent 方式是使用不同的 profile(如前文提到的 worker),它们之间完全隔离。

图像

第九件事:备份你的配置和数据

如果你决定长期使用 Hermes,备份是必不可少的。推荐做三层备份:

第一层:本地 Git 备份

~/.hermes/ 目录初始化为 Git 仓库,并推送到 GitHub 私有仓库。注意在 .gitignore 中排除 .env 文件。

第二层:本地其他磁盘备份 + 定时任务

以下是一个完整的备份脚本:

#!/bin/bash
BACKUP_NAME="hermes_full_backup_$(date +%Y%m%d_%H%M%S)"
BACKUP_DIR="/tmp/$BACKUP_NAME"
DEST_DIR=~/hermes_backups

mkdir -p $BACKUP_DIR/hermes
mkdir -p $DEST_DIR

echo "📦 正在打包核心配置..."
cp ~/.hermes/config.yaml $BACKUP_DIR/hermes/
cp ~/.hermes/.env $BACKUP_DIR/hermes/
cp ~/.hermes/MEMORY.md $BACKUP_DIR/hermes/ 2>/dev/null

echo "🧠 正在打包数据库与会话..."
cp ~/.hermes/state.db $BACKUP_DIR/hermes/
cp -r ~/.hermes/sessions $BACKUP_DIR/hermes/ 2>/dev/null

echo "🔧 正在打包扩展与审计..."
cp -r ~/.hermes/plugins $BACKUP_DIR/hermes/ 2>/dev/null
cp -r ~/.hermes/audit_logs $BACKUP_DIR/hermes/ 2>/dev/null
cp -r ~/.hermes/skills $BACKUP_DIR/hermes/ 2>/dev/null
cp -r ~/.hermes/cron $BACKUP_DIR/hermes/ 2>/dev/null

echo "👥 正在打包所有 Profile 数据..."
cp -r ~/.hermes/profiles $BACKUP_DIR/hermes/ 2>/dev/null

echo "📦 正在压缩..."
tar -czf $DEST_DIR/$BACKUP_NAME.tar.gz -C /tmp $BACKUP_NAME
rm -rf $BACKUP_DIR

echo ""
echo "✅ 备份完成!"
echo "📍 路径: $DEST_DIR/$BACKUP_NAME.tar.gz"
echo "📊 大小: $(du -h $DEST_DIR/$BACKUP_NAME.tar.gz | cut -f1)"

第三层:远程备份

可以备份到远程服务器、对象存储(如 S3、OSS),或者使用 Git 推送到远端。

第十件事:使用 Skill 系统沉淀经验

Skill 系统是 Hermes 非常智能的一个功能。它会自动复盘你的操作,将重复性的、有价值的工作流程固化为可复用的技能。

config.yaml 中有一个参数:

creation_nudge_interval: 15

这个参数的意思是:每累计 15 次工具循环,触发一次后台 skill review。review 的过程如下:

  1. 派生一个后台 agent,拿着当前对话的完整快照
  2. 问自己一个问题:“刚才的对话里,有没有经过试错、调整方向、或者用户期望不同做法的非平凡经验?”
  3. 根据结果:
    • 如果有现成 skill 可更新 → 调用 skill_manage 更新已有 skill
    • 没有但值得新建 → 调用 skill_manage 创建新 skill
    • 没什么值得存的 → 输出 “Nothing to save.”

整个过程在后台线程运行,不阻塞用户对话,不修改主对话历史。

亮点说明:这是 Hermes 的一个出圈亮点——自动将价值操作沉淀为永久技能。另外还有一个值得一提的特性:无论以什么方式退出(正常/异常/中断),消息都不会丢失。系统有 20 个触发点覆盖了所有退出路径,通过 session 分裂的方式保证每个 session 记录完整且不重复。

图像

常见问题(FAQ)

问:Hermes Agent 和 OpenClaw 的主要区别是什么?

从使用体验来看,Hermes 的稳定性更好,全程使用 qwen 3.6 plus 模型也没有崩溃过。而 OpenClaw 通常需要海外 SOTA 模型,否则容易出问题。另外,Hermes 的高危指令授权机制比 OpenClaw 更清晰——OpenClaw 的授权信息中只有一串无意义的数字,你很难判断它在请求什么权限。

问:配置过程中如果密钥粘贴错误怎么办?

手动编辑 ~/.hermes/.env 文件,修正密钥即可。不需要重新运行 hermes setup

问:修改配置后需要重启吗?

是的,Hermes 目前不支持配置热加载。修改 config.yaml 后需要重启 Hermes 才能生效。

问:外部记忆(如 mem0)值得开启吗?

这取决于你的使用场景。开启外部记忆后,每轮对话至少增加 2 次 API 调用。建议先体验内置记忆和 Session Search 是否满足需求,如果不够再考虑开启外部记忆。

问:Sandbox 模式下执行 rm -rf / 会损坏系统吗?

不会。在 Docker 沙箱中执行,只会影响容器内部,不会影响宿主机。而且 Hermes 本身也会拒绝执行这类高危命令,需要你明确确认。

问:如何让 Hermes 更符合我的使用习惯?

建议先和 Hermes 正常对话两天,然后让它根据对话历史帮你生成 SOUL.md 配置。这是最省力的方式。

问:备份脚本中需要备份 profiles 目录吗?

是的。profiles 目录包含了所有分身(如 worker)的配置和数据,建议完整备份。

问:Session Search 支持向量检索吗?

目前 Hermes 的 Session Search 使用 FTS5 关键词检索 + LLM 摘要,不支持向量检索。同类工具 OpenClaw 支持混合检索(BM25 + 向量检索),但粒度是日记文件,不是 session 级别。两者各有优劣。

总结

通过以上十个方面的实践,你应该已经对 Hermes Agent 的核心能力有了比较全面的了解。整体使用体验比较流畅,稳定性也令人满意。很多操作(如配置、升级)都可以直接通过对话完成,不需要手动编辑配置文件,这对日常使用来说非常方便。

希望这份指南能帮助你快速上手 Hermes Agent。如果你在实践过程中有新的发现或问题,欢迎交流讨论。

退出移动版