Hermes Agent:自我进化的 AI 智能体
摘要:Hermes Agent 是由 Nous Research 开源的一款具备持续学习和长期记忆能力的 AI 智能体。与普通 AI
对话工具不同,它能记住用户的环境配置、项目结构和偏好习惯,支持技能复用、定时任务、多任务并行等高级功能。本文详细介绍了 Hermes Agent的安装配置、7大应用场景、特殊文件系统(SOUL.md、MEMORY.md、AGENTS.md等)以及使用技巧与最佳实践,帮助开发者打造专属的智能助手。
title: “Hermes Agent:自我进化的 AI 智能体”
description: “部署 Nous Research 开源的 Hermes Agent——一个能持续学习、拥有长期记忆的 AI 智能体。从安装到微信机器人连接,含 7 大应用场景、SSL 证书问题解决方案、SOUL.md/MEMORY.md/AGENTS.md 等特殊文件系统详解,以及痛点驱动的使用技巧与最佳实践。”
keywords:
- Hermes Agent
- Nous Research
- AI 智能体
- 自我进化 AI
- 长期记忆
- 微信机器人
- 开源 AI Agent
- SOUL.md
- MEMORY.md
- AGENTS.md
- 上下文文件
- 技能系统
- 应用场景
- 小白教程
series: “Windows 下 AI 开发工具实战指南”
series_order: 4
date: “2026-07-21”
prev: “03-claude-code-deepseek.md”
next: “05-docker-dev.md”
在前几篇中,我们搭建了 WSL2 环境并配置了终端 AI 编程助手。本篇更进一步——部署 Hermes Agent,一个由 Nous Research 开发的开源、自我进化的 AI 智能体。
4.1 什么是 Hermes Agent
如果你用过 ChatGPT 或 DeepSeek,一定遇到过这些烦恼:
| 痛点 | 你可能说过的话 |
|---|---|
| 每次都要重复背景 | “我再说一遍,我的项目用的是 Python 3.12 + FastAPI……” |
| AI 忘了你的偏好 | “我上次不是说过了吗,别用 print 调试,用 logging” |
| 换个对话就失忆 | “上个会话里你已经帮我搭好框架了,怎么这个会话又从零开始?” |
| 只会聊天不会动手 | “你能不能直接帮我执行命令,而不是只给我看代码?” |
| 用得越久越没长进 | “用了半年了,回答质量跟第一天一模一样” |
Hermes Agent 就是用来解决这些问题的。它由 Nous Research 开源(GitHub 52k+ Star),是一个能持续学习、拥有长期记忆、能动手执行任务的 AI 智能体。
打个比方:
普通 AI 对话工具就像出租车——你上车说目的地,它送到就走,下次上车什么都不记得。
Hermes Agent 更像雇佣了一个长期助手——他记得你的工作习惯、知道你的项目结构、上次帮你做过什么,而且越用越熟练。
与传统 AI 工具不同,Hermes Agent 具备以下核心能力:
- 持续学习:在使用过程中不断积累技能和知识,遇到复杂工作流会自动总结成"技能"存下来,下次直接复用
- 长期记忆:记住你的环境配置、偏好习惯、项目结构,跨会话不遗忘
- 自我进化:随着使用时间增长,能力不断提升——不是模型本身在变强,而是它积累的技能和记忆越来越丰富
- 动手能力:不仅能聊天,还能直接执行终端命令、编辑文件、搜索代码、操作浏览器

