Agent持续演进

预计学习时间:50分钟

并非所有场景都需要训练模型。通过记忆系统、经验沉淀和技能库,Agent 可以在不更新权重的情况下持续改进——OpenClaw 的 Markdown 记忆与 Hermes 的 Learning Loop 代表了两种典型路径。

为什么需要「无训练」的持续改进

Agentic RL 效果好,但门槛高:需要可交互环境、奖励函数设计、大量算力。多数团队更现实的路径是:

路径成本见效速度适用场景
工程化记忆与技能低快(当次/下次会话)个人助手、编码 Agent、垂直客服
Prompt / 工具 Schema 迭代低中(需 benchmark 回归)所有 Agent
RAG 知识库扩充中中领域问答、企业知识
Agentic RL 微调高慢(需训练周期)复杂决策、大规模部署

本节聚焦前三种:让 Agent 从使用中学习,而不动模型参数。

经验沉淀的核心模式

无论 OpenClaw 还是 Hermes,「越用越好」都依赖同一抽象:

执行任务 → 记录轨迹 → 提取模式 → 持久化存储 → 下次任务检索注入

差异在于:谁写记忆、写什么格式、何时触发更新。

三种记忆类型

类型存什么生命周期示例
情景记忆(Episodic)单次任务的完整轨迹短期,可归档本次改 bug 试了哪几步
语义记忆(Semantic)事实、偏好、项目约定长期用户喜欢用 pytest、项目用 monorepo
程序记忆(Procedural)可复用的工作流/技能长期,可迭代「发布前检查清单」Skill

OpenClaw 式记忆:人工可读的文件系统

OpenClaw 将记忆存为纯 Markdown 文件,透明、可编辑、可版本控制。

核心文件

文件作用
SOUL.mdAgent 人格、语气、行为边界
USER.md用户画像、偏好、常用上下文
MEMORY.md跨会话持久笔记,Agent 主动整理
skills/人工编写的可复用技能(工作流说明)

工作机制

  1. 每次会话启动时,框架将上述文件注入 system context
  2. Agent 执行任务过程中,可将重要信息写回 MEMORY.md
  3. 通过 SQLite 向量 + 关键词检索,在长记忆中查找相关内容
  4. Skills 从 workspace / personal / shared / plugin 多作用域加载

优势与局限

优势:完全透明,开发者可直接编辑纠错;无额外训练成本;适合「人主导、Agent 辅助」的工作流。

局限:记忆更新依赖 Agent 自觉写入或人工维护;不会自动从失败中提炼技能;跨会话记忆需手动配置 MEMORY.md 才会稳定生效。

实践:手动沉淀失败与成功经验

即使不用 OpenClaw,也可在任意 Agent 项目中复用此模式:

# MEMORY.md

## 成功经验
- 2025-06-18: 修改 Next.js 路由时,需同时更新 Sidebar.tsx 和 page.mdx,否则导航 404
- 部署前运行 `npm run build` 比 `npm run dev` 更能发现 MDX 语法错误

## 失败教训
- 不要在 tool description 里写负面约束(「不要用 X」),Qwen 反而会频繁调用 X
- Bash 工具输出超过 8k 字符时应截断,否则撑爆上下文导致后续 tool call 失败

## 项目约定
- 提交信息用中文,focus on why not what
- 新页面必须同步更新 Sidebar.tsx

OpenClaw 的 MEMORY.md 需要 Agent 或用户主动维护。如果从不写入,跨会话「越用越好」的效果有限——这是与 Hermes 自动 Learning Loop 的核心区别。

Hermes 式 Learning Loop:自动技能提炼

Hermes Agent(Nous Research)将自我改进作为架构中心,形成 observe → distill → reuse → refine 闭环。

Learning Loop 流程

1. Observe   跟踪多步任务轨迹(每次 tool call、分支、用户纠正)
2. Distill   相似任务成功 3+ 次后,自动生成 SKILL.md
3. Reuse     下次匹配任务时,渐进式加载技能(先看描述,命中再读全文)
4. Refine    使用中根据反馈 patch 技能;每 15 个任务 Curator 整理归档

与 OpenClaw Skills 的关键区别

维度OpenClaw SkillsHermes Skills
来源人工编写从完成任务中自动提取
格式Markdown 工作流说明SKILL.md(兼容 agentskills.io 标准)
更新人工编辑Agent 用 skill_manage 自行 patch
加载全量或按 scope渐进式披露(描述 ~3k tokens,命中才加载全文)
用户纠正写入 MEMORY(需配置)纳入 episodic memory,影响下次 distill

