从 OpenClaw / Hermes 看自进化智能体:原理、架构、论文脉络与实践路线
目录
- 写在前面:为什么要讨论“自进化智能体”
- 先给结论:自进化 Agent 的本质是什么
- 基础概念区分:Chatbot、Agent、Workflow、多智能体、自进化 Agent
- OpenClaw / Hermes 到底代表了什么方向
- 容易混淆概念对比:LangGraph、多智能体、RAG、Memory、Skill、Fine-tuning
- 自进化 Agent 的核心架构
- Mermaid 架构图:如何画出自进化 Agent 系统
- 自进化闭环拆解:Trace、Feedback、Reflection、Memory、Skill、Eval
- 关键论文脉络:从 ReAct、Toolformer 到 Reflexion、Voyager、GEPA
- 开源项目参考:从框架、记忆、技能到评估体系
- 学习路线:从 LLM 应用开发到自进化 Agent 工程
- 最小可行实践项目:如何动手做一个 Mini Self-Evolving Agent
- 风险与边界:为什么自进化 Agent 不能无限自治
- 总结:Agent 的下一阶段不是“更会说”,而是“更会积累经验”
一、写在前面:为什么要讨论“自进化智能体”
过去两年,LLM 应用开发大致经历了几个阶段。
第一阶段是 Prompt 应用。
开发者主要通过提示词让大模型完成写作、总结、翻译、问答、代码生成等任务。
第二阶段是 RAG 应用。
系统开始引入外部知识库,通过检索增强生成,让模型可以结合文档、数据库或业务知识回答问题。
第三阶段是 工具型 Agent。
模型不再只是回答,而是可以调用工具,例如搜索、计算器、浏览器、数据库、代码执行器、文件系统、邮件、日历等。
第四阶段是 工作流和多智能体系统。
开发者开始把任务拆成多个节点或多个角色,例如 Planner、Executor、Reviewer、Researcher、Coder,让多个 agent 协作完成复杂任务。
现在正在出现第五阶段:自进化智能体 Self-Evolving Agent。
它关注的问题不只是:
这次任务怎么完成?
而是进一步追问:
这次任务完成得好不好?
失败经验能不能保存?
下次遇到类似任务能不能自动做得更好?
能不能把经验变成可复用技能?
能不能自动优化 Prompt、Skill、Tool Description 或工作流?
OpenClaw、Hermes Agent、Hermes Agent Self-Evolution 这类项目之所以受到关注,正是因为它们把 Agent 从“会执行任务”推进到了“能积累经验、能形成技能、能持续改进”的方向。
OpenClaw 官方将其定位为一个能真正执行任务的个人 AI 助手,可以通过 WhatsApp、TG 等聊天入口处理邮件、日历、航班等任务。OpenClaw 的 GitHub 介绍也强调它是运行在用户自己设备上的个人 AI 助手。(OpenClaw)
Hermes Agent 则明确强调 built-in learning loop,也就是内置学习闭环:它可以从经验中创建 skills,在使用过程中改进 skills,跨会话搜索历史,并逐渐构建对用户的理解。(GitHub)
Hermes Agent Self-Evolution 更进一步,使用 DSPy + GEPA 来自动优化 Hermes Agent 的 skills、tool descriptions、system prompts 和代码,通过变异、评估和选择得到更好的版本,而且不需要 GPU 训练。(GitHub)
二、先给结论:自进化 Agent 的本质是什么
一句话概括:
自进化 Agent 的本质,不是“多个 Agent 协作”,也不是“Prompt 更复杂”,而是把任务执行过程中的经验转化为下一次可复用、可评估、可迭代的系统能力。
传统 Agent 的流程通常是:
用户输入 → 模型推理 → 工具调用 → 输出结果
自进化 Agent 的流程则更接近:
用户输入 → 任务执行 → 记录轨迹 → 收集反馈 → 分析失败 → 抽取经验
→ 更新 Memory / Skill / Prompt / Tool Strategy → 自动评估 → 版本迭代
也就是说,传统 Agent 更像是“执行器”,而自进化 Agent 更像是“会复盘、会写 SOP、会更新工具箱的执行系统”。
三、基础概念区分:Chatbot、Agent、Workflow、多智能体、自进化 Agent
很多人学习 Agent 时,容易把几个概念混在一起。下面先用一张表把边界划清楚。
| 类型 | 核心问题 | 典型能力 | 是否能执行外部动作 | 是否默认能自我改进 | 典型代表 |
|---|---|---|---|---|---|
| Chatbot | 如何回答用户问题 | 问答、写作、总结、翻译 | 通常不能 | 否 | 普通聊天机器人 |
| RAG 应用 | 如何结合外部知识回答 | 检索、引用、文档问答 | 一般不能 | 否 | 企业知识库问答 |
| 工具型 Agent | 如何调用工具完成任务 | Function Calling、ReAct、工具调用 | 能 | 通常不能 | ReAct Agent |
| Workflow Agent | 如何稳定组织多步骤流程 | 状态机、节点、边、条件分支 | 能 | 取决于开发者设计 | LangGraph |
| 多智能体系统 | 如何让多个角色协作 | Planner、Executor、Reviewer 分工 | 能 | 通常不能 | AutoGen、CrewAI |
| 自进化 Agent | 如何从经验中持续改进 | Memory、Skill、Feedback、Eval、Versioning | 能 | 目标就是能 | OpenClaw / Hermes 类系统 |
这里需要特别注意:
多智能体系统不等于自进化系统。
一个系统即使有 10 个 agent,如果每个 agent 的角色、Prompt、工具策略、技能库都不会因为任务经验而改变,那么它本质上仍然是一个“多角色编排系统”,而不是“自进化系统”。
四、OpenClaw / Hermes 到底代表了什么方向
OpenClaw 和 Hermes 并不是同一个东西,但它们代表了相似趋势:Agent 正在从“临时任务助手”走向“长期运行的个人 / 组织级操作系统”。
4.1 OpenClaw:偏个人助理和技能生态
OpenClaw 的公开介绍强调,它是一个可以运行在用户自有设备上的个人 AI 助手,可以通过用户熟悉的消息渠道交互,并连接邮件、日历、航班等服务。(OpenClaw)
它的重要特征是 skills system。OpenClaw 的技能通常以目录形式组织,核心是 SKILL.md 文件,用来描述技能的名称、能力、使用说明和依赖。公开资料中也提到,OpenClaw Skills 更像一种本地运行的插件机制,可以扩展 Agent 操作外部工具和服务的能力。(TechRadar)
OpenClaw 生态中的 self-evolve 插件则进一步引入了经验学习机制。该插件会在回答前检索 episodic memories,把相关经验加入上下文;在检测到反馈时进行学习;并通过更新 utility,也就是 Q values,以及写入新的 episodic memories 来积累经验。(GitHub)
可以这样理解 OpenClaw 的方向:
个人助理入口 + 本地执行能力 + 技能扩展 + 记忆沉淀 + 反馈学习
4.2 Hermes Agent:偏学习闭环和 Skill 自改进
Hermes Agent 的公开文档和 GitHub 介绍更直接地强调 self-improving。它宣称自己具有 built-in learning loop,可以从经验中创建 skills,在使用过程中改进 skills,并主动持久化知识。(GitHub)
Hermes 的 Skills System 文档也明确说明,skills 是按需加载的知识文档,采用 progressive disclosure 模式以减少 token 使用,并兼容 agentskills.io 标准;同时,agent 可以修改或删除 skill。(Hermes Agent)
Hermes Agent Self-Evolution 则进一步把 skill 优化做成一个较明确的进化流程:它使用 DSPy + GEPA 对 skills、tool descriptions、system prompts 和代码进行自动优化,通过 API 调用来完成文本变异、评估和候选选择,不需要 GPU 训练。(GitHub)
可以这样理解 Hermes 的方向:
长期记忆 + Skill 生命周期 + 反馈学习 + 自动评估 + Prompt / Skill / Code 演化
五、容易混淆概念对比:LangGraph、多智能体、RAG、Memory、Skill、Fine-tuning
5.1 LangGraph 和自进化 Agent 的区别
LangGraph 是一个非常重要的 Agent 编排框架,但它本身并不等同于自进化 Agent。
LangGraph 官方文档强调,它关注 agent orchestration,包括 durable execution、streaming、human-in-the-loop 等底层能力。(LangChain 文档)
也就是说,LangGraph 更像是:
Agent 工作流的状态机 / 流程编排框架
而自进化 Agent 更像是:
能在执行后复盘,并把复盘结果写入下一次执行机制的系统
| 对比维度 | LangGraph | 自进化 Agent |
|---|---|---|
| 核心定位 | 工作流编排框架 | 长期学习型 Agent 系统 |
| 解决重点 | 流程稳定、状态持久化、中断恢复、人工介入 | 经验沉淀、技能更新、反馈学习、版本迭代 |
| 是否需要图结构 | 是,核心是 graph | 不一定,可以基于图,也可以不用图 |
| 是否自动改 Prompt / Skill | 默认不做 | 目标之一就是自动或半自动改进 |
| 是否需要 Eval | 可选 | 必需 |
| 是否需要版本管理 | 可选 | 强烈需要 |
| 最适合的角色 | Agent runtime / orchestration layer | learning loop / improvement layer |
因此,更准确的关系是:
LangGraph 可以作为自进化 Agent 的底座
但 LangGraph 本身不是自进化 Agent
5.2 多智能体系统和自进化 Agent 的区别
多智能体系统关注的是“分工”,自进化 Agent 关注的是“成长”。
| 对比维度 | 多智能体系统 | 自进化 Agent |
|---|---|---|
| 核心问题 | 多个角色如何协作 | 系统如何越用越好 |
| 典型结构 | Planner + Executor + Reviewer | Trace + Feedback + Reflection + Skill + Eval |
| 角色是否固定 | 多数情况下固定 | 可以根据经验调整 |
| 能否复盘失败 | 可以设计反思节点 | 复盘是核心闭环 |
| 能否沉淀技能 | 不一定 | 必须具备 |
| 是否自动优化 | 通常不自动 | 目标是自动或半自动 |
| 风险 | 角色混乱、通信成本高 | 错误记忆、错误进化、权限风险 |
一句话总结:
多智能体解决“谁来做”
自进化解决“下次如何做得更好”
5.3 RAG、Memory、Skill 的区别
这三个概念也很容易混淆。
| 概念 | 本质 | 主要内容 | 是否可被执行 | 是否随任务经验增长 |
|---|---|---|---|---|
| RAG | 外部知识检索 | 文档片段、数据库内容、网页信息 | 否 | 通常否 |
| Memory | Agent 的经验和长期上下文 | 用户偏好、历史任务、失败经验 | 通常否 | 是 |
| Skill | 可复用能力单元 | 操作步骤、工具策略、任务模板、代码片段 | 可以 | 是 |
| Tool | 外部功能接口 | API、搜索、计算器、数据库、文件系统 | 是 | 否 |
| Plugin | 能力扩展包 | 一组工具、说明、依赖、权限 | 可以 | 取决于设计 |
一个简单例子:
RAG:查到“会议纪要模板”的文档。
Memory:记住用户喜欢“先结论后细节”的纪要风格。
Skill:形成一个“生成会议纪要”的可复用流程。
Tool:调用日历 API 获取会议时间。
Plugin:把日历、邮件、纪要生成能力打包成一个扩展。
5.4 Prompt Evolution、Memory Evolution、Skill Evolution、Fine-tuning 的区别
自进化 Agent 不是简单的 Fine-tuning。当前多数自进化 Agent 主要发生在系统层,而不是模型权重层。
| 类型 | 改什么 | 是否改模型权重 | 成本 | 可解释性 | 适合场景 |
|---|---|---|---|---|---|
| Prompt Evolution | 提示词、系统指令 | 否 | 低 | 高 | 输出格式、推理策略、工具选择 |
| Memory Evolution | 经验、偏好、失败案例 | 否 | 低到中 | 中到高 | 个性化、长期任务 |
| Skill Evolution | 技能文件、任务模板、代码策略 | 否 | 中 | 高 | 高频任务复用 |
| Workflow Evolution | 节点顺序、分支、重试策略 | 否 | 中 | 高 | 复杂流程优化 |
| Fine-tuning | 模型参数 | 是 | 高 | 低到中 | 稳定领域能力、风格迁移 |
| RL / RLHF | 策略或偏好 | 通常是 | 高 | 低 | 大规模行为优化 |
Hermes Agent Self-Evolution 这类项目主要属于 Prompt / Skill / Tool Description / Code 层面的系统级优化,而不是底层模型权重训练。(GitHub)
六、自进化 Agent 的核心架构
一个相对完整的自进化 Agent,通常包括以下模块。
| 模块 | 作用 | 关键问题 |
|---|---|---|
| User Interface | 用户入口 | 用户通过哪里下达任务 |
| Planner | 任务规划 | 任务如何拆解 |
| Executor | 执行器 | 如何调用工具完成动作 |
| Tool Layer | 工具层 | 能操作哪些外部系统 |
| Trace Logger | 轨迹记录 | 执行过程如何被保存 |
| Feedback Collector | 反馈收集 | 成功、失败、用户纠正如何被捕获 |
| Reflection Module | 反思模块 | 失败原因如何被分析 |
| Memory Manager | 记忆管理 | 什么经验值得保存 |
| Skill Manager | 技能管理 | 经验如何变成可复用技能 |
| Evaluator | 评估器 | 新版本是否真的更好 |
| Version Manager | 版本管理 | 如何回滚和比较版本 |
| Safety Gate | 安全门控 | 哪些行为必须人工确认 |
自进化 Agent 的核心不是某一个模块,而是这些模块组成的闭环。
执行 → 记录 → 反馈 → 反思 → 抽取 → 更新 → 评估 → 复用
七、Mermaid 架构图:如何画出自进化 Agent 系统
下面给出几段可以直接放到博客园或 Markdown 编辑器中的 Mermaid 代码。
7.1 总体架构图
7.2 自进化闭环图
7.3 与 LangGraph 结合的架构图
这张图想表达的是:LangGraph 可以负责“流程怎么跑”,自进化层负责“跑完之后如何学习和改进”。
八、自进化闭环拆解:Trace、Feedback、Reflection、Memory、Skill、Eval
8.1 Trace:没有轨迹,就没有复盘
Trace 是执行轨迹,记录 Agent 在任务中的关键行为。
| Trace 内容 | 示例 |
|---|---|
| 用户目标 | “帮我整理成博客园技术文章” |
| 任务拆解 | 先写标题,再写目录,再写正文 |
| 使用工具 | 搜索论文、读取文档、调用代码执行器 |
| 工具参数 | 查询关键词、API 参数 |
| 中间输出 | 初稿、表格、代码 |
| 错误信息 | API 报错、格式错误 |
| 用户反馈 | “不够详细”“缺少目录”“表格只是概念解释” |
| 最终版本 | 修改后的文章 |
如果没有 Trace,系统只能知道“结果不好”,但不知道“为什么不好”。
8.2 Feedback:反馈不只是点赞点踩
反馈可以分成显式反馈和隐式反馈。
| 反馈类型 | 示例 | 价值 |
|---|---|---|
| 显式正反馈 | “这个版本可以” | 说明当前策略可复用 |
| 显式负反馈 | “不够详细” | 暴露质量问题 |
| 用户修改 | 用户手动改了结构 | 暗示偏好和标准 |
| 工具错误 | API 返回异常 | 暴露工具调用问题 |
| 测试失败 | 单元测试没通过 | 暴露代码或逻辑问题 |
| 格式失败 | JSON 不合法 | 暴露输出约束问题 |
| 任务失败 | 没完成目标 | 暴露规划或执行问题 |
OpenClaw self-evolve 插件强调检测反馈后进行学习,并更新 episodic memories 和 utility values。(GitHub)
8.3 Reflection:反思不是“道歉”,而是结构化定位问题
低质量反思通常是:
我下次会更认真。
高质量反思应该是:
用户要求的是“博客园论文解读类技术分享”,但输出更像普通综述;
缺少目录;
缺少 Mermaid 架构图;
表格只做概念解释,没有做混淆概念对比;
学习路线缺少论文阅读清单和开源项目参考。
真正有用的是结构化失败分析。
| 问题类型 | 具体表现 | 改进方式 |
|---|---|---|
| 结构不完整 | 缺少目录 | 增加文章导航 |
| 内容深度不够 | 只解释概念,没有对比 | 增加多维度对比表 |
| 实践性不足 | 只有学习路线,没有项目清单 | 增加论文、开源项目、练习任务 |
| 工程表达不足 | 没有架构图 | 增加 Mermaid |
| 引用格式问题 | 出现“。()” | 清理无效括号 |
8.4 Memory:把具体经验变成可检索知识
Memory 不是简单保存聊天记录,而是保存“以后有价值的信息”。
| 记忆类型 | 内容 | 示例 |
|---|---|---|
| User Preference | 用户偏好 | 喜欢详细、表格化、结构化文章 |
| Episodic Memory | 具体任务经验 | 上次博客稿缺少目录,被要求重写 |
| Semantic Memory | 抽象规则 | 技术博客开头应有目录和问题引入 |
| Failure Memory | 失败经验 | 不应只做概念解释表,应做混淆对比 |
| Skill Memory | 可复用能力 | 生成博客园技术解读文章的模板 |
Generative Agents 论文中也强调,agent 通过自然语言保存经验,并将记忆综合成更高层的 reflection,再动态检索这些记忆来规划行为。(arXiv)
MemGPT 则从操作系统的分层记忆得到启发,提出 virtual context management,让 LLM 在有限上下文窗口下管理不同层级的记忆,并支持长期对话和长文档分析。(arXiv)
8.5 Skill:把经验变成可复用能力
Skill 是自进化 Agent 的关键。
一个 Skill 可以是自然语言说明,也可以是代码、模板、操作流程或工具调用策略。
| Skill 类型 | 示例 |
|---|---|
| 写作型 Skill | 生成博客园技术文章 |
| 研究型 Skill | 论文阅读与结构化总结 |
| 工程型 Skill | Python 报错分析与修复 |
| 自动化 Skill | 邮件分类、日历安排 |
| 数据型 Skill | Excel 清洗与汇总 |
| 检索型 Skill | 多关键词搜索与证据整合 |
| 安全型 Skill | 高风险操作前确认 |
Voyager 论文非常典型。它在 Minecraft 环境中使用 LLM 进行开放式探索,包含自动课程、不断增长的可执行代码 skill library,以及利用环境反馈、执行错误和自我验证进行程序改进的迭代提示机制。(arXiv)
这说明 Skill Library 是自进化 Agent 非常重要的方向:
不是每次从零推理,而是把成功经验固化为可组合、可检索、可复用的能力单元。
8.6 Eval:没有评估,就不是可靠进化
自进化系统必须回答一个问题:
新版本真的更好吗?
不能只因为模型“觉得改进了”就上线。
| 评估维度 | 示例指标 |
|---|---|
| 任务成功率 | 是否完成用户目标 |
| 格式正确率 | 是否符合 JSON / Markdown / 表格要求 |
| 工具调用准确率 | 是否选对工具、参数是否正确 |
| 回归测试 | 是否破坏旧任务能力 |
| 用户满意度 | 用户是否继续修改 |
| 安全性 | 是否越权、误删、泄露 |
| 成本 | token、时间、API 费用是否可接受 |
| 稳定性 | 多次运行结果是否稳定 |
GEPA 的思路值得参考。DSPy 文档介绍,GEPA 会捕获 DSPy 模块的完整执行轨迹,识别与具体 predictor 相关的部分,并基于文本反馈反思和提出新的 instruction;GEPA 论文则强调通过自然语言 reflection 和 Pareto-based candidate selection 来进行 prompt evolution。(dspy.ai)
九、关键论文脉络:从 ReAct、Toolformer 到 Reflexion、Voyager、GEPA
下面这份阅读清单适合作为入门到进阶路线。
9.1 第一组:Agent 基础与工具调用
| 论文 | 核心贡献 | 建议关注点 |
|---|---|---|
| ReAct: Synergizing Reasoning and Acting in Language Models | 将 reasoning trace 和 action 交替结合,让模型边思考边行动 | 理解 Agent 的 Reason → Act → Observe 循环 |
| Toolformer: Language Models Can Teach Themselves to Use Tools | 让模型学习何时调用 API、传什么参数、如何使用结果 | 理解工具使用的自监督学习思想 |
ReAct 将推理和行动结合起来,使模型可以通过外部环境或知识源获取信息,并更新行动计划。(arXiv)
Toolformer 则提出让语言模型学习使用外部工具,包括计算器、问答系统、搜索、翻译、日历等 API。(arXiv)
9.2 第二组:反思、自反馈与自我修正
| 论文 | 核心贡献 | 建议关注点 |
|---|---|---|
| Self-Refine | 让同一个 LLM 生成初稿、提供反馈、再迭代修改 | 理解 test-time refinement |
| Reflexion | 不更新模型权重,而是通过语言反馈和 episodic memory 改进后续决策 | 理解 verbal reinforcement learning |
| Self-Reflection in LLM Agents | 系统研究 self-reflection 对问题解决能力的影响 | 理解反思机制的有效性和限制 |
Self-Refine 强调无需额外训练数据或强化学习,只通过生成、反馈、改写的循环提升输出质量。(arXiv)
Reflexion 则非常接近自进化 Agent 的核心思想:它不更新模型权重,而是把任务反馈转成语言反思,并保存在 episodic memory buffer 中,用来改进后续试验。(arXiv)
9.3 第三组:长期记忆与模拟 Agent
| 论文 | 核心贡献 | 建议关注点 |
|---|---|---|
| Generative Agents | 记忆、反思、规划组成可信行为模拟架构 | 理解 observation-memory-reflection-planning |
| MemGPT | 把 LLM 视为操作系统,引入分层记忆管理 | 理解有限上下文下的长期记忆 |
| Towards Autonomous Memory Agents | 主动获取、验证和管理记忆 | 理解 memory 不只是被动存储 |
Generative Agents 展示了记忆和反思如何支持更可信的 agent 行为。(arXiv)
MemGPT 则强调通过不同记忆层级管理有限上下文,让 LLM 在长对话和长文档任务中保持上下文能力。(arXiv)
9.4 第四组:Skill Library 与开放式学习
| 论文 | 核心贡献 | 建议关注点 |
|---|---|---|
| Voyager | 自动课程 + 可执行 Skill Library + 环境反馈迭代 | 理解 skill library 如何支撑 lifelong learning |
| AutoAgents | 根据任务动态生成和协调多个专门 agent | 理解多智能体动态生成 |
| AgentScope 相关论文 / 框架 | 强调可追踪、可评估、可部署的 agent 工程化 | 理解生产级 agent 框架 |
Voyager 对自进化 Agent 的启发很大,因为它不是只保存自然语言经验,而是把成功行为保存为可执行代码技能。(arXiv)
9.5 第五组:Prompt / Skill / Agent Optimization
| 论文 / 技术 | 核心贡献 | 建议关注点 |
|---|---|---|
| DSPy | 把 LLM pipeline 写成可优化的程序 | 理解 Prompt 不再只是手写模板 |
| GEPA | 用自然语言反思和 Pareto 选择进行 prompt evolution | 理解反思式优化 |
| Hermes Agent Self-Evolution | 将 GEPA 用于 Hermes skills、tools、prompts、code 优化 | 理解项目级实践 |
DSPy 将 LM pipeline 抽象成声明式模块,并通过 compiler 优化 pipeline。(arXiv)
GEPA 进一步利用自然语言反思、执行轨迹和 Pareto 选择进行 prompt evolution,在部分任务上以更少 rollouts 获得较好效果。(arXiv)
十、开源项目参考:从框架、记忆、技能到评估体系
10.1 Agent 编排与多智能体框架
| 项目 | 类型 | 适合学习什么 |
|---|---|---|
| LangGraph | 低层 Agent 编排框架 | 状态机、图结构、checkpoint、human-in-the-loop |
| AutoGen | 多智能体框架 | agent 之间的对话、协作、工具使用 |
| CrewAI | 多智能体自动化框架 | role-based agents、crews、flows |
| AgentScope | Agent 框架与生态 | 多智能体、工具、记忆、评估、沙箱 |
LangGraph 官方强调 durable execution、streaming、human-in-the-loop 等 agent 编排能力。(LangChain 文档)
AutoGen 是微软推出的多智能体应用框架,公开资料中将其描述为用于构建可自主行动或与人协作的多智能体 AI 应用的框架。(microsoft.github.io)
CrewAI 官方文档强调其用于设计 agents、orchestrate crews 和 automate flows,并内置 guardrails、memory、knowledge 和 observability。(docs.crewai.com)
AgentScope 公开资料则强调其提供 agent 框架、运行时、记忆、评估和训练等完整生命周期能力。(agentscope.io)
10.2 自进化与 Skill 系统参考
| 项目 | 类型 | 适合学习什么 |
|---|---|---|
| OpenClaw | 个人 AI 助手 / 技能生态 | 本地运行、消息入口、技能系统、自动化 |
| OpenClaw self-evolve plugin | 自学习插件 | episodic memory、feedback、Q values |
| Hermes Agent | 自改进 Agent | learning loop、skill creation、cross-session memory |
| Hermes Agent Self-Evolution | Skill / Prompt / Code 优化 | DSPy + GEPA、自动评估、候选选择 |
| Voyager | 研究项目 / Minecraft Agent | lifelong learning、skill library、环境反馈 |
10.3 评估与优化工具
| 工具 / 项目 | 适合学习什么 |
|---|---|
| DSPy | 可优化 LLM pipeline |
| GEPA | 反思式 Prompt / 系统优化 |
| LangSmith | tracing、observability、evaluation |
| promptfoo | Prompt 测试与评估 |
| DeepEval | LLM 应用评估 |
| Ragas | RAG 评估 |
| pytest | 工程测试与回归测试 |
十一、学习路线:从 LLM 应用开发到自进化 Agent 工程
下面给出一条更偏实践的学习路线。
阶段一:LLM 应用基础
目标:能写出一个基本的大模型应用。
| 学习内容 | 实践任务 |
|---|---|
| Python 基础 | 写一个命令行聊天助手 |
| API 调用 | 调用 OpenAI / Claude / Gemini API |
| Prompt Engineering | 写不同任务的 Prompt 模板 |
| Structured Output | 让模型稳定输出 JSON |
| Function Calling | 让模型调用计算器、搜索、数据库 |
推荐练习:
做一个“论文摘要提取器”:
输入论文标题、摘要或正文片段;
输出研究背景、研究问题、方法、结论、创新点。
阶段二:工具型 Agent
目标:让模型不仅回答,还能调用工具。
| 学习内容 | 实践任务 |
|---|---|
| ReAct | 实现 Reason → Act → Observe 循环 |
| Tool Calling | 定义工具 schema |
| Error Handling | 工具失败后重试 |
| Tool Selection | 让模型判断该调用哪个工具 |
| Observation Parsing | 解析工具返回结果 |
推荐阅读:
ReAct
Toolformer
Self-Refine
推荐练习:
做一个“资料检索 Agent”:
用户输入主题;
Agent 自动拆关键词;
调用搜索工具;
提取核心观点;
生成带引用的综述。
阶段三:工作流 Agent
目标:掌握状态机和复杂流程编排。
| 学习内容 | 实践任务 |
|---|---|
| LangGraph | 用 node / edge 组织流程 |
| State | 保存中间状态 |
| Conditional Edge | 根据结果进入不同分支 |
| Checkpoint | 支持任务恢复 |
| Human-in-the-loop | 高风险操作前人工确认 |
推荐练习:
做一个“论文阅读工作流”:
1. 提取论文基本信息;
2. 总结摘要;
3. 拆解方法;
4. 提取实验结果;
5. 生成 PPT 大纲;
6. 人工确认后输出最终版本。
阶段四:Memory Agent
目标:让 Agent 能记住长期信息和任务经验。
| 学习内容 | 实践任务 |
|---|---|
| Embedding | 文本向量化 |
| Vector Database | Chroma / FAISS / Qdrant |
| Memory Extraction | 从对话中抽取记忆 |
| Memory Retrieval | 当前任务检索相关记忆 |
| Memory Consolidation | 合并重复记忆 |
| Memory Forgetting | 删除无效或错误记忆 |
推荐阅读:
Generative Agents
MemGPT
Towards Autonomous Memory Agents
Reflexion
推荐练习:
做一个“写作偏好记忆助手”:
记录用户喜欢的文章结构、语气、表格风格;
下次生成文章时自动检索相关偏好。
阶段五:Skill Agent
目标:把经验沉淀为可复用技能。
| 学习内容 | 实践任务 |
|---|---|
| Skill Definition | 设计 Skill 文件结构 |
| Skill Retrieval | 根据任务选择 Skill |
| Skill Execution | 执行 Skill 中的步骤 |
| Skill Refinement | 根据反馈修改 Skill |
| Skill Versioning | 保存不同版本 |
推荐阅读:
Voyager
Hermes Agent Skills System
OpenClaw Skills System
推荐练习:
做一个“博客生成 Skill”:
当用户要求写技术博客时,自动套用:
标题备选、目录、背景、核心概念、对比表、架构图、学习路线、总结。
阶段六:自进化 Agent
目标:让系统能根据反馈自动改进 Skill / Prompt / Memory。
| 学习内容 | 实践任务 |
|---|---|
| Trace Logging | 保存完整执行轨迹 |
| Feedback Analysis | 识别正负反馈 |
| Reflection | 分析失败原因 |
| Skill Mutation | 生成新 Skill 候选 |
| Evaluation | 比较新旧版本 |
| Version Control | 支持回滚 |
| Safety Gate | 高风险更新需要确认 |
推荐阅读:
Reflexion
Voyager
DSPy
GEPA
Hermes Agent Self-Evolution
FORGE
推荐练习:
做一个 Mini Self-Evolving Blog Agent:
第一次:生成普通博客。
用户反馈:缺少目录、缺少架构图、表格不够对比化。
系统记录:失败原因。
系统生成:blog_skill_v2。
系统评估:v2 是否覆盖目录、Mermaid、对比表、论文清单。
通过后:保存为新版本。
下次:自动复用 v2。
十二、最小可行实践项目:如何动手做一个 Mini Self-Evolving Agent
可以先实现一个非常小的系统,不要一开始就追求复杂。
12.1 项目结构
mini-self-evolving-agent/
├── main.py
├── planner.py
├── executor.py
├── memory.py
├── skill_manager.py
├── feedback_analyzer.py
├── reflector.py
├── evaluator.py
├── version_manager.py
├── skills/
│ ├── blog_writer_v1.md
│ └── blog_writer_v2.md
├── memories/
│ └── episodic_memory.json
├── traces/
│ └── task_trace.json
└── eval_cases/
└── blog_eval_cases.json
12.2 核心伪代码
def run_agent(user_task):
# 1. 检索相关记忆
memories = memory.retrieve(user_task)
# 2. 选择相关技能
skill = skill_manager.select_skill(user_task, memories)
# 3. 执行任务
trace = executor.run(user_task=user_task, skill=skill, memories=memories)
# 4. 输出结果
result = trace.final_output
# 5. 收集反馈
feedback = feedback_analyzer.collect(result)
# 6. 如果有负反馈或执行失败,进入反思
if feedback.is_negative or trace.has_error:
reflection = reflector.analyze(trace, feedback)
# 7. 生成新的 skill 候选
candidate_skill = skill_manager.refine(skill, reflection)
# 8. 评估新旧 skill
old_score = evaluator.evaluate(skill)
new_score = evaluator.evaluate(candidate_skill)
# 9. 只有新版本更好才保存
if new_score > old_score:
version_manager.save(candidate_skill)
memory.write(reflection)
else:
version_manager.reject(candidate_skill)
return result
12.3 最小评估指标
| 指标 | 检查方式 |
|---|---|
| 是否有目录 | 检查 Markdown 是否包含“目录” |
| 是否有 Mermaid | 检查是否包含 ```mermaid |
| 是否有对比表 | 检查表格数量和关键词 |
| 是否有学习路线 | 检查是否包含阶段化路线 |
| 是否有论文清单 | 检查是否包含论文标题 |
| 是否有开源项目 | 检查是否包含项目表 |
| 是否避免无效括号 | 检查是否出现“。()” |
这个项目虽然很小,但已经包含了自进化 Agent 的关键要素:
Trace → Feedback → Reflection → Skill Refinement → Eval → Versioning
十三、风险与边界:为什么自进化 Agent 不能无限自治
自进化 Agent 很强,但也更危险。
13.1 记忆污染
如果系统把临时反馈当成长期偏好,就可能越学越偏。
例如用户只是这一次说:
这篇写得口语一点。
系统却永久记住:
用户永远喜欢口语化表达。
这就是错误记忆。
13.2 Skill 污染
如果系统把错误经验写入 Skill,下次会稳定复现错误。
例如:
用户指出“不要只做概念解释表”。
正确更新应该是:
技术博客中的表格应包含概念解释表、混淆概念对比表、框架对比表和实践路线表。
错误更新可能是:
以后不要使用表格。
13.3 自动修改代码的风险
当 Agent 可以自动改 Prompt、Skill、工具说明甚至代码时,必须有版本管理和审核机制。
至少需要:
候选版本
评估结果
差异对比
人工确认
回滚机制
安全扫描
OpenClaw 这类本地执行、技能扩展型系统也存在第三方技能安全风险。近期公开报道提到,OpenClaw 技能生态中曾出现恶意 skills,因此第三方技能应被当作不可信代码进行审查和沙箱隔离。(TechRadar)
13.4 高风险操作必须 human-in-the-loop
| 操作 | 是否应该自动执行 |
|---|---|
| 总结文章 | 可以自动 |
| 生成草稿 | 可以自动 |
| 修改本地草稿 | 视情况确认 |
| 发送邮件 | 必须确认 |
| 删除文件 | 必须确认 |
| 修改数据库 | 必须确认 |
| 执行 shell 命令 | 强烈建议确认 |
| 付款、下单、转账 | 不应自动执行 |
LangGraph 的 interrupts 和 human-in-the-loop 机制就是为这类场景提供暂停、等待外部输入和恢复执行的能力。(LangChain 文档)
十四、总结:Agent 的下一阶段不是“更会说”,而是“更会积累经验”
如果只看表面,OpenClaw、Hermes、LangGraph、AutoGen、CrewAI 好像都属于 Agent 框架或 Agent 应用。
但深入看,它们关注的问题并不一样。
| 对象 | 更关注什么 |
|---|---|
| LangGraph | 工作流如何稳定运行 |
| AutoGen | 多个 Agent 如何协作 |
| CrewAI | 多角色自动化如何组织 |
| OpenClaw | 个人 AI 助手如何连接真实工具和技能生态 |
| Hermes Agent | Agent 如何从经验中创建和改进 Skill |
| Hermes Agent Self-Evolution | 如何自动优化 Skill、Prompt、Tool Description 和代码 |
因此,自进化 Agent 的关键不是“用了哪个框架”,而是有没有形成下面这个闭环:
执行任务
→ 记录轨迹
→ 收集反馈
→ 分析失败
→ 抽取经验
→ 更新记忆
→ 优化技能
→ 自动评估
→ 版本管理
→ 下次复用
最终可以用一句话总结:
传统 Agent 是“会做事的系统”,自进化 Agent 是“做完事之后会复盘,并把复盘结果变成下一次能力的系统”。
未来 Agent 的竞争重点,可能不再只是模型本身谁更强,也不只是工具数量谁更多,而是谁能更稳定地把经验沉淀为能力,把失败转化为改进,把一次次任务执行变成长期可复用的系统资产。
这也是学习 OpenClaw、Hermes 这类智能体时最应该抓住的主线:
LLM API
+ Tool Calling
+ Workflow Orchestration
+ Memory Management
+ Skill Library
+ Feedback Loop
+ Evaluation
+ Version Control
+ Safety Gate
= Self-Evolving Agent Engineering
换句话说,自进化 Agent 不是一个单点技术,而是一套完整的 Agent 工程体系。
浙公网安备 33010602011771号