iwenwikiiwenwiki
首页
  • OpenClaw
  • Hermes Agent
  • Claude Code
  • Codex
  • 指尖联盟
  • 百战商城
  • uniapp
  • 网易云音乐
  • 安心食疗
毕设与课设
  • 仓颉
  • 前端
视频教程
首页
  • OpenClaw
  • Hermes Agent
  • Claude Code
  • Codex
  • 指尖联盟
  • 百战商城
  • uniapp
  • 网易云音乐
  • 安心食疗
毕设与课设
  • 仓颉
  • 前端
视频教程

视频学习地址

Hermes Agent简介

image-20260428020028724

Hermes Agent 是由 Nous Research 开源的自主 AI Agent 框架,于 2026 年 2 月底发布,上线不到两个月 GitHub 星标就 12+ 万。其功能类似于之前的 OpenClaw

它凭什么这么火?一句话:别的 AI 工具是"金鱼记忆",Hermes Agent 是"会进化的伙伴"。

核心定位

“An agent that grows with you”(与你共同成长的 Agent),最大的特点可以自进化。

部署在你的服务器上,连接你的消息账号,它就成为你的持久个人智能体——学习你的项目、自动构建技能、随时随地触达你。不是聊天机器人,不是代码补全工具,而是一个住在你机器上、每天都在变聪明的智能体

Github 地址:https://github.com/nousresearch/hermes-agent

官网主页:https://hermes-agent.nousresearch.com/

核心创新

内置自学习循环

Hermes Agent 不是简单地调用 LLM,而是通过内置的学习循环不断优化自身:

  • 自动从交互中生成 Skill(技能)
  • 在使用中持续迭代技能
  • 主动持久化知识和用户偏好
  • 跨会话构建对用户的深度理解

前置准备:安装前置软件

image-20260428020028724

先决条件

唯一的前提条件是 Git。安装程序会自动处理其他所有事项

您无需手动安装 Python、Node.js、ripgrep 或 ffmpeg。安装程序会自动检测缺失的组件并为您安装。只需确保这些组件git可用即可

  • uv(快速 Python 包管理器)
  • Python 3.11(通过 uv 安装,无需 sudo)
  • Node.js v22(用于浏览器自动化和 WhatsApp 桥接)
  • ripgrep(快速文件搜索)
  • ffmpeg(用于 TTS 的音频格式转换)

安装Git

下载地址:https://git-scm.com/?hl=zh-cn

安装WSL2

原生 Windows 支持仍处于实验阶段,请安装 WSL2 后在其中运行 Hermes Agent

在管理员模式下打开 PowerShell,输入 wsl --install 命令,然后重新启动计算机

wsl --install

温馨提示

这里官网说只需要重启一次就行了,但是事实上,可以能需要2-3次。

特别提示,是重启,不是关机再开机

正在安装 Windows 可选组件: VirtualMachinePlatform

部署映像服务和管理工具
版本: 10.0.26100.5074

映像版本: 10.0.26200.7840

启用一个或多个功能
[==========================100.0%==========================]
操作成功完成。
请求的操作成功。直到重新启动系统前更改将不会生效。

安装 Ubuntu 系统

wsl --list --verbose    # 列出已安装的发行版及其WSL版本
wsl --install -d Ubuntu-24.04

Hermes Agent安装与部署

image-20260428020028724

无需任何前置依赖,支持 Linux、macOS 和 WSL2,一键自动安装所有组件

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

特别声明

  • 在安装的时候,无需翻墙,非要翻墙,请你自重(如果实在下载不动,那你翻吧)
  • 程序员注意!请将pip镜像和npm镜像还原(别问,问就是坑,大坑,天坑)

安装流程

等待自动安装依赖,这部分安装时间有点长,保持网络畅通,耐心等待...

image-20260428021338671

安装依赖完成,输入wsl的密码即可进入下一步

image-20260428022211414

选择模型,这里以及后续,全部跟着推荐走也是可以的

image-20260428022228626

选择你熟悉的,或者是你有额度的模型即可,这里我们选择 DeepSeek

提示:如果选择错了怎么办? 执行 hermes model 重新选择(后续课程有演示~)

image-20260428022242632

接入应用,这里可以先跳过,后续我们单独接入

image-20260428022314800

启动 hermes 应用

image-20260428022327487

到这里就成功了!

image-20260428022350396

Hermes Agent接入应用(微信/QQ/飞书)

image-20260428020028724

在之前的操作中,我们为了快速启动 Hermes Agent ,跳过了应用的接入,这里我们演示如何接入应用,包含 微信、QQ和飞书

执行命令: hermes gateway setup

接入QQ

