视频学习地址
Hermes Agent简介

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(技能)
- 在使用中持续迭代技能
- 主动持久化知识和用户偏好
- 跨会话构建对用户的深度理解
前置准备:安装前置软件

先决条件
唯一的前提条件是 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安装与部署

无需任何前置依赖,支持 Linux、macOS 和 WSL2,一键自动安装所有组件
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
特别声明
- 在安装的时候,无需翻墙,非要翻墙,请你自重(如果实在下载不动,那你翻吧)
- 程序员注意!请将pip镜像和npm镜像还原(别问,问就是坑,大坑,天坑)
安装流程
等待自动安装依赖,这部分安装时间有点长,保持网络畅通,耐心等待...

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

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

选择你熟悉的,或者是你有额度的模型即可,这里我们选择 DeepSeek
提示:如果选择错了怎么办? 执行 hermes model 重新选择(后续课程有演示~)

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

启动 hermes 应用

到这里就成功了!

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

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

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

如何授权信息?
- 使用DM配对审批(推荐)
- 允许所有直接消息
- 仅允许已列明的用户 OpenIDs

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

消息可以正常接收

接入微信
如何授权信息?
- 使用DM配对审批(推荐)
- 允许所有直接消息
- 仅允许已列明的用户 OpenIDs
- 禁用私信

应该如何处理群聊?
- 禁用群聊(推荐)
- 允许所有群聊
- 只允许列出的群聊ID

微信和QQ不同的是,需要进行设备配对
在wsl下执行 hermes pairing approve weixin ZV5J582F 完成配对即可

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

如何授权信息?
- 使用DM配对审批(推荐)
- 允许所有直接消息
- 仅允许已列明的用户 OpenIDs

应该如何处理群聊?
- 仅在小组中提到@时才响应(推荐)
- 禁用群聊

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

Hermes Agent第一个应用案例

提示词
帮我上网卡看最近比较火的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 个性化定制

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


Hermes 工具与工具集

工具是扩展 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

技能是按需加载的知识文档,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 的记忆由两个文件组成:
| 文件 | 用途 | 字符限制 |
|---|---|---|
| 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.md 和 AGENTS.md 中的内容
容量管理
记忆有严格的字符限制,以保持系统提示词的大小受控:
| 存储库 | 限制 | 典型条目数 |
|---|---|---|
| memory | 2,200 字符 | 8-15 条 |
| user | 1,375 字符 | 5-10 条 |
会话搜索
除了 MEMORY.md 和 USER.md 之外,Agent 还可以使用 session_search 工具搜索其过去的对话:
- 所有 CLI 和消息会话都存储在 SQLite (
~/.hermes/state.db) 中,支持 FTS5 全文搜索 - 搜索查询会返回相关的历史对话,并使用 Gemini Flash 进行总结
- Agent 可以找到几周前讨论过的内容,即使这些内容不在其活跃记忆中
hermes sessions list # 浏览历史会话
Hermes Agent 皮肤与主题

皮肤控制着 Hermes CLI 的 视觉呈现:横幅颜色、旋转器表情和动词、响应框标签、品牌文本以及工具活动前缀
对话风格和视觉风格是两个独立的概念:
- 个性 改变 Agent 的语气措辞
- 皮肤 改变 CLI 的外观
更换皮肤
/skin # 显示当前皮肤并列出可用皮肤
/skin ares # 切换到内置皮肤
/skin mytheme # 切换到自定义皮肤(来自 ~/.hermes/skins/mytheme.yaml)
或者在 ~/.hermes/config.yaml 中设置默认皮肤:
display:
skin: default
内置皮肤
| 皮肤 | 描述 | Agent 品牌 | 视觉特征 |
|---|---|---|---|
default | Hermes 经典款 —— 金色与可爱风格 | 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 工具能力

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
- 登录到您的GitHub帐户,点击右上角的头像,然后选择 "Settings"(设置)
- 在左侧导航栏 中,选择 "Developer settings"(开发者设置)
- 在 "Developer settings" 页面上,选择 "Personal access tokens"(个人访问令牌)
- 在 "Personal access tokens" 页面上,点击 "Generate new token"(生成新令牌)按钮
- 提供一个描述以标识该访问令牌的用途。(可以全部勾选)
- 完成设置后,点击页面底部的 "Generate token"(生成令牌)按钮
步骤 3:验证
hermes tools list # 查看所有可用工具,包括 MCP 提供的
常用 MCP 服务器推荐
| MCP 服务器 | 功能 | 安装命令 |
|---|---|---|
| server-github | GitHub 仓库操作 | npx @modelcontextprotocol/server-github |
| server-postgres | PostgreSQL 查询 | npx @modelcontextprotocol/server-postgres |
| server-sqlite | SQLite 操作 | npx @modelcontextprotocol/server-sqlite |
| server-filesystem | 文件系统操作 | npx @modelcontextprotocol/server-filesystem |
| server-brave-search | Brave 搜索 | npx @modelcontextprotocol/server-brave-search |
| playwright-mcp | 浏览器自动化 | npx @playwright/mcp@latest |
实际应用示例
示例:Agent + GitHub MCP
你:帮我检查一下 hermes-agent 仓库最近的 Issue,有没有关于飞书的 Bug
Hermes Agent 定时任务 (Cron)

使用自然语言或 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 仪表板

Web 仪表板是一个基于浏览器的用户界面,用于管理你的 Hermes Agent 安装。无需编辑 YAML 文件或运行 CLI 命令,你就可以通过简洁的 Web 界面来配置设置、管理 API 密钥和监控会话
启动仪表板
这将启动一个本地 Web 服务器,并在你的浏览器中打开 http://127.0.0.1:9119。仪表板完全在你的机器上运行——没有任何数据会离开本地主机。
hermes dashboard
选项
| 标志 | 默认值 | 描述 |
|---|---|---|
--port | 9119 | 运行 Web 服务器的端口 |
--host | 127.0.0.1 | 绑定地址 |
--no-open | — | 不自动打开浏览器 |
# 自定义端口
hermes dashboard --port 8080
# 绑定到所有网络接口(在共享网络上使用需谨慎)
hermes dashboard --host 0.0.0.0
# 启动时不打开浏览器
hermes dashboard --no-open
Hermes Agent 最佳实践

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 | 技能市场搜索与安装 |
| mcp | MCP 服务调用辅助 |
| 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 个退出触发点,增量写入,无论正常/异常退出都不丢消息 |
