Hermes Agent 工具与工具集
Hermes 工具与工具集

工具是扩展 Agent 能力的函数。它们被组织成逻辑上的工具集,可以按平台启用或禁用
Hermes 内置了广泛的工具注册表,涵盖网络搜索、浏览器自动化、终端执行、文件编辑、记忆、委托、RL 训练、消息传递、Home Assistant 等
使用工具集
# 使用特定的toolsets
hermes chat --toolsets "web,terminal"
# 查看所有可用的 tools
hermes tools
# 每个平台配置 tools(交互式)
hermes tools
常见的工具集包括 web、terminal、file、browser、vision、image_gen、moa、skills、tts、todo、memory、session_search、cronjob、code_execution、delegation、clarify、homeassistant 和 rl
启用或关闭工具
/tools list
/tools disable browser
/tools enable rl
Hermes Agent Skills

技能是按需加载的知识文档,Agent 在需要时可将其载入。它们遵循 渐进披露 模式,最小化 token使用量
所有技能均位于 ~/.hermes/skills/ —— 主目录及数据源。在全新安装时,捆绑的技能会从代码仓库复制过来
查看 Skills
查看 Skills 列表 hermes skills list


Skills 目录结构
~/.hermes/skills/ # 单一事实来源
├── mlops/ # 类别目录
│ ├── axolotl/
│ │ ├── SKILL.md # 主要说明(必填)
│ │ ├── references/ # 附加文档
│ │ ├── templates/ # 输出格式
│ │ ├── scripts/ # 可从 skill 调用的帮助程序脚本
│ │ └── assets/ # 补充文件
│ └── vllm/
│ └── SKILL.md
├── devops/
│ └── deploy-k8s/ # Agent-创建skill
│ ├── SKILL.md
│ └── references/
├── .hub/ # Skills 集线器状态
│ ├── lock.json
│ ├── quarantine/
│ └── audit.log
└── .bundled_manifest # 跟踪种子捆绑 skills
搜索与安装Skills
从在线注册表、skills.sh、知名Skill端点以及官方可选技能中浏览、搜索、安装和管理技能
hermes skills browse # 浏览所有hub skills(官方优先)
hermes skills browse --source official # 仅浏览官方可选skills
hermes skills search kubernetes # 搜索所有来源
hermes skills inspect openai/skills/k8s # 安装前预览
hermes skills install openai/skills/k8s # 使用安全扫描安装
Skill格式
---
name: my-skill
description: 此技能功能的简要描述
version: 1.0.0
platforms: [macos, linux] # 可选——限制在特定的操作系统平台
metadata:
hermes:
tags: [python, automation]
category: devops
fallback_for_toolsets: [web] # 可选——条件激活
requires_toolsets: [terminal] # 可选——条件激活
config: # 可选——config.yaml 设置
- key: my.setting
description: "此项控制什么"
default: "value"
prompt: "设置提示"
---
# 技能标题
## 何时使用
此技能的触发条件。
## 步骤
1. 第一步
2. 第二步
## 常见问题
- 已知的失败模式及修复方法
## 验证
如何确认它已生效。
编写Skill(天气预报)
---
name: taiyuan-weather
description: 获取太原市实时天气预报和未来天气趋势
version: 1.0.0
metadata:
hermes:
tags: [weather, forecast, utility]
category: creative
fallback_for_toolsets: [web]
requires_toolsets: [terminal]
config:
- key: weather.city
description: "目标城市名称,用于天气查询"
default: "Taiyuan"
prompt: "请输入城市名称(默认太原,英文或拼音)"
- key: weather.units
description: "温度单位,celsius 或 fahrenheit"
default: "celsius"
prompt: "选择温度单位 (celsius/fahrenheit)"
---
# 太原天气预报 Skill
## 何时使用
- 用户询问“今天天气怎么样”、“未来几天会下雨吗”、“周末气温多少度”等与天气相关的问题。
- 需要为出行、活动安排等决策提供太原地区的气象信息。
- 需要获取实时气温、湿度、风速、降水概率或未来3-7天趋势。
## 操作步骤
1. **读取配置**
从 `config` 中获取目标城市(默认为 Taiyuan)和温度单位(celsius 或 fahrenheit)。
2. **调用天气 API**
使用 `curl` 或 `wget` 请求免费公开天气服务 `wttr.in`(示例):
```bash
curl -s "https://wttr.in/${city}?format=%C+%t+%w+%h&u" # 如需华氏度添加 &u
Windows与WSL交互
打开任意文件夹(如“此电脑”)
在地址栏输入
\\wsl$并回车,会看到已安装的 WSL 发行版(如Ubuntu)进入对应的发行版,找到目标目录(例如
home/你的用户名/)将需要复制的 Windows 文件夹直接拖拽或复制粘贴进去即可


Hermes Agent 持久记忆

Hermes Agent 拥有受限且经过精选的记忆,这些记忆可以跨会话持久存在。这使得它能够记住你的偏好、你的项目、你的环境以及它所学到的知识
查看历史会话 hermes sessions list
工作原理
Agent 的记忆由两个文件组成:
这两个文件都存储在 ~/.hermes/memories/ 中,并在会话开始时作为冻结快照注入到系统提示词(system prompt)中。Agent 通过 memory 工具管理自己的记忆 —— 它可以添加、替换或删除条目
温馨提示
字符限制是为了保持记忆的聚焦。当记忆存满时,Agent 会合并或替换条目,以为新信息腾出空间
记忆如何出现在系统提示词中
在每个会话开始时,记忆条目会从磁盘加载,并作为冻结块渲染到系统提示词中:
══════════════════════════════════════════════
MEMORY (your personal notes) [67% — 1,474/2,200 chars]
══════════════════════════════════════════════
User's project is a Rust web service at ~/code/myapi using Axum + SQLx
§
This machine runs Ubuntu 22.04, has Docker and Podman installed
§
User prefers concise responses, dislikes verbose explanations
该格式包括:
显示存储库类型的页眉(MEMORY 或 USER PROFILE)
使用百分比和字符计数,以便 Agent 了解容量情况
使用
§(分节符)分隔的单个条目条目可以是多行的
Memory 工具操作
Agent 使用 memory 工具执行以下操作:
add — 添加新的记忆条目
replace — 用更新的内容替换现有条目(通过
old_text进行子字符串匹配)remove — 删除不再相关的条目(通过
old_text进行子字符串匹配)
没有 read 操作 —— 记忆内容在会话开始时会自动注入到系统提示词中。Agent 将其记忆视为对话上下文的一部分
两个文件的解释
memory — Agent 的个人笔记
用于记录 Agent 需要记住的关于环境、工作流和经验教训的信息:
环境事实(操作系统、工具、项目结构)
项目约定和配置
发现的工具特性和变通方法
已完成任务的日志条目
行之有效的技能和技术
user — 用户画像
用于记录关于用户的身份、偏好和沟通风格的信息:
姓名、角色、时区
沟通偏好(简洁 vs 详细,格式偏好)
厌恶的事项和需要避免的事项
工作流习惯
技术水平
哪些该存,哪些不该存
存这些(主动存储)
Agent 会自动保存 —— 你不需要特意要求。当它学到以下内容时会进行保存:
用户偏好: “我更喜欢 TypeScript 而不是 JavaScript” → 保存到
user环境事实: “这台服务器运行 Debian 12 和 PostgreSQL 16” → 保存到
memory修正: “不要对 Docker 命令使用
sudo,用户已在 docker 组中” → 保存到memory约定: “项目使用 tabs 缩进,120 字符行宽,Google 风格的 docstrings” → 保存到
memory已完成的工作: “2026-05-15 将数据库从 MySQL 迁移到了 PostgreSQL” → 保存到
memory明确的要求: “记住我的 API 密钥每月轮换一次” → 保存到
memory
跳过这些
琐碎/显而易见的信息: “用户询问了关于 Python 的问题” —— 太模糊,没用
容易重新发现的事实: “Python 3.12 支持 f-string 嵌套” —— 可以通过网页搜索找到
原始数据转储: 大型代码块、日志文件、数据表 —— 对记忆来说太大了
会话特定的临时信息: 临时文件路径、一次性的调试上下文
容量管理
记忆有严格的字符限制,以保持系统提示词的大小受控:
会话搜索
除了 MEMORY.md 和 USER.md 之外,Agent 还可以使用 session_search 工具搜索其过去的对话:
所有 CLI 和消息会话都存储在 SQLite (
~/.hermes/state.db) 中,支持 FTS5 全文搜索搜索查询会返回相关的历史对话,并使用 Gemini Flash 进行总结
Agent 可以找到几周前讨论过的内容,即使这些内容不在其活跃记忆中
hermes sessions list # 浏览历史会话