Hermes Agent vs 普通 AI 对话工具
| 对比维度 | 普通 AI 对话(如 ChatGPT) | Hermes Agent |
|---|---|---|
| 记忆 | 单次对话内有效,换对话就忘 | 跨会话持久记忆,越用越懂你 |
| 项目感知 | 需要你手动粘贴代码和说明 | 自动读取项目配置文件,了解项目结构 |
| 执行能力 | 只能给建议或代码,需手动执行 | 直接执行终端命令、编辑文件、操作浏览器 |
| 技能积累 | 每次从零开始,无积累 | 成功完成复杂任务后自动保存为技能复用 |
| 个性化 | 千人一面的回答风格 | 通过 SOUL.md 自定义个性,每个人专属 |
| 交互方式 | 仅限网页/App 对话 | CLI 终端 + 微信/Telegram/Discord 等消息平台 |
参考文档:Hermes Agent 官方文档 · 功能概览 · GitHub 仓库
4.2 安装
支持 Linux、macOS 和 WSL2 环境。在终端中执行:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
这行命令做了什么:从官网下载安装脚本并自动执行。脚本会自动安装所需的依赖(Python、Node.js 等),然后把 Hermes Agent 克隆到
/usr/local/lib/hermes-agent。整个过程约 3-5 分钟。
新手提示:如果你用的是 WSL2,请确保已在 第 2 篇 中完成基础环境配置。
4.3 安装中的常见问题
如果在安装时遇到以下 SSL 证书验证错误:
→ Installing to /usr/local/lib/hermes-agent...
→ Trying SSH clone...
→ SSH failed, trying HTTPS...
Cloning into '/usr/local/lib/hermes-agent'...
fatal: unable to access 'https://github.com/NousResearch/hermes-agent.git/': server certificate verification failed. CAfile: none CRLfile: none
✗ Failed to clone repository
这个问题在 第 2 篇的 SSL 证书错误修复 中已经遇到过。同样使用以下方案解决:
# 全局临时关闭 SSL 验证
export GIT_SSL_NO_VERIFY=true
# 重新执行安装命令
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
4.4 配置安装选项
安装过程中会出现交互式配置界面,按提示操作:
- 空格:选择 / 取消选项
- 回车:确认
- 上下箭头:切换选项

选择推荐的安装方式即可。
新手提示:看到一堆选项不要慌——直接选"推荐安装"就行。这些选项只是让你选择要装哪些扩展功能(如语音交互、浏览器自动化等),后面随时可以通过
hermes setup重新配置。不确定的选项就保持默认。
4.5 配置模型提供商
接下来需要选择并配置 AI 模型提供商。根据你的需求选择对应的服务商,例如 DeepSeek、OpenAI 等:
提示:如果你已在 第 3 篇 中配置了 DeepSeek,这里可以选择 DeepSeek 作为模型提供商,实现工具链的统一。你的 DeepSeek API Key 可以复用。
这步在做什么:Hermes Agent 本身不包含 AI 大模型,它需要一个"大脑"来思考。这步就是告诉它用哪家公司的 AI 模型当大脑。选 DeepSeek 最省钱,选 OpenAI 效果最好,选 Anthropic Claude 则在长文本任务上表现优秀。
4.6 连接微信机器人
Hermes Agent 支持通过微信进行交互,让你可以在手机上随时与 AI 对话:

