7
0
0

Hermes Agent 工具与工具集

2026-08-11
2026-08-11
文章摘要
|

Hermes 工具与工具集

image-20260429002023652

工具是扩展 Agent 能力的函数。它们被组织成逻辑上的工具集,可以按平台启用或禁用

Hermes 内置了广泛的工具注册表,涵盖网络搜索、浏览器自动化、终端执行、文件编辑、记忆、委托、RL 训练、消息传递、Home Assistant 等

类别

示例

描述

网络

web_search, web_extract

搜索网络并提取页面内容。

终端与文件

terminal, process, read_file, patch

执行命令并操作文件。

浏览器

browser_navigate, browser_snapshot, browser_vision

支持文本与视觉的交互式浏览器自动化。

媒体

vision_analyze, image_generate, text_to_speech

多模态分析与生成。

Agent 编排

todo, clarify, execute_code, delegate_task

规划、澄清、代码执行与子 Agent委托。

记忆与召回

memory, session_search

持久化记忆与会话搜索。

自动化与交付

cronjob, send_message

支持创建/列出/更新/暂停/恢复/运行/移除操作的定时任务,以及出站消息传递。

集成

ha_*, MCP服务器工具, rl_*

Home Assistant、MCP、强化学习训练及其他集成。

使用工具集

# 使用特定的toolsets
hermes chat --toolsets "web,terminal"

# 查看所有可用的 tools
hermes tools

# 每个平台配置 tools(交互式)
hermes tools

常见的工具集包括 webterminalfilebrowservisionimage_genmoaskillsttstodomemorysession_searchcronjobcode_executiondelegationclarifyhomeassistantrl

启用或关闭工具

/tools list
/tools disable browser
/tools enable rl

Hermes Agent Skills

image-20260429011444285

技能是按需加载的知识文档,Agent 在需要时可将其载入。它们遵循 渐进披露 模式,最小化 token使用量

所有技能均位于 ~/.hermes/skills/ —— 主目录及数据源。在全新安装时,捆绑的技能会从代码仓库复制过来

查看 Skills

查看 Skills 列表 hermes skills list

image-20260429011809377
image-20260429011902171

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交互

  1. 打开任意文件夹(如“此电脑”)

  2. 在地址栏输入 \\wsl$ 并回车,会看到已安装的 WSL 发行版(如 Ubuntu

  3. 进入对应的发行版,找到目标目录(例如 home/你的用户名/

  4. 将需要复制的 Windows 文件夹直接拖拽复制粘贴进去即可

image-20260429012643790
image-20260429012704323

Hermes Agent 持久记忆

image-20260429020752152

Hermes Agent 拥有受限且经过精选的记忆,这些记忆可以跨会话持久存在。这使得它能够记住你的偏好、你的项目、你的环境以及它所学到的知识

查看历史会话 hermes sessions list

工作原理

Agent 的记忆由两个文件组成:

文件

用途

字符限制

MEMORY.md

Agent 的个人笔记 —— 环境事实、约定、学到的知识

2,200 字符 (约 800 tokens)

USER.md

用户画像 —— 你的偏好、沟通风格、期望

1,375 字符 (约 500 tokens)

这两个文件都存储在 ~/.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 嵌套” —— 可以通过网页搜索找到

  • 原始数据转储: 大型代码块、日志文件、数据表 —— 对记忆来说太大了

  • 会话特定的临时信息: 临时文件路径、一次性的调试上下文

  • 已存在于上下文文件中的信息: SOUL.mdAGENTS.md 中的内容

容量管理

记忆有严格的字符限制,以保持系统提示词的大小受控:

存储库

限制

典型条目数

memory

2,200 字符

8-15 条

user

1,375 字符

5-10 条

会话搜索

除了 MEMORY.mdUSER.md 之外,Agent 还可以使用 session_search 工具搜索其过去的对话:

  • 所有 CLI 和消息会话都存储在 SQLite (~/.hermes/state.db) 中,支持 FTS5 全文搜索

  • 搜索查询会返回相关的历史对话,并使用 Gemini Flash 进行总结

  • Agent 可以找到几周前讨论过的内容,即使这些内容不在其活跃记忆中

hermes sessions list    # 浏览历史会话

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

Hermes Agent 工具与工具集
/archives/019fef69-817c-7555-83b8-7b05aca3add4
作者
北祢
发布于
2026-08-11
许可协议
CC BY-NC-SA 4.0