image-20260428023116396

扫码接入就行,很简单哦~

image-20260428023137989

如何授权信息?

  • 使用DM配对审批(推荐)
  • 允许所有直接消息
  • 仅允许已列明的用户 OpenIDs

image-20260428023231331

后续全部Yes即可,然后重启网关

image-20260428024256112

消息可以正常接收

image-20260428023530517

接入微信

如何授权信息?

  • 使用DM配对审批(推荐)
  • 允许所有直接消息
  • 仅允许已列明的用户 OpenIDs
  • 禁用私信

image-20260428023618968

应该如何处理群聊?

  • 禁用群聊(推荐)
  • 允许所有群聊
  • 只允许列出的群聊ID

image-20260428023708410

微信和QQ不同的是,需要进行设备配对

在wsl下执行 hermes pairing approve weixin ZV5J582F 完成配对即可

image-20260428023823019

接入飞书

扫码接入就行,很简单哦~

image-20260428024015052

如何授权信息?

  • 使用DM配对审批(推荐)
  • 允许所有直接消息
  • 仅允许已列明的用户 OpenIDs

image-20260428024115776

应该如何处理群聊?

  • 仅在小组中提到@时才响应(推荐)
  • 禁用群聊

image-20260428024156329

与接入微信一样,需要配对哦~

image-20260428024421087

Hermes Agent第一个应用案例

image-20260428020028724

提示词

帮我上网卡看最近比较火的Agent有哪些?然后总结成文档,注意文档中要附上和这个技术相关的重要连接,例如:官网网站,重要博客,GitHub等。接着,帮我生成一个静态页面,专门用来展示这个文档。网页要有科技感,完成后,告诉我资源存放再哪里,帮我再本地启动这个前端页面。

生成流程