选择微信作为交互通道后,使用手机微信扫描二维码完成连接。
这步在做什么:把 Hermes Agent 和你的微信绑定,绑定后你可以在微信里直接跟它聊天、下指令,就像跟一个真人朋友发消息一样。出门在外也能远程让 AI 帮你查服务器状态、处理文件。
新手提示:这步是可选的——如果你暂时不需要微信交互,跳过也没关系,之后随时可以通过
hermes setup重新配置。除了微信,还支持 Telegram、Discord 等平台。
4.7 配对与启动
根据页面显示的配对码进行配对连接,直接将配对码信息发送给 Hermes 即可完成绑定。
配对成功后,Hermes Agent 就正式上线了!它会随着你的使用不断学习和进化,逐渐成为一个更懂你的专属 AI 助手。
4.8 应用场景:Hermes Agent 能帮你做什么
部署完成后,你可能想知道:日常到底该怎么用? 下面通过几个典型场景,展示 Hermes Agent 如何解决实际问题。
以下场景仅探讨 Hermes Agent 本身的能力,不涉及 AI 编程教学。
场景一:告别重复解释——让 AI 记住你的环境
痛点:每次开新对话,都要重新告诉 AI “我用的是 Ubuntu 22.04、Python 3.12、项目在 ~/code/myapi”。
Hermes Agent 怎么做:第一次告诉它后,它会自动存入 MEMORY.md。以后每次新会话,它已经知道这些信息了。
你:我的服务器是 Ubuntu 22.04,装了 Docker 和 PostgreSQL 16
Hermes:(自动保存到记忆)好的,已记住你的环境信息。
# —— 几天后,新会话 ——
你:帮我写个数据库备份脚本
Hermes:你的服务器是 Ubuntu 22.04 + PostgreSQL 16,我直接用 pg_dump 写一个
配合 Docker 定时任务执行的脚本……(无需你再重复任何背景)
场景二:项目文档自动化——AI 自己读懂你的项目
痛点:让 AI 帮忙改代码,但每次都要粘贴一堆文件给它看,费时费力。
Hermes Agent 怎么做:在项目根目录放一个 AGENTS.md,写清项目结构和规范。Hermes Agent 启动时自动读取,相当于给它发了一份"项目说明书"。
# 在项目根目录创建 AGENTS.md
## 项目结构
- 这是一个 FastAPI 后端,使用 SQLAlchemy ORM
- 所有 API 返回 {data, error, meta} 格式
- 测试文件放在 tests/ 目录,使用 pytest-asyncio
## 注意事项
- 不要直接修改迁移文件,用 Alembic 命令
- .env.local 里有真实 API Key,不要提交到 git
以后只要在这个项目目录下启动 Hermes Agent,它就自动知道这些规则,不需要你每次重复说。
场景三:技能复用——把成功经验存下来
痛点:花了半小时教 AI 完成一个复杂的部署流程,下次又要重新教一遍。
Hermes Agent 怎么做:完成复杂任务后,让它把整个流程保存为"技能"。下次一键调用,完整流程自动加载。
你:把你刚才帮我部署到 staging 的完整流程保存为 skill
Hermes:已保存为 deploy-staging 技能,包含以下步骤:
1. 运行测试套件
2. 构建 Docker 镜像
3. 推送到镜像仓库
4. SSH 到 staging 服务器拉取新镜像
5. 滚动重启服务
6. 健康检查验证
# 下次部署时
你:/deploy-staging
Hermes:(自动加载完整流程,开始执行部署……)
场景四:微信随时问——手机就是 AI 终端
痛点:出门在外遇到问题,想问 AI 但不方便打开电脑。
Hermes Agent 怎么做:连接微信后,直接在手机微信里发消息给 Hermes Agent,它会像聊天一样回复你,还能远程执行服务器上的命令。
# 手机微信对话
你:服务器上的磁盘还剩多少?
Hermes:(远程执行 df -h)根分区还剩 23GB(使用率 68%),
/data 分区还剩 156GB,状态正常。
你:把昨天的日志压缩归档一下
Hermes:(远程执行 tar 命令)已完成,日志已归档到
/data/archives/logs-20260720.tar.gz,大小 45MB。
场景五:定时任务——让 AI 主动帮你干活
痛点:有些事情需要定期做(检查服务器、生成报告、清理临时文件),但总忘记。
Hermes Agent 怎么做:用自然语言设置定时任务,它会自动执行并把结果推送到你的微信或 Telegram。
你:每天早上 9 点检查服务器状态,把结果发给我
Hermes:已创建定时任务:
- 时间:每天 09:00
- 内容:检查 CPU、内存、磁盘、关键服务状态
- 推送:发送到你的微信
# 第二天早上 9 点,微信收到消息
Hermes:☀️ 服务器日报 2026-07-21
CPU: 12% ✓ 内存: 45% ✓
磁盘: 68% ⚠️(建议清理 /var/log)
服务: nginx ✓ postgresql ✓ redis ✓
场景六:个性定制——打造专属 AI 风格
痛点:AI 回答太啰嗦或太简略,每次都要说"简洁一点"或"详细一点"。
Hermes Agent 怎么做:编辑 ~/.hermes/SOUL.md 一次性设定持久个性,或者用 /personality 命令临时切换。
# 编辑 SOUL.md 设定持久风格
你是一个务实的资深工程师。回答简洁直接,
不需要解释显而易见的东西。不确定时直说"不确定"。
# 或在对话中临时切换
/personality concise # 切换到简洁模式
/personality teacher # 切换到教学模式(需要详细解释时用)
场景七:多任务并行——子 Agent 同时干活
痛点:需要同时调研三个方案,串行问 AI 要等很久。
Hermes Agent 怎么做:用 delegate_task 让子 Agent 并行工作,每个独立运行,最后汇总结果。
你:同时帮我调研这三个方案:1) 用 Celery 做异步任务 2) 用 Dramatiq 3) 用 RQ
对比它们的优缺点
Hermes:(启动 3 个子 Agent 并行调研……)
调研完成,以下是对比结果:
| 维度 | Celery | Dramatiq | RQ |
| 复杂度 | 高 | 中 | 低 |
| 功能 | 最全 | 较全 | 基础 |
| …… | …… | …… | …… |
建议:如果你的任务不复杂,RQ 足够且最简单。
新手快速上手路径
刚部署完不知道从哪开始?按这个顺序来:
| 步骤 | 做什么 | 预计耗时 |
|---|---|---|
| 1 | 告诉 Hermes 你的基本环境(操作系统、常用语言) | 1 分钟 |
| 2 | 告诉它你的偏好(回答风格、代码规范) | 1 分钟 |
| 3 | 在常用项目根目录创建 AGENTS.md |
5 分钟 |
| 4 | 试用 /personality 切换不同风格 |
1 分钟 |
| 5 | 完成第一个复杂任务后,让它保存为 skill | 随任务而定 |
| 6 | 设置一个简单的定时任务(如每日服务器检查) | 2 分钟 |
参考文档:定时任务 Cron · 子 Agent 委派 · 个性与 SOUL.md
4.9 Hermes Agent 的特殊文件系统
Hermes Agent 之所以能实现持续学习和自我进化,核心在于一套精心设计的特殊文件系统。这些文件各司其职,共同构成了 Agent 的记忆、个性和项目感知能力。理解它们的作用,是玩转 Hermes Agent 的关键。
如果用日常生活中的东西来打比方:
| 文件 | 生活比喻 | 作用 |
|---|---|---|
| SOUL.md | AI 的"性格设定卡" | 决定 AI 说话的风格和态度 |
| MEMORY.md | AI 的"备忘录" | 记住环境信息、工作约定 |
| USER.md | AI 对你的"印象本" | 记住你的偏好和习惯 |
| AGENTS.md | AI 的"项目说明书" | 告诉 AI 当前项目的规则 |
| SKILL.md | AI 的"操作手册" | 存储可复用的工作流程 |
| config.yaml | AI 的"控制面板" | 调整各种参数设置 |
本节内容参考 Hermes Agent 官方功能文档,以下仅探讨 Hermes Agent 本身的文件机制,不涉及 AI 编程指导。
文件总览
所有特殊文件均位于 ~/.hermes/ 主目录下,结构如下:
~/.hermes/
├── SOUL.md # Agent 个性身份文件
├── config.yaml # 全局配置文件
├── .env # 环境变量(API Key 等)
├── state.db # 会话历史数据库(SQLite)
├── memories/
│ ├── MEMORY.md # Agent 的个人笔记
│ └── USER.md # 用户档案
├── skills/ # 技能系统
│ ├── mlops/
│ │ └── axolotl/
│ │ └── SKILL.md
│ └── devops/
│ └── deploy-k8s/
│ └── SKILL.md
└── skill-bundles/ # 技能捆绑包
└── backend-dev.yaml
SOUL.md — Agent 的"灵魂"
SOUL.md 是 Hermes Agent 的主要身份标识,占据系统提示词的第 1 个槽位,定义了 Agent 是谁、如何说话。
小白理解:就像给新入职的助手发一张"岗位说明卡",告诉他"你是谁、怎么说话"。这张卡对所有项目都有效,不管助手去哪个项目组都带着这张卡。
| 属性 | 说明 |
|---|---|
| 位置 | ~/.hermes/SOUL.md(或 $HERMES_HOME/SOUL.md) |
| 作用范围 | 全局,对所有项目生效 |
| 用途 | 定义语气、沟通风格、个性层面的行为 |
| 自动生成 | 首次运行时自动创建默认文件 |
一个实用的 SOUL.md 示例:
# Personality
You are a pragmatic senior engineer with strong taste.
You optimize for truth, clarity, and usefulness over politeness theater.
## Style
- Be direct without being cold
- Prefer substance over filler
- Push back when something is a bad idea
- Admit uncertainty plainly
除了通过编辑 SOUL.md 设置持久个性外,还可以用 /personality 命令在会话中临时切换内置个性预设(如 concise、technical、creative、teacher 等),会话结束后自动恢复默认。详见 个性与 SOUL.md 文档。
MEMORY.md 与 USER.md — 持久化记忆
这两个文件构成了 Agent 跨会话的持久记忆,存储在 ~/.hermes/memories/ 目录下。
小白理解:MEMORY.md 就像助手随身带的备忘录,记着"服务器配置、工具版本、踩过的坑"这些硬知识;USER.md 就像助手对你的印象笔记,记着"你喜欢简洁回答、习惯用 TypeScript"这些个人偏好。两者合在一起,就是助手"为什么越来越懂你"的秘密。
| 文件 | 用途 | 字符上限 |
|---|---|---|
| MEMORY.md | Agent 的个人笔记——环境事实、约定、已学内容 | 2,200 字符(约 800 tokens) |
| USER.md | 用户档案——偏好、沟通风格、期望 | 1,375 字符(约 500 tokens) |
工作原理:
- 每次会话开始时,记忆以冻结快照形式注入系统提示词
- Agent 通过
memory工具自主管理记忆(添加、替换、删除) - 记忆已满时,Agent 会自动整合或替换旧条目以腾出空间
- 会话期间的记忆更改会立即持久化到磁盘,但下一次会话才会出现在系统提示词中(保留前缀缓存以提升性能)
Agent 会主动保存用户偏好、环境事实、纠正信息、项目约定等,跳过琐碎信息和原始数据。详见 持久化记忆文档。
项目上下文文件
Hermes Agent 会自动发现并加载工作目录中的上下文文件,以感知当前项目的结构和规范。这些文件按优先级从高到低依次匹配(先匹配先生效):
小白理解:就像助手到了新项目组,会先翻看桌上的项目手册——技术栈是什么、代码规范是什么、哪些文件不能动。Hermes Agent 支持多种"手册格式",优先级从高到低依次匹配。
| 文件 | 用途 | 发现方式 |
|---|---|---|
| .hermes.md / HERMES.md | 项目指令(最高优先级) | 向上遍历至 git 根目录 |
| AGENTS.md | 项目指令、规范、架构说明 | 启动时的 CWD 及子目录(渐进式) |
| CLAUDE.md | Claude Code 上下文文件 | 启动时的 CWD 及子目录(渐进式) |
| .cursorrules | Cursor IDE 编码规范 | 仅当前工作目录 |
| .cursor/rules/*.mdc | Cursor IDE 规则模块 | 仅当前工作目录 |
关键机制:
- 每次会话仅加载一种项目上下文类型(先匹配先生效)
SOUL.md始终作为 Agent 身份独立加载,不受项目上下文影响AGENTS.md支持渐进式子目录发现——当 Agent 进入子目录操作时,自动加载该子目录的上下文文件,避免系统提示词膨胀- 所有上下文文件在加载前都会经过安全扫描,拦截潜在的 prompt 注入攻击
- 单个文件超过 20,000 字符时会自动截断(保留 70% 头部 + 20% 尾部)
详见 上下文文件文档。
SKILL.md — 技能系统
技能是 Agent 可以按需加载的知识文档,存放在 ~/.hermes/skills/ 目录下,遵循渐进式披露模式以最小化 token 用量。
小白理解:技能就像助手的操作手册库。助手不需要把所有手册都背下来(那太占脑容量了),而是先看目录(Level 0),需要哪本就翻哪本(Level 1),需要某个具体章节再看具体章节(Level 2)。这样既省"脑力"(token),又不丢信息。
加载层级:
Level 0: skills_list() → 名称 + 描述 + 分类(约 3k tokens)
Level 1: skill_view(name) → 完整内容 + 元数据
Level 2: skill_view(name, path) → 特定参考文件
SKILL.md 文件格式:
---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
platforms: [macos, linux]
metadata:
hermes:
tags: [python, automation]
category: devops
---
# Skill Title
## When to Use
触发条件
## Procedure
1. 步骤一
2. 步骤二
## Pitfalls
- 已知的失败模式与修复方法
## Verification
如何确认操作成功
每个已安装的技能会自动作为斜杠命令可用,例如 /plan、/github-pr-workflow。Agent 还可以通过 skill_manage 工具自主创建、更新和删除技能——这是它的程序性记忆,遇到非平凡的工作流时会自动保存以供复用。详见 技能系统文档。
config.yaml — 全局配置
位于 ~/.hermes/config.yaml,是 Hermes Agent 的核心配置文件,控制记忆系统、技能设置、提供商路由等所有可调参数。
小白理解:就像助手的"控制面板"——记忆容量设多大、用哪个 AI 模型、允许多少个并行任务,都在这里调。刚开始不用动它,用熟了再回来微调。
# 记忆系统配置
memory:
memory_enabled: true
user_profile_enabled: true
memory_char_limit: 2200 # 约 800 tokens
user_char_limit: 1375 # 约 500 tokens
# 技能外部目录
skills:
external_dirs:
- ~/.agents/skills
# 自定义个性
agent:
personalities:
codereviewer: >
You are a meticulous code reviewer.
state.db — 会话历史数据库
位于 ~/.hermes/state.db,是一个 SQLite 数据库,存储所有 CLI 和消息平台会话的完整记录,支持 FTS5 全文搜索。Agent 可以通过 session_search 工具搜索数周前的对话内容——无需 LLM 摘要,直接返回数据库中的原始消息。
小白理解:就像助手的"工作日志本",每次对话都自动记录。你问"上周我们讨论的那个数据库方案是什么来着?",助手翻翻日志就能找到原文,不会编造。
文件间的协作关系
这些特殊文件并非孤立存在,它们在系统提示词中按固定顺序组装,共同塑造 Agent 的行为:
系统提示词栈(从上到下):
┌─────────────────────────────────┐
│ 1. SOUL.md(Agent 身份) │ ← 全局个性
├─────────────────────────────────┤
│ 2. 工具感知行为指导 │
├─────────────────────────────────┤
│ 3. MEMORY.md + USER.md(记忆) │ ← 跨会话记忆
├─────────────────────────────────┤
│ 4. 技能指导 │ ← 按需加载
├─────────────────────────────────┤
│ 5. 上下文文件(AGENTS.md 等) │ ← 项目感知
├─────────────────────────────────┤
│ 6. 时间戳 + 平台格式提示 │
├─────────────────────────────────┤
│ 7. /personality 覆盖层(可选) │ ← 会话级临时切换
└─────────────────────────────────┘
理解这个层级关系,就能明白为什么 SOUL.md 写全局个性、AGENTS.md 写项目规范、MEMORY.md 记环境事实——它们各自占据不同的槽位,互不冲突。
4.10 使用技巧与最佳实践
掌握了特殊文件系统后,如何让 Hermes Agent 真正好用?本节基于 官方技巧文档 和社区用户反馈,针对高频痛点给出可操作的解决方案。
用户痛点速查
根据社区反馈,新手使用 Hermes Agent 最常遇到以下问题:
| 痛点 | 典型表现 | 影响程度 |
|---|---|---|
| 配置项太多劝退 | 看到 YAML 就头疼,不知道改哪里 | 高 |
| 记忆/技能/会话搜索分不清 | 三个"记忆"概念混用,该存的没存、该搜的没搜 | 高 |
| 上下文窗口溢出 | 长对话后响应变慢或报错 context length exceeded |
高 |
| 技能越用越差 | Agent 自动生成的技能质量参差不齐 | 中 |
| API 速率限制 | RateLimitError: Too many requests 频繁出现 |
中 |
| 会话管理混乱 | 未命名会话堆积,找不到之前的对话 | 中 |
| 安全审批困惑 | 不知道"始终允许"会永久放行危险命令 | 高 |
提问技巧:让 Agent 一次就懂
痛点:模糊的提问导致反复确认,浪费 token 和时间。
| ❌ 模糊提问 | ✅ 精准提问 |
|---|---|
| “修复代码” | “修复 api/handlers.py 第 47 行的 TypeError——process_request() 从 parse_body() 收到了 None” |
| “帮我看看这个项目” | “分析 ~/code/myapi 的项目结构,列出所有 API 端点及其认证方式” |
| “文件重命名” | “写一个 Python 脚本,把 ./images/ 下所有 .jpeg 文件重命名为 .jpg 并运行” |
核心原则:
- 预先提供上下文:在请求开头就给出文件路径、错误信息、预期行为。一条精心构造的消息胜过三轮来回确认
- 直接粘贴错误堆栈:Agent 能解析完整报错信息,无需手动提炼
- 让 Agent 使用它的工具:说"找到并修复失败的测试",而不是手把手指导每一步。Agent 拥有文件搜索、终端访问和代码执行能力
记忆管理:记什么、不记什么
痛点:新手常把 Memory、Skill、Session Search 三个概念混为一谈,导致该存的没存、该搜的没搜。
三者各司其职,简单区分:
| 机制 | 存什么 | 何时用 | 容量 |
|---|---|---|---|
| Memory(MEMORY.md) | 事实:环境、偏好、项目位置 | 始终在上下文中 | 约 2,200 字符 |
| Skill(SKILL.md) | 流程:多步骤工作流、操作指南 | 按需加载 | 无硬性上限 |
| Session Search | 历史对话原文 | 需要回忆过去讨论时 | 无限制(所有会话) |
记忆管理技巧:
# 主动让 Agent 记住关键信息
"记住:我们的 CI 使用 GitHub Actions 的 deploy.yml 工作流"
# 记忆满了时,主动清理
"清理你的记忆,把旧的 Python 3.9 备注删掉——我们现在用 3.12 了"
# 高效会话结束后,让 Agent 总结保存
"记住这些以备下次使用"
注意:记忆是冻结快照——会话期间的修改不会出现在系统提示词中,直到下一次会话开始。Agent 会立即写入磁盘,但提示词缓存在会话中途不会失效。这是有意为之,为了保留 LLM 的前缀缓存以降低成本。
技能系统:从手动到自动进化
痛点:Agent 自动生成的技能质量参差不齐,可能"越用越差"。
手动创建技能(推荐新手先这样做):
在一次成功完成复杂任务(5 步以上)后,直接告诉 Agent:
把你刚才做的保存为名为 deploy-staging 的 skill
下次只需输入 /deploy-staging,Agent 就会加载完整流程。
技能质量自检清单:
- 技能是否包含明确的"何时使用"触发条件
- 是否列出了已知陷阱(Pitfalls)和修复方法
- 是否有验证步骤(Verification)确认操作成功
- 步骤是否可复现,不依赖特定会话上下文
浏览和安装社区技能:
hermes skills browse # 浏览所有 Hub 技能
hermes skills search kubernetes # 搜索特定主题
hermes skills inspect openai/skills/k8s # 安装前预览
hermes skills install openai/skills/k8s # 安装(含安全扫描)
性能与成本优化
痛点:长对话 token 消耗大、响应变慢;API 速率限制频繁触发。
保持 Prompt 缓存命中:
大多数 LLM 提供商会缓存系统提示词前缀。保持系统提示词稳定(相同的上下文文件、相同的记忆),同一会话中的后续消息会命中缓存,成本显著降低。避免在会话中途切换模型或修改系统提示词。
及时压缩长会话:
/usage # 查看当前 token 用量
/compress # 压缩对话历史,保留关键上下文
/insights # 查看过去 30 天的用量模式
当发现响应变慢或被截断时,立即运行 /compress。
用委托实现并行工作:
需要同时研究三个主题时,让 Agent 使用 delegate_task 并行分配子任务。每个子 Agent 独立运行,拥有各自的上下文,最终只有摘要结果返回——大幅减少主对话的 token 消耗。
按任务复杂度切换模型:
/model # 会话中途切换模型
- 复杂推理和架构决策 → 前沿模型(Claude Sonnet/Opus、GPT-4o)
- 格式化、重命名、样板代码 → 更快更便宜的模型
应对速率限制:
配置凭证池,在多个 API Key 之间自动轮换:
# ~/.hermes/config.yaml
# 多 Key 轮换,触发速率限制时自动切换
credential_pool:
- provider: openrouter
key: "sk-or-key1..."
- provider: openrouter
key: "sk-or-key2..."
CLI 高效操作
痛点:不熟悉快捷键和命令,操作效率低。
| 操作 | 快捷键 / 命令 | 说明 |
|---|---|---|
| 多行输入 | Alt+Enter 或 Ctrl+J |
插入换行而不发送消息 |
| 中断响应 | Ctrl+C(按一次) |
中断后输入新消息重新引导 |
| 强制退出 | Ctrl+C(2 秒内双击) |
直接退出程序 |
| 粘贴图片 | Ctrl+V |
剪贴板图片直接粘贴到对话 |
| 命令补全 | 输入 / 后按 Tab |
查看所有可用斜杠命令 |
| 恢复会话 | hermes -c |
恢复上次会话的完整历史 |
| 按标题恢复 | hermes -r "会话标题" |
恢复指定标题的会话 |
| 切换详细模式 | /verbose |
循环切换:off → new → all → verbose |
CLI 会自动检测多行粘贴——直接粘贴代码块或错误堆栈,不会将每行作为单独消息发送。
给会话命名:
/title auth-refactor # 为会话命名
命名后的会话可通过 hermes sessions list 轻松找到,用 hermes -r "auth-refactor" 恢复。未命名的会话会堆积起来,难以区分。
安全防护
痛点:新手不了解危险命令审批机制,容易误选"始终允许"。
危险命令审批选项:
当 Agent 触发危险命令(rm -rf、DROP TABLE 等)时,你会看到四个选项:
| 选项 | 含义 | 建议 |
|---|---|---|
| once | 仅此一次 | 默认选择,最安全 |
| session | 本次会话内允许 | 确认安全后可用 |
| always | 永久加入白名单 | 慎用,会永久放行该模式 |
| deny | 拒绝执行 | 立即阻止 |
建议:在熟悉之前,先用
session。Hermes 在执行每条命令前都会与一份精心维护的危险模式列表比对,包括递归删除、SQL DROP、curl 管道到 shell 等。不要在生产环境中禁用此功能。
对不可信代码使用 Docker 后端:
# 在 .env 中设置
TERMINAL_BACKEND=docker
TERMINAL_DOCKER_IMAGE=hermes-sandbox:latest
容器内的破坏性命令不会影响宿主系统。注意:容器后端中危险命令检查会被跳过,因为容器本身就是安全边界。
为消息 Bot 设置白名单:
永远不要在拥有终端访问权限的 Bot 上设置 GATEWAY_ALLOW_ALL_USERS=true。始终使用平台专属白名单:
# 推荐做法:按平台设置白名单
TELEGRAM_ALLOWED_USERS=123456789,987654321
DISCORD_ALLOWED_USERS=123456789012345678
或启用 DM 配对——团队成员向 Bot 发送私信时收到一次性配对码,你用 hermes pairing approve telegram XKGH5N7P 批准即可。
常见报错速查表
| 报错信息 | 根因 | 快速修复 |
|---|---|---|
hermes: command not found |
PATH 未刷新 | source ~/.bashrc 或重启终端 |
AuthenticationError: Invalid API key |
Key 无效或不匹配 | hermes config list 核查配置 |
RateLimitError: Too many requests |
API 调用频率超限 | 配置凭证池轮换 |
context length exceeded |
对话历史超长 | /compress 或用子 Agent 拆分任务 |
Cannot connect to Docker daemon |
Docker 服务未启动 | sudo systemctl start docker |
permission denied: /var/run/docker.sock |
用户不在 docker 组 | sudo usermod -aG docker $USER |
Subagent RPC timeout after 30s |
子任务超时 | hermes config set subagent_timeout 120 |
通用排查命令:
hermes logs --last 50 # 查看最近 50 条日志
hermes --debug # 开启详细调试模式
hermes status # 检查运行环境和配置状态
提示:绝大多数报错无需重装。
command not found只需刷新 PATH;认证失败只需更新 API Key;Docker 报错只需检查服务状态。只有安装文件损坏时才考虑重装。
参考文档:技巧与最佳实践 · SOUL.md 指南 · 凭证池 · 备用提供商
下一步
AI 智能体已部署。下一篇 Docker 容器开发环境 将带你用容器化方式管理 AI 开发栈——Jupyter、Ollama、向量数据库,一键编排。
📮 系列目录:Windows 下 AI 开发工具实战指南
更多推荐

所有评论(0)