一、会话管理:你的每一次对话都被记住
1. 什么是会话
你和 Hermes 的每一段对话都是一个「会话(Session)」,系统会自动保存和索引。你随时可以回去继续、搜索、或者删掉。
2. 基本操作命令
hermes sessions list # 列出近期会话
hermes sessions browse # 交互式选择会话
hermes --continue # 继续上次会话(简写 -c)
hermes --resume 20250225_143052_a1b2c3 # 按会话 ID 恢复
hermes -r "我的项目设置" # 按标题恢复
hermes sessions rename <id> "后端 API 开发" # 重命名
hermes sessions delete <id> # 删除会话
hermes sessions prune --older-than 30 # 清理 30 天前的旧会话3. 会话内的斜杠命令
4. 会话存在哪?
Hermes 用 SQLite 数据库 ~/.hermes/state.db 保存所有会话,主要几张表:
sessions:会话元数据(ID、来源、标题等)messages:完整消息历史state_meta:键值元数据FTS5 索引表:用于全文搜索
5. 上下文压缩(自动)
长对话占用 token 会越来越接近模型限制,Hermes 会自动压缩历史,保留关键信息。可以在 ~/.hermes/config.yaml 里调:
compression:
enabled: true # 开关
threshold: 0.50 # 用到上下文窗口 50% 时触发压缩
target_ratio: 0.20 # 保留预算
protect_last_n: 20 # 最近 20 条不压缩二、会话搜索 session_search:回忆历史
这是 v0.15 重点优化的功能:去掉了 LLM 依赖,速度提升 4500 倍,零费用。
解决的问题:你之前和 Hermes 聊过的内容,它会自动去历史会话里搜,而不是让你重复讲一遍。
Agent 内部通常这样调用:
# 先按关键词找到相关会话
session_search(query="Docker deployment", limit=3)
# 再围绕命中的位置前后翻看
session_search(session_id="...", around_message_id="msg_789", window=5)支持的搜索语法(FTS5):
docker deployment # 多关键词默认 AND
"exact phrase" # 精确短语
docker OR kubernetes # 布尔 OR
python NOT java # 排除
deploy* # 前缀匹配三、工具集(Toolsets):Agent 的手和脚
工具是 Hermes 调用外部能力的基本单元——搜网页、执行命令、读写文件、控制浏览器等。按功能分组为「工具集」,可以按需启用/禁用。
1. 管理工具集
hermes tools # 交互式管理
hermes tools list # 列出所有工具集
hermes tools enable <name> # 启用
hermes tools disable <name> # 禁用会话内用 /tools 查看,/verbose 控制工具执行显示的详细程度。
2. 工具分类一览
3. 终端后端(Linux 重点)
终端工具支持多种后端,决定 Agent 的命令在哪里执行:
切换后端:
hermes config set terminal.backend docker如果要用 docker 后端,记得配置国内镜像并拉取合适的镜像:
# 拉取一个带 python + node 的镜像
docker pull nikolaik/python-nodejs:python3.11-nodejs20需要 sudo 权限时,终端会提示输入密码,也可在
.env里设SUDO_PASSWORD。
4. 并行执行与智能审批
并行:Agent 同一轮里发出的互不依赖的工具调用会自动并行执行(最多 8 个 worker),省时间
智能审批:Hermes 会学习哪些命令安全,反复批准同类命令后逐渐减少提示
四、MCP 协议:接入外部工具服务器
MCP(Model Context Protocol)让你能把外部的工具服务器接入 Hermes,扩展它的能力。
1. 两种传输方式
2. 配置示例
编辑 ~/.hermes/config.yaml:
mcp_servers:
# stdio 方式:本机文件系统
project-fs:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/my-project"]
# HTTP 方式:公司内部 API
company_api:
url: "https://mcp.internal.example.com/mcp"
headers:
Authorization: "Bearer ***"常用配置项:command、args、env(stdio)、url、headers、auth: oauth(HTTP 的 OAuth)、enabled、timeout。
还可以用 tools.include / tools.exclude 控制注册哪些工具:
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [list_issues, create_issue, search_code] # 白名单3. 管理和重载
hermes mcp list # 列出已配置服务器
hermes mcp test project-fs # 测试连接
hermes mcp configure project-fs # 管理工具启用状态
hermes mcp remove project-fs # 移除
hermes mcp catalog # 浏览 Nous 精选 MCP 目录(v0.15+)修改配置后在会话内 /reload-mcp 重载。
4. MCP Server Mode:反向暴露
Hermes 有个独特功能——把自己暴露给 MCP 兼容客户端(Claude Desktop、VS Code、Cursor)。在客户端的 mcpServers 配置里加:
{
"mcpServers": {
"hermes-agent": {
"command": "hermes",
"args": ["mcp", "serve"]
}
}
}这样就能在 Claude Desktop 等工具里调用 Hermes 的能力。
评论区