渐进式技能加载

Hermes 将所有技能描述保持在约 3k tokens 以内;仅当任务匹配时才加载完整 SKILL.md。这样技能库增长不会线性推高每次请求的 token 成本。

# 技能目录 ~/.hermes/skills/
deploy-check/SKILL.md      # 仅 name+description 常驻上下文
code-review/SKILL.md       # 命中「review PR」时才加载全文
data-pipeline/SKILL.md

可选:轨迹导出用于 RL

Hermes 集成 Atropos RL 管道,可将交互轨迹导出为 ShareGPT 格式,用于 DPO/RLHF 微调。这意味着 Learning Loop 是无训练改进的主路径,同时为将来训练留下数据资产。

不训练模型的完整改进方案

方案一:会话内自我反思(Session Reflection)

任务结束后,用一次额外 LLM 调用总结本次成败,写入记忆文件:

def reflect_and_save(trajectory, memory_path="MEMORY.md"):
    reflection_prompt = f"""
    分析以下 Agent 任务轨迹,提取:
    1. 做对了什么(可复用的模式)
    2. 做错了什么(需避免的坑)
    3. 下次类似任务的建议

    轨迹摘要:
    {summarize_trajectory(trajectory)}
    """
    reflection = llm.generate(reflection_prompt)
    append_to_memory(memory_path, reflection)

成本低、实现简单,适合每次重要任务后自动触发。

方案二:失败驱动的规则沉淀

监控 tool call 失败率,自动记录高频错误模式:

失败类型自动沉淀为
同一工具连续 3 次参数错误该工具的参数示例补充到 Schema description
edit_file 匹配失败MEMORY.md 记录「该文件需先 read 再 edit」
上下文超长截断调低单次 tool_result 最大长度

方案三:Benchmark 回归 + Prompt 版本管理

将 6.1 benchmark 与 Prompt 版本绑定:

  1. 每次修改 system prompt / 工具描述 / AGENTS.md 后跑回归集
  2. 对比 task 完成率、tool call 准确率、平均轮数
  3. 仅当指标不降时才合并到生产配置

这比「感觉变好了」更可靠,且完全不涉及模型训练。

方案四:RAG 增强领域知识

对静态领域知识(API 文档、内部规范、历史工单),用向量库检索注入上下文。Agent 本身不变,但每次看到的知识更新,等效于「变聪明了」。

方案五:用户反馈闭环

用户对回复点 👎 → 记录 (query, trajectory, correction)
                → 定期人工审核 → 写入 MEMORY / 更新 Skill
                → 或积累为 SFT 数据集(将来可选微调)

OpenClaw vs Hermes:如何选择

你的需求推荐
完全掌控记忆内容,愿意手动维护OpenClaw 式 MEMORY.md
希望 Agent 自动从完成任务中学习技能Hermes Learning Loop
编码项目,团队共享约定AGENTS.md / CLAUDE.md(OpenCode/Claude Code)
企业合规,记忆必须可审计可编辑Markdown 文件 + Git 版本管理
长期要走向模型微调Hermes 轨迹导出 + Agent微调

两条路径并不互斥:可用 OpenClaw 式透明记忆做「人工审核层」,用 Hermes 式自动 distill 做「候选技能生成」,审核通过后再写入正式 Skills 目录。

与 Agent 微调的关系

手段改什么何时用
记忆 / Skills / Prompt上下文与行为引导立刻、低成本、可逆
拒绝采样 SFT用高质量轨迹蒸馏到大模型有 RL 轨迹、想迁移到更大模型
Agentic RL模型权重有环境+奖励+算力,需策略级优化

工程上推荐路径:先靠记忆和 Prompt 跑到 benchmark 瓶颈 → 积累轨迹 → 再考虑 SFT 或 Agentic RL。跳过前两步直接训练,往往事倍功半。

小结

让 Agent 越用越好,不一定需要训练模型:

  1. 透明记忆(SOUL/USER/MEMORY/AGENTS.md)—— 人可读、可编辑、零成本
  2. 自动技能提炼(Hermes Learning Loop)—— 从成功任务中生成可复用 SKILL.md
  3. 会话反思与失败沉淀—— 任务结束后总结,写入持久记忆
  4. Benchmark 回归—— 量化 Prompt 改动效果,避免「感觉更好」的错觉

下一节可继续学习 Agent微调,在工程优化触及天花板后,通过 Agentic RL 从权重层面提升决策能力。

Keep Hungry · 大模型笔记