作者:PySuper | 来源:zhengxingtao.com
135K+ GitHub 星标,2026 年增速最快的 Agent 框架。Hermes Agent 的核心创新不是更快、不是更便宜,而是"越用越聪明"——每完成一个任务,就提炼一个 Skill;每犯一次错误,就修补一个漏洞。这不是营销话术,是架构决定的必然。
目录
Hermes 是什么:自进化 AI Agent 框架
核心创新:闭环学习(Closed Learning Loop)
三大子系统:Memory / Skill / Nudge Engine
实战1:本地部署 Hermes Agent
实战2:体验自进化闭环
SKILL.md 自生成机制
Skill Curator:后台自动评分与修剪
持久记忆:多后端与跨会话召回
SOUL.md:活的身份文档
多执行后端:本地 / Docker / SSH / Modal / Daytona
与 OpenClaw 哲学分歧
踩坑记录
总结与展望
1. Hermes 是什么:自进化 AI Agent 框架
1.1 一句话定义
据 Hermes Agent 官方网站(https://www.hermes-agent.org/):
Hermes Agent is an open-source autonomous AI agent built by Nous Research. It's not a coding copilot tethered to an IDE or a chatbot wrapper around a single API. Hermes lives on your server, remembers what it learns, and gets more capable the longer it runs.
翻译:Hermes Agent 是一个开源的自主 AI Agent,由 Nous Research 构建。它不是一个绑定 IDE 的编码助手,也不是一个套壳 API 的聊天机器人。Hermes 住在你服务器上,记住它学到的,运行越久越强大。
1.2 Nous Research 背景
plaintext
Nous Research
├── 创立:2023年,加州 Saratoga
├── 创始人:Jeffrey Quesnelle
├── A 轮融资:$50M,Paradigm 领投
├── 估值:$1B(独角兽)
├── 首发产品:Hermes Agent(2026.02.25)
└── 核心理念:聊天机器人范式已触顶
1.3 关键数据
表格
2. 核心创新:闭环学习(Closed Learning Loop)
2.1 什么是闭环学习
据《How Hermes Agent Gets Better Over Time》(https://hermes-agent.ai/blog/self-improving-ai-guide),Hermes 的自进化不是"自我修改权重"——那需要 GPU 训练。Hermes 的自进化是行为层面的闭环学习:
plaintext
┌──────────────────────────────────────────────────────────────┐
│ Hermes 闭环学习(4 阶段) │
│ │
│ ┌──────────────┐ │
│ │ Stage 1 │ │
│ │ 任务执行 │ 运行任务,调用工具,浏览网页, │
│ │ (Execute) │ 生成子 Agent... │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Stage 2 │ 每 15 次工具调用后暂停: │
│ │ 自评估检查点 │ "我做了什么?什么有效?什么失败? │
│ │ (Evaluate) │ 是否值得提炼为 Skill?" │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Stage 3 │ 如果经验值得保留: │
│ │ Skill 创建 │ 写入或修补 SKILL.md 文件 │
│ │ (Distill) │ 如果已存在相似 Skill → 扩展而非重复 │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Stage 4 │ 关键事实、修正、约定写入: │
│ │ 记忆更新 │ MEMORY.md(环境事实) │
│ │ (Persist) │ USER.md(用户偏好) │
│ └──────┬───────┘ │
│ │ │
│ └──────────────▶ 下次执行时更聪明 │
│ (加载更好的 Skill + 更多记忆) │
└──────────────────────────────────────────────────────────────┘
2.2 自进化不是什么
表格
2.3 效果量化
据《Learning Loop — Self-Improving AI Skills》(https://hermes-agent.ai/features/learning-loop):
After 20–30 complex tasks, you have an agent that handles your specific workflows measurably faster and with fewer errors.
翻译:完成 20-30 个复杂任务后,你的 Agent 在特定工作流上可测量地更快、更少出错。
3. 三大子系统:Memory / Skill / Nudge Engine
3.1 三层记忆架构
据《awesome-code-docs: Hermes Agent Memory, Skills, Learning Loop》(https://github.com/johnxie/awesome-code-docs/blob/main/tutorials/hermes-agent-tutorial/04-memory-skills-learning-loop.md),Hermes 的记忆系统分为三层:
plaintext
┌──────────────────────────────────────────────────────────────┐
│ Hermes 三层记忆架构 │
│ │
│ Layer 1: 情景记忆(Episodic Memory) │
│ ┌──────────────────────────────────────────────┐ │
│ │ 存储:sessions.db(SQLite FTS5) │ │
│ │ 内容:会话摘要(200-500 字,LLM 生成) │ │
│ │ 检索:FTS5 全文搜索 │ │
│ │ 写入:会话结束时自动生成 │ │
│ │ 特点:按内容搜索,按需召回 │ │
│ └──────────────────────────────────────────────┘ │
│ │
│ Layer 2: 语义记忆(Semantic Memory) │
│ ┌──────────────────────────────────────────────┐ │
│ │ 存储:MEMORY.md + USER.md │ │
│ │ 内容: │ │
│ │ MEMORY.md → 长期事实(项目栈、团队约定) │ │
│ │ USER.md → 用户模型(风格、专长、目标) │ │
│ │ 注入:每次 Prompt 都注入(始终可用) │ │
│ │ 写入:Nudge Engine 自动触发 │ │
│ │ 特点:始终在线,成本固定 │ │
│ └──────────────────────────────────────────────┘ │
│ │
│ Layer 3: 程序记忆(Procedural Memory) │
│ ┌──────────────────────────────────────────────┐ │
│ │ 存储:~/.hermes/skills/*.md │ │
│ │ 内容:SKILL.md 文件(工作流、经验、修复) │ │
│ │ 检索:语义匹配 + 渐进式加载 │ │
│ │ 写入:闭环学习自动创建/修补 │ │
│ │ 特点:按需激活,用后优化 │ │
│ └──────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘
3.2 Nudge Engine(提醒引擎)
Nudge Engine 是 Hermes 的"自省机制"——它不是被动等待任务,而是主动推动 Agent 反思和学习:
python
# Nudge Engine 的核心逻辑(简化)
class NudgeEngine:
"""在会话中主动推动 Agent 反思和记忆管理"""
def should_nudge(self, conversation: list) -> bool:
"""判断是否应该触发提醒"""
# 条件1:对话已进行 5+ 轮
if len(conversation) < 5:
return False
# 条件2:用户提到了偏好或约定
if self._contains_preference_signal(conversation[-1]):
return True
# 条件3:距离上次记忆更新已超过阈值
if self._time_since_last_update() > timedelta(hours=1):
return True
return False
def generate_nudge(self, conversation: list) -> str:
"""生成提醒内容"""
return (
"Consider whether any information from this conversation "
"should be persisted to MEMORY.md or USER.md. "
"If yes, use the memory_manager tool to update."
)
4. 实战1:本地部署 Hermes Agent
4.1 一键安装
bash
# 官方安装脚本(支持 Linux/macOS/WSL2)
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
# 验证安装
hermes --version
# 输出:hermes-agent v0.11.0
4.2 配置模型提供商
bash
# 交互式选择模型
hermes model
# 支持的提供商:
# 1. Anthropic Claude(推荐)
# 2. OpenAI GPT
# 3. OpenRouter(200+ 模型)
# 4. Google Gemini
# 5. Hugging Face
# 6. Custom Endpoint(如 Ollama)
# 在会话中切换模型
/model claude-sonnet-4
/model openrouter:anthropic/claude
/model custom:qwen-2.5
# 使用本地模型(零 API 费用)
# 先安装 Ollama,然后在 Hermes 中选择 Custom Endpoint
hermes model # 选择 "Custom Endpoint" → 填入 Ollama 地址
4.3 配置 API Key
bash
# 方式1:环境变量
export ANTHROPIC_API_KEY=sk-ant-xxxxxxxx
export OPENAI_API_KEY=sk-xxxxxxxx
# 方式2:配置文件
cat > ~/.hermes/config.yaml << EOF
providers:
anthropic:
api_key: sk-ant-xxxxxxxx
default_model: claude-sonnet-4
openrouter:
api_key: sk-or-xxxxxxxx
default_model: anthropic/claude-sonnet-4
agent:
name: PySuper-Assistant
model: anthropic:claude-sonnet-4
max_context_tokens: 128000
enable_skill_creation: true
enable_memory_nudge: true
evaluation_interval: 15 # 每15次工具调用触发自评估
EOF
4.4 启动
bash
# 交互式终端
hermes
# 一次性查询
hermes chat -q "你好,列出你可用的工具"
# 运行全量配置向导
hermes setup
# 诊断环境问题
hermes doctor
4.5 Docker 部署
bash
# 初始化配置
mkdir -p ~/.hermes
docker run -it --rm -v ~/.hermes:/opt/data nousresearch/hermes-agent setup
# 网关模式持久运行
docker run -d \
--name hermes \
--restart unless-stopped \
-v ~/.hermes:/opt/data \
-e ANTHROPIC_API_KEY=sk-ant-xxxxxxxx \
nousresearch/hermes-agent gateway run
5. 实战2:体验自进化闭环
5.1 场景:让 Hermes 完成一个复杂的代码审查任务
bash
# 启动 Hermes
hermes
# 发送任务
你: "帮我审查 src/api/routes.py 这个文件的代码质量,
重点关注安全漏洞和性能问题,
最后生成一份审查报告"
5.2 观察自进化过程
plaintext
┌──────────────────────────────────────────────────────────────┐
│ Hermes 自进化闭环实录 │
│ │
│ [工具调用 1-5] 读取文件、分析代码结构 │
│ [工具调用 6-10] 安全扫描、性能分析 │
│ [工具调用 11-15] 生成审查报告 │
│ │
│ ══════ 自评估检查点(15次工具调用后)══════ │
│ │
│ Hermes: "我完成了代码审查任务。让我评估一下: │
│ - 我使用了 5 个工具,成功 5 个 │
│ - 我发现 3 个安全漏洞和 2 个性能问题 │
│ - 这个审查流程是可复用的 │
│ → 决定:创建 Skill" │
│ │
│ [自动创建 Skill] │
│ ~/.hermes/skills/code-review-automation.md │
│ │
│ 内容: │
│ --- │
│ name: code-review-automation │
│ description: | │
│ Automated code review covering security vulnerabilities │
│ and performance issues. Generates structured report. │
│ Use when user asks to 'review code', 'audit', 'check'. │
│ --- │
│ # Code Review Automation │
│ ## Procedure │
│ 1. Read target file(s) │
│ 2. Run security scan (check SQL injection, XSS, ...) │
│ 3. Analyze performance (check N+1 queries, ...) │
│ 4. Generate structured report with severity ratings │
│ ## Common Findings │
│ - SQL injection in f-string queries │
│ - Missing error handling in API routes │
│ - N+1 queries in ORM usage │
│ │
│ ══════ 下次使用 ═══════ │
│ │
│ 你: "审查另一个文件" │
│ Hermes: [自动加载 code-review-automation Skill] │
│ → 不需要重新学习审查流程 │
│ → 直接执行,更快更准确 │
└──────────────────────────────────────────────────────────────┘
5.3 Skill 的渐进改进
bash
# 第二次使用 Skill 时发现新问题
你: "审查 src/api/auth.py,特别关注认证逻辑"
# Hermes 发现 Skill 中没有"认证逻辑审查"步骤
# → 自动修补 Skill
# ~/.hermes/skills/code-review-automation.md 更新
skill_manage(action="patch",
name="code-review-automation",
old_text="3. Analyze performance (check N+1 queries, ...)",
new_text="3. Analyze performance (check N+1 queries, ...)
4. Review authentication logic (check token handling, session management,
password hashing) — added 2026-05-15 after auth review task")
6. SKILL.md 自生成机制
6.1 触发条件
据 Hermes Agent 源码中的 skill_utils.py,Skill 创建的触发条件:
python
async def evaluate_skill_creation(
self,
user_message: str,
assistant_response: str,
response_length: int,
tool_calls_made: list
) -> SkillCreationDecision:
"""
决定是否创建新 Skill 的启发式规则:
1. 响应长度 > 200 Token(太短不值得封装)
2. 包含可复用的代码模式
3. 多个工具调用以非显而易见的方式编排
4. 用户询问的是一个通用模式(非一次性)
5. 没有已存在的相似 Skill(相似度 > 0.8)
"""
if response_length < 200:
return SkillCreationDecision(create=False)
# 检查是否已有相似 Skill
similar = self.find_similar_skill(user_message, threshold=0.8)
if similar:
# 扩展现有 Skill 而非创建新的
return SkillCreationDecision(
create=False,
improve=similar,
improvement_type="extend"
)
# 让 LLM 评估并生成 Skill
decision = await self.llm.complete_json(
self._skill_creation_prompt(user_message, assistant_response),
model=self.fast_model # 用快速模型生成,节省成本
)
if decision["create"]:
await self._write_skill(decision["skill_content"])
return SkillCreationDecision(**decision)
6.2 生成流程
plaintext
┌──────────────────────────────────────────────────────────────┐
│ SKILL.md 自生成流程 │
│ │
│ 5+ 次工具调用 │
│ │ │
│ ▼ │
│ 自评估检查点 │
│ "这段经验值得提炼吗?" │
│ │ │
│ ├── 否 → 结束(不创建 Skill) │
│ │ │
│ └── 是 → 检查相似 Skill │
│ │ │
│ ├── 已有相似 Skill(>0.8) │
│ │ → 修补现有 Skill(patch) │
│ │ │
│ └── 无相似 Skill │
│ → 生成草稿 Skill │
│ → 存入 ~/.hermes/skills/ │
│ → 标记为"草稿"状态 │
│ │
│ 3 次复现验证 │
│ │ │
│ ▼ │
│ 草稿 Skill 被使用 3+ 次 → 自动提升为"正式" Skill │
│ 从未使用的草稿 → 定期清理时删除 │
└──────────────────────────────────────────────────────────────┘
7. Skill Curator:后台自动评分与修剪
7.1 Skill 生命周期
plaintext
┌──────────────────────────────────────────────────────────────┐
│ Skill 生命周期 │
│ │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ 草稿 │───▶│ 试用 │───▶│ 正式 │───▶│ 优化 │ │
│ │ Draft │ │ Trial │ │ Active │ │Refined │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ │
│ │ │ │
│ │ 3次复现验证后提升 │ │
│ │ │ │
│ └── 未使用 → 清理删除 ←── 使用率低 ←─────┘ │
│ 评分下降 │
└──────────────────────────────────────────────────────────────┘
7.2 Skill Curator 评分维度
python
class SkillCurator:
"""后台 Skill 质量管理器"""
def score_skill(self, skill: Skill) -> float:
"""对 Skill 进行多维度评分(0-100)"""
scores = {
# 使用频率(40% 权重)
"usage_frequency": self._calc_usage_frequency(skill),
# 成功率(30% 权重)
"success_rate": self._calc_success_rate(skill),
# Token 效率(15% 权重)
"token_efficiency": self._calc_token_efficiency(skill),
# 新鲜度(15% 权重)
"freshness": self._calc_freshness(skill),
}
weights = {
"usage_frequency": 0.40,
"success_rate": 0.30,
"token_efficiency": 0.15,
"freshness": 0.15,
}
return sum(scores[k] * weights[k] for k in scores)
def _calc_usage_frequency(self, skill: Skill) -> float:
"""使用频率评分:最近 7 天被使用的次数"""
recent_uses = skill.usage_count_last_7_days
if recent_uses == 0:
return 0.0
elif recent_uses < 3:
return 40.0
elif recent_uses < 10:
return 70.0
else:
return 100.0
def _calc_success_rate(self, skill: Skill) -> float:
"""成功率评分:使用后用户是否满意"""
return skill.successful_uses / max(skill.total_uses, 1) * 100
def _calc_token_efficiency(self, skill: Skill) -> float:
"""Token 效率评分:使用 Skill 是否比不用更省 Token"""
baseline = skill.avg_tokens_without_skill
with_skill = skill.avg_tokens_with_skill
if baseline == 0:
return 50.0
savings = (baseline - with_skill) / baseline * 100
return min(savings, 100.0)
def _calc_freshness(self, skill: Skill) -> float:
"""新鲜度评分:最近一次更新的时间"""
days_since_update = (datetime.now() - skill.last_updated).days
if days_since_update < 7:
return 100.0
elif days_since_update < 30:
return 70.0
elif days_since_update < 90:
return 40.0
else:
return 10.0
7.3 自动修剪策略
python
async def prune_skills(self):
"""定期修剪低效 Skill"""
all_skills = self.load_all_skills()
for skill in all_skills:
score = self.score_skill(skill)
if score < 20:
# 严重低效:直接删除
await self.delete_skill(skill.name)
logger.info(f"Deleted low-score skill: {skill.name} (score: {score})")
elif score < 40:
# 效率不高:标记为需要改进
skill.needs_improvement = True
await self.save_skill(skill)
logger.info(f"Marked skill for improvement: {skill.name} (score: {score})")
# 合并相似的 Skill
similar = self.find_similar_skills(skill, threshold=0.85)
if len(similar) > 1:
merged = await self.merge_skills(similar)
logger.info(f"Merged {len(similar)} similar skills into: {merged.name}")
8. 持久记忆:多后端与跨会话召回
8.1 多后端支持
plaintext
┌──────────────────────────────────────────────────────────────┐
│ Hermes 记忆后端 │
├──────────────┬──────────────────────────────────────────────┤
│ 后端 │ 适用场景 │
├──────────────┼──────────────────────────────────────────────┤
│ SQLite + FTS5│ 默认后端,零配置,单用户 │
│ │ FTS5 全文搜索,200-500 字 LLM 摘要 │
├──────────────┼──────────────────────────────────────────────┤
│ PostgreSQL │ 生产环境,支持 pgvector 语义搜索 │
│ │ 适合大规模部署 │
├──────────────┼──────────────────────────────────────────────┤
│ Redis │ 高频读写场景,缓存层 │
│ │ 通常与 PostgreSQL 配合使用 │
├──────────────┼──────────────────────────────────────────────┤
│ Milvus 2.6 │ 语义搜索增强,解决 FTS5 关键词匹配局限 │
│ (第三方集成) │ 向量检索 + BM25 混合搜索 │
└──────────────┴──────────────────────────────────────────────┘
8.2 FTS5 的局限与 Milvus 增强
据《How to Fix Hermes Agent's Learning Loop with Milvus 2.6 Hybrid Search》(https://milvus.io/blog/hermes-agent-learning-loop-milvus-hybrid-search.md),FTS5 的核心局限是:
When users phrase the same intent differently across sessions, FTS5 misses the match. The Learning Loop doesn't fire. No new Skill gets written.
翻译:当用户在不同会话中用不同的措辞表达相同意图时,FTS5 无法匹配。学习闭环无法触发,不会生成新的 Skill。
Milvus 2.6 的混合搜索(向量检索 + BM25)解决了这个问题:
python
# Milvus 混合搜索配置
from pymilvus import MilvusClient, AnnSearchRequest
# 创建集合(同时支持稠密向量和 BM25 稀疏向量)
schema = MilvusClient.create_schema(auto_id=True)
schema.add_field("id", DataType.INT64, is_primary=True)
schema.add_field("text", DataType.VARCHAR, max_length=65535)
schema.add_field("dense_vector", DataType.FLOAT_VECTOR, dim=1024)
schema.add_field("sparse_vector", DataType.SPARSE_FLOAT_VECTOR)
# 混合搜索:向量检索(语义匹配)+ BM25(精确关键词)
search_req_dense = AnnSearchRequest(
data=[query_embedding],
anns_field="dense_vector",
param={"metric_type": "COSINE"},
limit=20
)
search_req_sparse = AnnSearchRequest(
data=[bm25_query],
anns_field="sparse_vector",
param={"metric_type": "IP"},
limit=20
)
# Reciprocal Rank Fusion 合并结果
results = client.hybrid_search(
collection_name="hermes_memory",
reqs=[search_req_dense, search_req_sparse],
ranker=RRFRanker(),
limit=10
)
9. SOUL.md:活的身份文档
9.1 什么是 SOUL.md
SOUL.md 是 Hermes Agent 的"身份文档"——它定义了 Agent 是谁、怎么说话、遵循什么原则。关键在于,SOUL.md 会随着使用而进化。
markdown
---
name: PySuper-Assistant
created: 2026-05-01
last_evolved: 2026-05-15
evolution_count: 7
---
# Soul: PySuper-Assistant
## Identity
I am a technical assistant focused on Python and AI engineering.
I prioritize practical solutions over theoretical explanations.
## Communication Style
- Use Chinese when the user writes in Chinese
- Be concise: no fluff, no filler phrases
- Use code examples to explain concepts
- Acknowledge uncertainty rather than guessing
## Values
- Correctness over speed
- Security over convenience
- Simplicity over cleverness
- Teaching over doing-it-for-you
## Boundaries
- Never execute destructive commands without explicit confirmation
- Never share API keys or credentials
- Never modify files outside the workspace
## Learned Preferences
- User prefers type hints in all Python code (learned 2026-05-03)
- User uses `uv` instead of `pip` (learned 2026-05-05)
- User prefers `pytest` over `unittest` (learned 2026-05-08)
- User's projects use `ruff` for linting (learned 2026-05-12)
- User writes commit messages in English (learned 2026-05-15)
9.2 SOUL.md 的进化机制
plaintext
用户说: "我习惯用 uv 管理依赖"
│
▼
Nudge Engine 检测到偏好信号
│
▼
更新 SOUL.md:
"Learned Preferences" 部分添加:
"- User uses `uv` instead of `pip` (learned 2026-05-05)"
│
▼
下次对话中,Hermes 自动使用 uv 而非 pip
10. 多执行后端:本地 / Docker / SSH / Modal / Daytona
plaintext
┌──────────────────────────────────────────────────────────────┐
│ Hermes 执行后端 │
├──────────────┬──────────────────────────────────────────────┤
│ 后端 │ 特点 │
├──────────────┼──────────────────────────────────────────────┤
│ 本地终端 │ 直接在本机执行命令 │
│ │ 最快,但安全风险最高 │
├──────────────┼──────────────────────────────────────────────┤
│ Docker │ 容器沙箱隔离 │
│ │ 只读根文件系统、降权、PID 限制 │
│ │ 推荐:生产环境首选 │
├──────────────┼──────────────────────────────────────────────┤
│ SSH Remote │ 在远程服务器上执行 │
│ │ 适合需要特定环境的场景 │
├──────────────┼──────────────────────────────────────────────┤
│ Modal │ 云端 Serverless 执行 │
│ │ 按需付费,弹性扩缩 │
│ │ 适合 GPU 密集型任务 │
├──────────────┼──────────────────────────────────────────────┤
│ Daytona │ 开发环境管理平台 │
│ │ 预配置环境,支持团队协作 │
└──────────────┴──────────────────────────────────────────────┘
10.1 配置执行后端
bash
# 交互式选择
hermes setup # → 选择 Terminal Backend
# 或在配置文件中指定
cat >> ~/.hermes/config.yaml << EOF
execution:
backend: docker
docker:
image: python:3.12-slim
memory: 512m
cpus: 1.0
network: none
read_only: true
EOF
11. 与 OpenClaw 哲学分歧
plaintext
┌──────────────────────────────────────────────────────────────┐
│ 哲学分歧:自进化运行时 vs 控制面 │
│ │
│ OpenClaw 的立场: │
│ "AI 应该是工具,人是控制者" │
│ - 手动安装 Skill │
│ - 审批敏感操作 │
│ - 审计日志记录所有行为 │
│ - 类比:企业 IT(严格管控) │
│ │
│ Hermes 的立场: │
│ "AI 应该是同事,它需要自我成长" │
│ - 自动生成 Skill │
│ - 自我评估并改进 │
│ - 记忆随使用进化 │
│ - 类比:初创公司(快速迭代) │
│ │
│ 真相: │
│ 两者不是互斥的。OpenClaw 也在加入自进化特性, │
│ Hermes 也在加强安全控制。2026 年底, │
│ 两者会越来越像。 │
│ │
│ 当下的选择: │
│ ┌──────────────────┬──────────────────┐ │
│ │ 选 OpenClaw │ 选 Hermes │ │
│ │ 如果你需要: │ 如果你需要: │ │
│ │ • 审计合规 │ • 自适应学习 │ │
│ │ • 团队共享 │ • 个人效率 │ │
│ │ • 可控可预测 │ • 探索性工作 │ │
│ │ • 企业部署 │ • 研究实验 │ │
│ └──────────────────┴──────────────────┘ │
└──────────────────────────────────────────────────────────────┘
12. 踩坑记录
坑1:FTS5 搜索不到跨会话相似任务
问题 :你昨天让 Hermes "分析数据",今天说"处理数据",FTS5 匹配不上,闭环不触发。
解决 :集成 Milvus 2.6 混合搜索(参见第 8 章),或在 Skill 的 trigger_phrases 中覆盖更多同义词。
坑2:自动生成的 Skill 质量不稳定
问题 :有些自动生成的 Skill 太笼统,触发后执行效果不好。
解决 :
bash
# 手动编辑 Skill
vim ~/.hermes/skills/my-skill.md
# 或禁止自动创建 Skill
hermes config set agent.enable_skill_creation false
# 仅保留手动确认
hermes config set agent.skill_creation_mode confirm
坑3:SOUL.md 进化导致行为漂移
问题 :SOUL.md 积累了太多"Learned Preferences",Agent 行为逐渐偏离预期。
解决 :
bash
# 查看 SOUL.md
cat ~/.hermes/SOUL.md
# 手动清理过时的偏好
vim ~/.hermes/SOUL.md
# 重置 SOUL.md
hermes soul reset
坑4:Docker 沙箱中无法访问宿主文件
问题 :使用 Docker 执行后端时,Agent 无法读写宿主机上的文件。
解决 :
yaml
# 在配置中挂载宿主目录
execution:
backend: docker
docker:
volumes:
- /home/user/projects:/workspace:rw
坑5:模型上下文长度不足
问题 :Hermes 要求底层模型至少支持 64K Token 上下文,但有些模型不满足。
解决 :
bash
# 检查模型上下文长度
hermes doctor
# 切换到支持长上下文的模型
/model anthropic:claude-sonnet-4 # 200K context
/model openrouter:google/gemini-2.5-pro # 1M context
13. 总结与展望
Hermes 的核心突破
Hermes Agent 的核心突破不是技术栈多先进,而是**理念转变 **——从"每次从零开始"到"越用越聪明"。闭环学习让 Agent 真正具备了"经验积累"能力。
2026 年的 Hermes 生态
据 Hermes Agent v0.11.0 Release Notes(https://github.com/NousResearch/hermes-agent/releases),Hermes 的演进速度惊人:
v0.1.0 → v0.11.0:1,556 commits,761 merged PRs,1,314 files changed
新增 React/Ink TUI、AWS Bedrock 支持、5 个新推理路径、第 17 个消息平台(QQBot)
GEPA 自我进化系统(DSPy + Genetic-Pareto Prompt Evolution)正在 Phase 1
自进化的未来
Hermes 的自进化机制正在从 Skill 层面扩展到更深层次:
Phase 1 (已实现):Skill 文件自动进化
Phase 2 (计划中):工具描述自动优化
Phase 3 (计划中):系统提示自动调优
Phase 4 (计划中):工具实现代码自动进化
Phase 5 (计划中):持续改进闭环自动化
自进化是 Agent 的终局。Hermes 正在证明:AI Agent 不只是工具,是可以成长的数字同事。
本文作者 :PySuper | 来源 :zhengxingtao.com
参考资源:
Hermes Agent 官网:https://www.hermes-agent.org/
Hermes Agent 中文站:https://hermesagentai.cn
Hermes Self-Evolution:https://github.com/NousResearch/hermes-agent-self-evolution
How Hermes Gets Better Over Time:https://hermes-agent.ai/blog/self-improving-ai-guide
评论区