帝尤:帮我上网卡看最近比较火的Agent有哪些?然后总结成文档,注意文档中要附上和这个技术相关的重要连接,例如:官网防战,重要博客,GitHub等。接着,帮我生成一个静态页面,专门用来展示这个文档。网页要有科技感,完成后,告诉我资源存放再哪里,帮我再本地启动这个前端页面。
尚学堂&百战程序员: 好的!让我一步步来。先上网搜索最近热门的 AI Agent,然后整理成文档,再生成一个科技感十足的静态页面。
尚学堂&百战程序员:⚠️ Dangerous command requires approval:
curl -s --connect-timeout 10 "https://hn.algolia.com/api/v1/search?query=coding+AI+agent+Devin+Cursor+Claude+Code&tags=story&hitsPerPage=20" 2>&1 | python3 -c "
import json,sys
data = json.load(sys.st...
Reason: Security scan — [HIGH] Pipe to interpreter: curl | python3: Command pipes output from 'curl' directly to interpreter 'python3'. Downloaded content will be executed without inspection.
  Safer: tirith run https://hn.algolia.com/api/v1/search?query=coding+AI+agent+Devin+Cursor+Claude+Code&tags=story&hitsPerPage=20  — or: vet https://hn.algolia.com/api/v1/search?query=coding+AI+agent+Devin+Cursor+Claude+Code&tags=story&hitsPerPage=20  (https://getvet.sh); script execution via -e/-c flag
Reply /approve to execute, /approve session to approve this pattern for the session, /approve always to approve permanently, or /deny to cancel.
尚学堂&百战程序员:⏳ Still working... (3 min elapsed — iteration 2/90, running: delegate_task)
尚学堂&百战程序员:⏳ Still working... (6 min elapsed — iteration 2/90, running: delegate_task)
尚学堂&百战程序员:⚠️ Dangerous command requires approval:
curl -s --connect-timeout 10 "https://hn.algolia.com/api/v1/search?query=browser+AI+agent+2025+2026&tags=story&hitsPerPage=20" 2>&1 | python3 -c "
import json,sys
data = json.load(sys.stdin)
for h in ...
Reason: Security scan — [HIGH] Pipe to interpreter: curl | python3: Command pipes output from 'curl' directly to interpreter 'python3'. Downloaded content will be executed without inspection.
  Safer: tirith run https://hn.algolia.com/api/v1/search?query=browser+AI+agent+2025+2026&tags=story&hitsPerPage=20  — or: vet https://hn.algolia.com/api/v1/search?query=browser+AI+agent+2025+2026&tags=story&hitsPerPage=20  (https://getvet.sh); script execution via -e/-c flag
Reply /approve to execute, /approve session to approve this pattern for the session, /approve always to approve permanently, or /deny to cancel.
尚学堂&百战程序员:⏳ Still working... (9 min elapsed — iteration 2/90, running: delegate_task)
尚学堂&百战程序员:子任务超时了,我直接来搜索吧。
尚学堂&百战程序员:Google 被墙了,我用浏览器直接搜索。
尚学堂&百战程序员:⏳ Still working... (12 min elapsed — iteration 5/90, running: browser_scroll)
尚学堂&百战程序员:搜索结果不太对,让我换到国际版。
尚学堂&百战程序员:找到相关文章了!让我深入查看几篇最全面的来收集信息。
尚学堂&百战程序员: 我已经拿到了大量框架信息。让我再搜索一下最近特别火的几个突破性 Agent 项目。
尚学堂&百战程序员:信息足够了!现在让我汇总整理文档并生成网页。
尚学堂&百战程序员:⏳ Still working... (15 min elapsed — iteration 14/90, receiving stream response)
尚学堂&百战程序员:先写 Markdown 文档:
尚学堂&百战程序员:文档写好了!现在来生成科技感静态页面。
尚学堂&百战程序员:⏳ Still working... (18 min elapsed — iteration 16/90, receiving stream response)
尚学堂&百战程序员:⏳ Still working... (21 min elapsed — iteration 16/90, receiving stream response)
尚学堂&百战程序员:页面创建好了!现在启动本地服务器。
尚学堂&百战程序员:全部完成!✅ 下面是总结:
📦 资源存放位置
所有文件在 ~/ai-agents-showcase/ 目录下:
文件 大小 说明
AI-Agents-2025-2026.md 14KB 完整 Markdown 文档
index.html 43KB 科技感静态展示页面
🌐 访问方式
本地服务器已启动,访问:
http://localhost:8080
📋 文档涵盖内容
一共收录了 20+ 个热门 AI Agent 项目,分 6 大类:
分类 收录项目
🧩 多智能体框架 LangGraph · CrewAI · AutoGen · OpenAI Agents SDK · MetaGPT · Swarm · Qwen-Agent · Camel
💻 编程 Agent Claude Code · Manus AI · Devin · Cursor · OpenClaw
🌐 浏览器 Agent Browser Use · Playwright MCP · Chrome DevTools MCP
🔌 协议标准 MCP (Model Context Protocol) · Google A2A
🧩 低代码平台 Dify · Coze · n8n
🏢 企业级 LangSmith · BeeAI (IBM)
每个项目都附带了 官网、GitHub、重要博客/论文 链接。网页采用暗色科技风,有动态粒子背景、霓虹光效、卡片悬停动画和完整对比表格。
浏览器打开 http://localhost:8080 就能看到效果了!🚀
帝尤:没找到文件所在位置,能清晰一点么
尚学堂&百战程序员:找到了!你的 Windows 用户名是 iwenw。我把文件复制到你的 Windows 桌面上,这样你就能直接找到了:
尚学堂&百战程序员:搞定!🎉 现在看这里:
📍 文件位置(Windows 桌面)
打开你的 Windows 桌面,会看到一个 ai-agents-showcase 文件夹:C:\Users\iwenw\Desktop\ai-agents-showcase\里面有:
文件说明📄 AI-Agents-2025-2026.mdMarkdown 文档🌐 index.html科技感网页
🌐 打开网页
直接双击 index.html 就能在浏览器里看到了!
或者访问 http://localhost:8080(服务器还在 WSL 里跑着)。
现在桌面能找到文件夹了吗?

Hermes Agent 个性化定制

image-20260429013835370

Hermes Agent 的个性是完全可定制的。SOUL.md 是主要身份——它是系统提示词的第一部分,定义了 Agent 是谁

SOUL.md —— 一个持久的角色文件,位于 HERMES_HOME 目录中,作为 Agent 的身份(在系统提示词中占据位置 #1)

SOUL.md 现在如何工作

Hermes 现在会自动在以下位置生成一个默认的 SOUL.md

~/.hermes/SOUL.md

重要行为

  • SOUL.md 是 Agent 的主要身份。 它占据系统提示词中的位置 #1,取代了硬编码的默认身份。
  • 如果 SOUL.md 尚不存在,Hermes 会自动创建一个初始版本
  • 现有的用户 SOUL.md 文件永远不会被覆盖
  • Hermes 只从 HERMES_HOME 加载 SOUL.md
  • Hermes 不会在当前工作目录中寻找 SOUL.md
  • 如果 SOUL.md 存在但为空,或无法加载,Hermes 将回退到内置的默认身份
  • 如果 SOUL.md 有内容,该内容在安全扫描和截断后会逐字注入
  • SOUL.md 不会在上下文文件部分重复出现——它只出现一次,作为身份标识

为什么这样设计

这保持了性格的可预测性。

这使得教导用户更容易:“编辑 ~/.hermes/SOUL.md 来改变 Hermes 的默认个性。”

SOUL.md 里应该放什么?

用它来定义持久的语气和个性指导,例如:

  • 语调
  • 沟通风格
  • 直接程度
  • 默认交互风格
  • 风格上要避免什么
  • Hermes 应如何处理不确定性、分歧或模糊性

少用于:

  • 一次性的项目指令
  • 文件路径
  • 仓库规范
  • 临时工作流细节

好的 SOUL.md 内容

一个好的 SOUL 文件是:

  • 在不同上下文中保持稳定
  • 足够宽泛,适用于许多对话
  • 足够具体,能实质性地塑造声音
  • 专注于沟通和身份,而不是特定任务的指令

示例

# 个性

你是一位务实的资深工程师,名字叫:红豆,品味很高。
你优先考虑真实性、清晰度和实用性,而非礼貌的客套。

## 风格
- 直接但不冷漠
- 注重实质而非填充内容
- 当某个想法不好时,要提出反对
- 坦率承认不确定性
- 保持解释简洁,除非深度有用

## 要避免什么
- 阿谀奉承
- 夸张的语言
- 如果用户的框架是错误的,不要重复它
- 过度解释显而易见的事情

## 技术立场
- 偏好简单系统而非巧妙系统
- 关心操作现实,而非理想化的架构
- 将边缘情况视为设计的一部分,而非收尾工作

这里我们可以使用 vim 编辑文件,复制进来之后,保存退出 :wq

image-20260429014735804

image-20260429014725354

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

常见的工具集包括 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

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.mdAgent 的个人笔记 —— 环境事实、约定、学到的知识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.md 和 AGENTS.md 中的内容

容量管理

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

存储库限制典型条目数
memory2,200 字符8-15 条
user1,375 字符5-10 条

会话搜索

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

  • 所有 CLI 和消息会话都存储在 SQLite (~/.hermes/state.db) 中,支持 FTS5 全文搜索
  • 搜索查询会返回相关的历史对话,并使用 Gemini Flash 进行总结
  • Agent 可以找到几周前讨论过的内容,即使这些内容不在其活跃记忆中
hermes sessions list    # 浏览历史会话

Hermes Agent 皮肤与主题

image-20260429174927096

皮肤控制着 Hermes CLI 的 视觉呈现:横幅颜色、旋转器表情和动词、响应框标签、品牌文本以及工具活动前缀

对话风格和视觉风格是两个独立的概念:

  • 个性 改变 Agent 的语气措辞
  • 皮肤 改变 CLI 的外观

更换皮肤

/skin                # 显示当前皮肤并列出可用皮肤
/skin ares           # 切换到内置皮肤
/skin mytheme        # 切换到自定义皮肤(来自 ~/.hermes/skins/mytheme.yaml)

或者在 ~/.hermes/config.yaml 中设置默认皮肤:

display:
  skin: default

内置皮肤

皮肤描述Agent 品牌视觉特征
defaultHermes 经典款 —— 金色与可爱风格Hermes Agent温暖的金色边框,玉米丝色文本,旋转器中可爱的表情。熟悉的双蛇杖横幅。简洁而友好。
ares战神主题 —— 深红与青铜色Ares Agent深红边框配青铜色点缀。侵略性的旋转器动词("锻造","行军","锤炼钢铁")。自定义剑盾 ASCII 艺术横幅。
mono单色 —— 干净的灰度Hermes Agent全灰 —— 无彩色。边框为 #555555,文本为 #c9d1d9。适用于简约终端设置或屏幕录制。
slate冷蓝色 —— 面向开发者Hermes Agent皇家蓝色边框(#4169e1),柔和的蓝色文本。冷静而专业。无自定义旋转器 —— 使用默认表情。
daylight明亮终端主题,深色文本与冷蓝色点缀Hermes Agent专为白色或明亮终端设计。深石板色文本配蓝色边框,浅色状态表面,以及一个在明亮终端配置下仍保持可读性的浅色补全菜单。
warm-lightmode温暖棕色/金色文本,适用于浅色终端背景Hermes Agent为浅色终端设计的温暖羊皮纸色调。深棕色文本配鞍褐色点缀,奶油色的状态表面。这是相较于冷色调 daylight 主题的一种更接地气的替代选择。
poseidon海神主题 —— 深蓝与海沫色Poseidon Agent深蓝到海沫色的渐变。海洋主题的旋转器("绘制洋流","探测深度")。三叉戟 ASCII 艺术横幅。
sisyphus西西弗斯主题 —— 朴素的灰度与坚持感Sisyphus Agent浅灰色搭配鲜明对比。巨石主题的旋转器("推上山坡","重置巨石","忍受循环")。巨石与山坡 ASCII 艺术横幅。
charizard火山主题 —— 烧焦橙色与余烬色Charizard Agent温暖的烧焦橙色到余烬色的渐变。火焰主题的旋转器("潜入气流","测量燃烧")。龙形轮廓 ASCII 艺术横幅。

自定义皮肤

在 ~/.hermes/skins/ 下创建 YAML 文件。用户皮肤从内置的 default 皮肤继承缺失的值,因此只需指定要更改的键

完整的自定义皮肤 YAML 模板

# ~/.hermes/skins/mytheme.yaml
# 完整的皮肤模板 — 显示所有键。删除任何不需要的;
# 缺失的值会自动从 'default' 皮肤继承。

name: iwentheme
description: 我的自定义主题

colors:
  banner_border: "#CD7F32"
  banner_title: "#FFD700"
  banner_accent: "#FFBF00"
  banner_dim: "#B8860B"
  banner_text: "#FFF8DC"
  ui_accent: "#FFBF00"
  ui_label: "#4dd0e1"
  ui_ok: "#4caf50"
  ui_error: "#ef5350"
  ui_warn: "#ffa726"
  prompt: "#FFF8DC"
  input_rule: "#CD7F32"
  response_border: "#FFD700"
  session_label: "#DAA520"
  session_border: "#8B8682"
  status_bar_bg: "#1a1a2e"
  voice_status_bg: "#1a1a2e"
  completion_menu_bg: "#1a1a2e"
  completion_menu_current_bg: "#333355"
  completion_menu_meta_bg: "#1a1a2e"
  completion_menu_meta_current_bg: "#333355"

spinner:
  waiting_faces:
    - "(⚔)"
    - "(⛨)"
    - "(▲)"
  thinking_faces:
    - "(⚔)"
    - "(⌁)"
    - "(<>)"
  thinking_verbs:
    - "处理"
    - "分析"
    - "计算"
    - "评估"
  wings:
    - ["⟪⚡", "⚡⟫"]
    - ["⟪●", "●⟫"]

branding:
  agent_name: "我的 Agent"
  welcome: "欢迎使用我的 Agent!输入您的消息或使用 /help 查看命令。"
  goodbye: "再见! ⚡"
  response_label: " ⚡ 我的 Agent "
  prompt_symbol: "⚡ ❯ "
  help_header: "(⚡) 可用命令"

tool_prefix: "┊"

# 按工具的表情符号覆盖(可选)
tool_emojis:
  terminal: "⚔"
  web_search: "🔮"
  read_file: "📄"

# 自定义 ASCII 艺术横幅(可选,支持 Rich 格式)
# banner_logo: |
#   [bold #FFD700] MY AGENT [/]
# banner_hero: |
#   [#FFD700]  Custom art here  [/]

最小化自定义皮肤示例

由于所有内容都继承自 default,一个最小化的皮肤只需要更改有差异的部分:

name: cyberpunk
description: 霓虹终端主题

colors:
  banner_border: "#FF00FF"
  banner_title: "#00FFFF"
  banner_accent: "#FF1493"

spinner:
  thinking_verbs: ["接入", "解密", "上传"]
  wings:
    - ["⟨⚡", "⚡⟩"]

branding:
  agent_name: "赛博 Agent"
  response_label: " ⚡ 赛博 "

tool_prefix: "▏"

Hermes Agent MCP 扩展 AI 工具能力

image-20260429181820390

MCP(Model Context Protocol)是由 Anthropic 提出的开放协议,定义了 AI Agent 与外部工具之间的标准通信接口

简单说:MCP 让 AI 可以"使用工具",就像人类使用各种软件一样

Hermes Agent 原生支持 MCP,通过接入 MCP 服务器可以让 Agent 获得几乎无限的工具扩展能力——从数据库操作、API 调用到浏览器自动化,一切皆可接入。

如果你曾希望 Hermes 使用某个已经存在于别处的工具,MCP 通常是最简洁的实现方式。

Hermes Agent 内置了 40+ 工具,但通过 MCP 可以扩展到几乎无限

Hermes Agent 内置工具:
├── 文件操作(读/写/搜索)
├── 终端命令执行
├── Web 搜索
├── 代码分析
└── ... 共 40+ 种

MCP 扩展工具(无限):
├── 数据库操作(MySQL/PostgreSQL/MongoDB...)
├── API 集成(GitHub/Jira/Notion...)
├── 浏览器自动化(Playwright)
├── 邮件收发
├── 日历管理
├── 文件格式转换
└── ... 任何你能想到的

两种MCP服务器

Stdio服务器(本地)

本地运行的子进程,通过stdin/stdout通信。低延迟,适合访问本地资源

mcp_servers:
  github:
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"

适用场景:

  • 服务器安装在本地
  • 需要低延迟访问本地资源
  • MCP服务器文档使用command/args/env格式

HTTP服务器(远程)

连接到远程端点,适合组织内部API或托管服务

mcp_servers:
  company_api:
    url: "https://mcp.internal.example.com"
    headers:
      Authorization: "Bearer ***"

适用场景:

  • MCP服务器托管在别处
  • 组织内部暴露了MCP端点
  • 不想让Hermes在本地启动子进程

配置 MCP 服务器

步骤 1:编辑配置文件

# ~/.hermes/config.yaml
mcp_servers:
  github:
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "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"

步骤 2:获取Github Token

  1. 登录到您的GitHub帐户,点击右上角的头像,然后选择 "Settings"(设置)
  2. 在左侧导航栏 中,选择 "Developer settings"(开发者设置)
  3. 在 "Developer settings" 页面上,选择 "Personal access tokens"(个人访问令牌)
  4. 在 "Personal access tokens" 页面上,点击 "Generate new token"(生成新令牌)按钮
  5. 提供一个描述以标识该访问令牌的用途。(可以全部勾选)
  6. 完成设置后,点击页面底部的 "Generate token"(生成令牌)按钮

步骤 3:验证

hermes tools list  # 查看所有可用工具,包括 MCP 提供的

常用 MCP 服务器推荐

MCP 服务器功能安装命令
server-githubGitHub 仓库操作npx @modelcontextprotocol/server-github
server-postgresPostgreSQL 查询npx @modelcontextprotocol/server-postgres
server-sqliteSQLite 操作npx @modelcontextprotocol/server-sqlite
server-filesystem文件系统操作npx @modelcontextprotocol/server-filesystem
server-brave-searchBrave 搜索npx @modelcontextprotocol/server-brave-search
playwright-mcp浏览器自动化npx @playwright/mcp@latest

实际应用示例

示例:Agent + GitHub MCP

你:帮我检查一下 hermes-agent 仓库最近的 Issue,有没有关于飞书的 Bug

Hermes Agent 定时任务 (Cron)

image-20260429232159476

使用自然语言或 cron 表达式安排任务自动运行。Hermes 通过一个统一的 cronjob 工具来管理 cron

调度格式

相对延迟(一次性)

30m     → 30 分钟后运行一次
2h      → 2 小时后运行一次
1d      → 1 天后运行一次

间隔(重复)

every 30m    → 每 30 分钟
every 2h     → 每 2 小时
every 1d     → 每天

Cron 表达式

# 分 时 日 月 周
0 9 * * *       → 每天上午 9:00
0 9 * * 1-5     → 工作日(周一至周五)上午 9:00
0 */6 * * *     → 每 6 小时
30 8 1 * *      → 每月 1 日上午 8:30
0 0 * * 0       → 每周日午夜

工作原理

Cron 执行由网关守护进程处理。 网关每 60 秒触发一次调度器,在独立的 Agent 会话中运行所有到期的任务

创建定时任务

在聊天中使用 /cron

blogwatcher

BlogWatcher 是用于监控博客和 RSS/Atom 订阅源更新的技能,该技能通过 CLI 工具实现订阅源的管理、更新扫描、文章标记等功能,帮助用户持续跟踪关注的博客内容,及时获取最新文章更新

/cron add 30m "提醒我检查构建"
/cron add "every 2h" "检查服务器状态"
/cron add 'every 1h' '看一次天气预报' --skill taiyuan-weather
/cron add "every 1h" "使用两个技能并合并结果" --skill blogwatcher --skill maps
# 列出所有定时任务
/cron list
# 暂停任务
/cron pause <job_id>
# 恢复任务
/cron resume <job_id>
# 删除任务
/cron remove <job_id>

从独立 CLI

hermes cron create "every 2h" "检查服务器状态"
hermes cron create 'every 1h' '看一次天气预报' --skill taiyuan-weather
hermes cron create "every 1h" "使用两个技能并合并结果" \
  --skill blogwatcher \
  --skill maps \
  --name "技能组合"
# 列出所有定时任务
hermes cron list
# 暂停任务
hermes cron pause <job_id>
# 恢复任务
hermes cron resume <job_id>
# 删除任务
hermes cron remove <job_id>

通过自然对话

像平常一样询问 Hermes,并且可以使用消息通道:每天上午9点提醒我喝水

Hermes 会在内部使用统一的 cronjob 工具

Hermes Agent Web 仪表板

image-20260430000917859

Web 仪表板是一个基于浏览器的用户界面,用于管理你的 Hermes Agent 安装。无需编辑 YAML 文件或运行 CLI 命令,你就可以通过简洁的 Web 界面来配置设置、管理 API 密钥和监控会话

启动仪表板

这将启动一个本地 Web 服务器,并在你的浏览器中打开 http://127.0.0.1:9119。仪表板完全在你的机器上运行——没有任何数据会离开本地主机。

hermes dashboard

选项

标志默认值描述
--port9119运行 Web 服务器的端口
--host127.0.0.1绑定地址
--no-open—不自动打开浏览器
# 自定义端口
hermes dashboard --port 8080

# 绑定到所有网络接口(在共享网络上使用需谨慎)
hermes dashboard --host 0.0.0.0

# 启动时不打开浏览器
hermes dashboard --no-open

Hermes Agent 最佳实践

image-20260429191450119

Hermes Agent 是 NousResearch 开源的 AI Agent 框架,相比 OpenClaw,其亮点在于:配置友好、多模型路由、记忆系统完善、自动沉淀技能,且使用国内模型(如 Qwen 系列)也能稳定运行

一、安装与初始配置

支持 macOS、Linux 和 WSL2(Windows 用户需先安装 WSL2 并在其中运行):

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

加 -x 参数可以看到每一步的执行过程,便于排查问题

二、配置防爬浏览器(Camofox)

为什么需要

普通的后端浏览器(如 Chromium headless)访问大多数网站会立即被反爬机制拦截。Camofox 提供了一个「像真人一样」的浏览器环境,使 Hermes 能够:

  • 自动读取网页文章
  • 自动填写表单
  • 操作需要登录的后台系统
  • 执行复杂的网页自动化任务

配置步骤

直接告诉 Hermes:

帮我配置 CAMOFOX 及 CAMOFOX_URL

Hermes 会自动完成配置文件的写入,并在需要高危操作时主动请求你的授权

三、配置灵魂定义(SOUL.md)

什么是 SOUL.md

SOUL.md 是 Hermes 的人格配置文件,定义了 Agent 的思考模式、行为约束和输出风格。默认文件是空注释,需要你自己填写

最佳实践:先聊再总结

推荐流程:先和 Hermes 正常使用 1-2 天,展现你的工作风格和偏好,然后问:

灵魂定义(SOUL.md)你有没有推荐的配置,基于我们的对话风格来建议?

Hermes 会读取历史会话,生成贴合你习惯的配置。然后让它写入:

帮我编辑写入 ~/.hermes/SOUL.md

参考配置

---
name: iwen
version: 1.0
---

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

# 自我约束
- 不确定时直接说「我不确定」
- 高危操作(删数据、重启、覆盖)必须预警

# 输出纪律
- 结论先行,代码/命令为主,少废话

四、配置 Auxiliary 副驾模型路由

设计理念

Auxiliary 是 Hermes 的副驾 LLM 路由中心。核心思路:让主模型专注复杂推理,让便宜/专用的副模型承担「脏活累活」,从而节省成本、提升效率

支持配置的 8 个辅助任务

辅助模型用途说明
vision截图 / 验证码 / 图片分析
web_extract网页内容抓取与提炼
compression上下文压缩摘要(节省 Token)
session_search历史会话搜索与摘要
approval高危命令审批决策
skills_hub技能市场搜索与安装
mcpMCP 服务调用辅助
flush_memories记忆系统清理与重组

配置示例

直接口头告知 Hermes:

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

五、配置三层记忆系统

Hermes 记忆系统分为三层,由浅到深,可按需启用。建议先用第一层 + 第三层,满足需求后再考虑引入第二层

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

编辑 ~/.hermes/config.yaml 进行微调:

memory:
  memory_enabled: true        # MEMORY.md — 项目事实、踩坑记录
  user_profile_enabled: true  # USER.md — 用户画像与偏好
  memory_char_limit: 4000     # 默认 2200,重度使用建议调到 4000
  user_char_limit: 1375       # 用户画像字符上限
  nudge_interval: 5           # 每 5 轮提醒存记忆(默认 10,调小更积极)
  flush_min_turns: 6          # 至少 6 轮才触发退出时的记忆刷新

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

支持 Honcho、mem0 等 8 个外挂记忆插件。配置方式:

hermes memory setup

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

所有历史对话自动持久化到本地 SQLite,支持关键词检索 + LLM 摘要,是记忆系统的兜底机制:

  • 存储位置:~/.hermes/state.db
  • 检索方式:FTS5 关键词全文搜索 + LLM 二次摘要
  • 兜底保障:LLM 调用失败时返回原始文本前 500 字符,不会因故障而完全失效

不需要额外配置,Session Search 默认开启。Agent 会根据你的问题自动判断是否需要检索历史

六、配置 Web Search

支持的搜索引擎

Hermes 原生支持 4 个搜索提供商:Exa、Tavily、Parallel、Firecrawl

配置方式

直接告诉 Hermes:

帮我配置 exa 搜索

Hermes 会引导你输入 API Key 并完成配置。配置成功后可以直接测试:

Hermes 会引导你输入 API Key 并完成配置。配置成功后可以直接测试:

七、配置自动化审计(Hooks)

两种扩展方式

Hermes 提供两套互补的扩展系统:

  • Gateway Hooks:事件驱动钩子,处理生命周期通知
  • Plugin System:插件生命周期钩子,处理功能扩展

8 个生命周期 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         → 本轮对话结束
on_session_end        → 会话结束

实战:创建终端命令审计 Hook

告诉 Hermes:

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

授权后,Hermes 会自动生成并激活这个 Hook

验证

# 执行任意命令后,检查审计日志
tail -f ~/.hermes/audit_logs/terminal_audit.log

八、配置 Docker 沙箱

为什么需要沙箱

默认情况下 Hermes 在本地执行命令,存在一定风险。Docker 沙箱将命令执行隔离在容器中,即使 Agent 执行了危险命令,也只会影响容器内的环境

配置步骤

# 创建一个使用 Docker 沙箱的 worker profile
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

# 如果使用 Telegram,绑定独立的 Bot Token
hermes -p worker config set gateway.telegram.bot_token "YOUR_BOT_TOKEN_B"
hermes -p worker config set gateway.telegram.enabled true

也可以直接告诉主 Agent:

参考如下命令,帮我额外配置一个 profile,sandbox 使用 docker,模型遵循主 profile 即可

验证沙箱隔离

# 在 worker bot 中执行(不会真正损坏宿主机)
rm -rf /

# 在宿主机验证 Docker 已启动
docker ps

九、使用多 Agent

两种多 Agent 模式

  • 同一 Session 内触发 Sub-Agent:适合并行子任务
  • 完全隔离的多 Profile:适合不同安全级别的任务分工(见第 7 步)

触发 Sub-Agent

只需一句话:

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

三个 Sub-Agent 会在同一 Session 中并行工作,各自发言,最终给出汇总。这种方式适合需要多角度分析或并行处理的复杂任务。

十、建立备份体系

三层备份策略

  • 第一层:本地 Git(快速版本控制)
  • 第二层:其他磁盘定时备份(防止硬盘故障)
  • 第三层:远程备份(GitHub 私有仓库 / 对象存储)

完整备份脚本

将以下脚本保存为 ~/hermes_backup.sh:

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

mkdir -p $BACKUP_DIR/hermes $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/skills $BACKUP_DIR/hermes/ 2>/dev/null
cp -r ~/.hermes/audit_logs $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 "✅ 备份完成:$DEST_DIR/$BACKUP_NAME.tar.gz"
echo "大小:$(du -h $DEST_DIR/$BACKUP_NAME.tar.gz | cut -f1)"

十一、安装与沉淀技能(Skills)

自动技能沉淀

Hermes 最令人印象深刻的功能之一:它会自动将有价值的操作流程总结并固化为可复用的技能。

触发条件:每累计 15 次工具循环(config.yaml 中的 creation_nudge_interval 参数),Hermes 会在后台启动一个 Skill Review:

# Skill Review 的三种结果:
# 1. 发现可更新的现有技能 → 自动更新补充新经验
# 2. 发现值得新建的技能   → 创建新技能文件
# 3. 没有值得保存的内容   → 输出 Nothing to save. 结束

整个过程在后台线程运行,不阻塞当前对话

手动安装技能

帮我安装 git 操作相关的技能
帮我搜索并安装 Docker 管理技能

Hermes 八大亮点总结

#亮点说明
①智能授权自动识别高危指令,清晰说明意图再请求授权
②会话感知通过 Session 阅读机制感知历史对话,可据此生成个性化 SOUL.md
③多模型路由Auxiliary 支持为 8 类任务分配独立模型,省钱且高效
④配置解耦密钥与配置分离,YAML 格式友好,修改直观
⑤工具透明IM 界面清晰打印每次 tool 调用过程,执行过程完全可见
⑥多 Profile多实例配置简单,一句话完成,轻松实现沙箱/主力分离
⑦自动技能沉淀将有价值操作自动总结为可复用技能,避免重复踩坑
⑧消息不丢失20 个退出触发点,增量写入,无论正常/异常退出都不丢消息