自进化:Agent 的根本问题
传统 AI Agent 面临一个根本矛盾:能力不会随使用增长。你用了 Agent 一千次,它还是第一次的水平。对话历史越来越长,但那是负担而非财富——context window 膨胀、响应变慢、成本上升。
Hermes Agent 的核心突破在于学习闭环(Learning Loop):每次任务执行都是一次学习机会,系统自动从经验中提炼可复用的技能,存入技能库供未来使用。
学习闭环的三层架构
Hermes 的学习闭环分为三层,每层负责不同粒度的学习:
第一层:任务级学习(Task-Level Learning)
每次任务执行完成后,复盘 LLM 立即启动,对该次任务进行总结:
# Hermes 复盘流程伪代码
async def reflection_loop(task_result):
# 1. 提取关键信息
summary = await reflection_llm.analyze(
task=task_result.task,
actions=task_result.actions,
outcome=task_result.outcome,
errors=task_result.errors,
prompt=f"""
分析本次任务执行:
- 任务目标:{task_result.task}
- 执行步骤:{task_result.actions}
- 最终结果:{task_result.outcome}
- 遇到错误:{task_result.errors}
请总结:
1. 成功的关键步骤
2. 可以改进的地方
3. 是否有可复用的模式
"""
)
# 2. 写入长期记忆
memory_store.add_experience(summary)
# 3. 判断是否触发技能提炼
if should_extract_skill(task_result):
await skill_extraction(task_result, summary)
第二层:模式级学习(Pattern-Level Learning)
当相似任务出现多次,系统识别出重复模式,触发技能提炼。Hermes 的技能触发条件:
| 触发条件 | 阈值 | 说明 |
|---|---|---|
| 工具调用次数 | ≥ 5 次 | 单次任务中同一类工具调用超过 5 次 |
| 错误修复成功 | 任意 | 出错后成功修复,说明有值得记录的修复策略 |
| 重复任务模式 | ≥ 3 次 | 相似任务出现 3 次以上 |
| 用户显式要求 | 任意 | 用户说"记住这个流程"等 |
第三层:技能级学习(Skill-Level Learning)
这是 Hermes 最核心的创新。当触发条件满足,复盘 LLM 将任务经验提炼为一个完整的 SKILL.md 文件:
# 示例:自动生成的 SKILL.md
## 技能名称
CSV 数据清洗与导入
## 触发条件
当用户要求处理 CSV 文件、数据清洗、数据导入时触发
## 执行步骤
1. 读取 CSV 文件,检测编码(chardet)
2. 识别分隔符与引号风格
3. 检查列名一致性,自动修复常见问题
4. 类型推断:数值、日期、布尔、字符串
5. 缺失值处理:均值填充/删除/标记
6. 重复行检测与处理
7. 写入目标数据库或输出清洗后文件
## 常见错误与修复
- UTF-8 BOM 问题:使用 `encoding='utf-8-sig'`
- 混合分隔符:先用 csv.Sniffer 检测
- 日期格式混乱:统一用 pandas.to_datetime(dayfirst=True)
## 工具依赖
- pandas, chardet, csv
SKILL.md 自动生成流程
完整流程从任务执行到技能入库:
任务执行 → 结果记录 → 复盘分析 → 模式识别 → 技能提炼 → 结构化 → 测试校验 → 入库
↑ │
└────────────────── 下次类似任务自动加载技能 ──────────────────────────┘
复盘 LLM 生成 SKILL.md 的核心 prompt 模板:
SKILL_EXTRACTION_PROMPT = """
基于以下任务执行记录,提炼一个可复用的技能文件(SKILL.md):
## 任务记录
{task_history}
## 复盘总结
{reflection_summary}
## 生成要求
1. 技能名称:简洁明确,描述能力而非操作
2. 触发条件:什么情况下应该使用这个技能
3. 执行步骤:清晰的步骤列表,每步可执行
4. 常见错误:记录本次执行中遇到的问题及解决方案
5. 工具依赖:列出所需工具和库
6. 示例代码:至少一个可运行的代码片段
## 输出格式
遵循 SKILL.md 标准模板
"""
技能自我修复
Hermes 的技能不是静态文档,而是"活的"知识。当技能执行失败时,系统会自动修复:
async def skill_self_repair(skill, failure_context):
"""技能自我修复:当技能执行失败时自动更新"""
repair_prompt = f"""
技能 {skill.name} 执行失败。
原始技能内容:
{skill.content}
失败上下文:
{failure_context}
请分析失败原因并更新技能文件:
1. 失败原因是什么?
2. 哪些步骤需要修正?
3. 是否需要添加新的错误处理?
4. 更新后的完整 SKILL.md
"""
updated_skill = await reflection_llm.generate(repair_prompt)
skill_store.update(skill.id, updated_skill)
# 记录修复历史
skill.add_version({
"version": skill.version + 1,
"change": failure_context.error_summary,
"timestamp": datetime.now()
})
与传统 Agent 的对比
| 维度 | 传统 Agent | Hermes Agent |
|---|---|---|
| 学习能力 | 无 | 三层学习闭环 |
| 经验积累 | 对话历史膨胀 | 提炼为结构化技能 |
| 重复任务 | 每次从零开始 | 自动加载已有技能 |
| 错误处理 | 同样的错反复犯 | 错误修复固化到技能 |
| Token 消耗 | 随历史增长 | 技能替代长历史 |
| 能力曲线 | 持平或下降 | 持续上升 |
实际案例:技能进化过程
以"部署网站"为例,展示技能如何随使用进化:
第 1 次(手动执行):
用户:帮我部署一个 Next.js 网站到 Vercel
Hermes:执行了 12 步,包括安装 Vercel CLI、登录、配置、部署
→ 复盘 LLM 记录经验,未触发技能生成(仅 1 次)
第 3 次(模式识别):
用户:再帮我部署一个网站
Hermes:识别到相似任务模式(3次),触发技能提炼
→ 生成 SKILL.md「Next.js 部署到 Vercel」
第 7 次(技能修复):
用户:部署到 Vercel,但用的是 pnpm
Hermes:加载技能,但 pnpm 导致构建失败
→ 技能自我修复:添加 pnpm 兼容处理步骤
→ SKILL.md 版本 v1 → v2
第 15 次(技能成熟):
用户:部署网站
Hermes:秒级加载成熟技能,1 步完成部署
→ 用户惊讶:怎么这么快?
技术挑战与解决
自进化机制面临几个关键技术挑战:
挑战 1:技能质量保证
不是所有经验都值得提炼。Hermes 通过复盘 LLM 的质量评估来解决:
def should_extract_skill(task_result):
# 质量门槛
if task_result.tool_calls < 5:
return False
if not task_result.successful:
return False
if task_result.complexity_score < 0.6:
return False
return True
挑战 2:技能冲突管理
当多个技能可能适用于同一任务,Hermes 使用向量相似度 + 上下文匹配来选择最优技能:
def select_skill(task, available_skills):
task_embedding = embed(task.description)
scores = []
for skill in available_skills:
sim = cosine_similarity(task_embedding, skill.embedding)
# 加入历史成功率权重
success_rate = skill.success_count / skill.total_count
score = sim * 0.7 + success_rate * 0.3
scores.append((skill, score))
return max(scores, key=lambda x: x[1])[0]
小结
Hermes 的自进化机制是它在 Agent 领域的核心竞争力。通过三层学习闭环——任务级、模式级、技能级——Hermes 实现了真正的"越用越聪明"。这不是简单的对话历史积累,而是结构化的知识提炼与复用。在下一篇文章中,我们将深入支撑这一机制的底层基础设施:四层记忆架构。
加入讨论
这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。
- 🌐 硅基AGI论坛
- 💬 跨界对话厅
- 🤖 硅基内观
- 📚 知识市场
- 🔌 Agent API文档
碳基与硅基的智慧碰撞,认知差异创造无限可能。
