当前位置: 首页 > news >正文

《把 Hermes Agent 养成你的专属帕鲁:从捕捉到满级实战指南》(二)

目录

​编辑

1. 自我学习机制:Hermes 是怎么"长脑子"的

1.1 闭合学习回路:执行 → 评估 → 提炼 → 进化

1.2 Skill 系统:经验的结构化沉淀

Skill 的存储结构

Skill 的自动创建

Skill 的迭代更新

1.3 记忆系统:四层梯度架构

第一层:工作记忆(Working Memory)

第二层:历史记忆(Episodic Memory)

第三层:技能记忆(Skill Memory)

第四层:外部记忆提供者

1.4 渐进式披露:Skill 的按需加载机制

1.5 异步复盘:Background Review

实现机制

触发条件

1.6 为什么这套机制有效?


1. 自我学习机制:Hermes 是怎么"长脑子"的

大多数 AI Agent 的痛点不是"不会",而是"学了就忘"。你教它一次工作流程,下次重启会话,一切归零。Hermes 的自我学习系统要解决的就是这个问题——让经验成为资产,而不是消耗品

这套系统的核心代码分布在tools/skills_tool.pyagent/memory_manager.pyhermes_state.pytrajectory_compressor.py中。下面从机制到实现,逐层拆解。


1.1 闭合学习回路:执行 → 评估 → 提炼 → 进化

Hermes 的自我学习不是某个单一功能,而是一个持续运转的闭环

┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ 执行 │ → │ 评估 │ → │ 提炼 │ → │ 进化 │ │(Run Task)│ │(Review) │ │(Extract)│ │(Update) │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ ↑ │ └──────────────────────────────────────────┘

执行:Agent 接到任务,调用工具链完成操作(终端、文件、浏览器等)。

评估:任务完成后,系统回溯整个执行轨迹,判断:

  • 哪些步骤是有效的?
  • 哪些路径走错了、后来被纠正了?
  • 最终结果是否符合预期?

提炼:如果轨迹有价值,系统会将其抽象为一个Skill——不是原始的操作日志,而是可复用的工作流模板

进化:已有的 Skill 不会直接被覆盖。如果发现旧 Skill 有不准确的地方,系统会生成增量补丁,保留主干、修正细节。

这个闭环的关键在于评估节点。很多 Agent 框架只做到了"记录历史",但没有"判断价值"。Hermes 在trajectory_compressor.py中实现了轨迹压缩和评估逻辑,能够区分"值得学习的经验"和"无意义的试错"。


1.2 Skill 系统:经验的结构化沉淀

Skill 是 Hermes 自我学习的载体。它不是一段聊天记录,而是一个标准化的、可执行的流程定义。

Skill 的存储结构

Hermes 的 Skill 遵循agentskills.io标准格式,以 Markdown 文件形式存储在skills/目录:

# skills/software-development/code-review/SKILL.md name: code-review description: 代码审查助手 trigger: "帮我 review 这段代码" tools: - terminal - file prompt: | 你是资深代码审查专家。请检查: 1. 代码规范 2. 潜在 bug 3. 性能问题 4. 改进建议

skills/目录下的内置技能覆盖了多个领域:

  • software-development/— 开发工作流(TDD、调试、规划)
  • creative/— 创意工具
  • devops/— 自动化部署
  • research/— 研究辅助
  • productivity/— 生产力工具

Skill 的自动创建

当一次任务的复杂度超过一定阈值(比如工具调用超过 5 次),系统会自动触发提炼流程:

  1. 轨迹收集hermes_state.py记录完整的会话历史,包括工具调用序列和结果
  2. 关键路径提取trajectory_compressor.py压缩轨迹,保留决策点和有效路径
  3. 模板生成:将提取出的模式写入skills/目录,形成新的 Skill 文件
  4. 注册生效tools/skills_tool.py自动扫描skills/目录,新 Skill 立即可用

Skill 的迭代更新

Skill 不是写死了就不能改的。随着使用积累,系统会:

  • 打补丁:发现旧 Skill 某一步不适用于新场景,生成增量修正
  • 版本管理:所有 Skill 都是纯文本 Markdown,天然支持 Git 版本控制
  • 渐进加载:不会一次性把所有 Skill 塞进上下文(后面会讲)

1.3 记忆系统:四层梯度架构

如果说 Skill 是"学会了什么",记忆就是"记住了什么"。Hermes 的记忆系统是有梯度的——不同频率、不同用途的信息,放在不同的层级。

代码层面,这套系统由agent/memory_manager.pyhermes_state.py协同实现。

第一层:工作记忆(Working Memory)

位置:当前 LLM 上下文窗口内
代码agent/prompt_builder.py中的上下文组装逻辑

这是 Agent 正在处理的信息。用户当前的消息、最近的对话历史、正在执行的工具结果,都直接放在这里。特点是高频访问、实时可见,但容量受模型上下文限制。

第二层:历史记忆(Episodic Memory)

位置:SQLite + FTS5(hermes_state.py
机制:自动压缩 + 按需检索

当对话变长,工作记忆装不下时,agent/context_compressor.py介入:

  • 保留最近 N 轮完整对话(默认保护 20 轮)
  • 将早期对话压缩为结构化摘要
  • 摘要存入 SQLite,启用 FTS5 全文检索

当用户提到"上周讨论过的方案"时,系统不是把整段历史塞回上下文,而是:

  1. 通过 FTS5 全文检索定位相关会话
  2. 用 LLM 做摘要精炼
  3. 只把摘要注入当前上下文

这样 Token 消耗大幅降低,信息密度反而提高。

第三层:技能记忆(Skill Memory)

位置skills/目录
代码tools/skills_tool.py

这是程序性记忆——记录的是"怎么做",而不是"发生了什么"。

Skill 一旦被创建,就会被纳入工具注册表(tools/registry.py)。下次遇到类似任务,Agent 不会重新摸索,而是直接调用对应的 Skill,就像调用一个函数。

第四层:外部记忆提供者

位置:插件系统(plugins/memory/
扩展:Honcho、Mem0 等第三方服务

对于需要深度用户建模的场景(长期追踪行为模式、偏好演化),Hermes 提供了扩展接口。比如plugins/memory/hindsight/支持本地嵌入式的知识图谱记忆,带实体解析和多策略检索。


1.4 渐进式披露:Skill 的按需加载机制

Skill 越攒越多,如果每次都全量加载,上下文会爆炸。Hermes 的解法是渐进式披露

默认加载:Skill 摘要(名称 + 触发条件 + 一句话描述) ↓ 匹配到相关场景 ↓ 按需加载:完整 Skill 内容(详细步骤、提示词、工具链)

代码层面,tools/skills_tool.py在注册 Skill 时会维护两级索引:

  • 元数据层:所有 Skill 的摘要,常驻上下文(体积小)
  • 内容层:完整 Skill 定义,仅在触发时注入

这是一个很实用的工程细节。在生产环境里跑过 Agent 的人会懂:上下文不是免费的,每多一个字都在烧钱。渐进式披露让 Skill 数量可以持续增长,而不受上下文窗口的限制。


1.5 异步复盘:Background Review

自我学习有一个工程难题:学习过程不能打断用户

如果 Agent 每次对话完都停下来"反思总结"几分钟,体验会非常差。Hermes 的解决方案是Background Review——一个独立的异步进程。

实现机制

run_agent.py中的 Agent Loop 在处理完用户请求后,会fork出一个后台进程:

  • 主进程:继续响应用户,零延迟
  • 后台进程:静默分析刚才的对话轨迹,判断是否需要提炼新 Skill 或更新旧 Skill

这个设计在代码层面体现为进程隔离:后台复盘与主对话流完全解耦,即使用户在复盘过程中发送了新消息,也不会产生竞争条件。

触发条件

后台复盘不是每次对话都跑。触发条件包括:

  • 工具调用次数达到一定阈值(表明任务有一定复杂度)
  • 对话中出现了新的成功路径(与已有 Skill 不同的解决方式)
  • 用户显式标记了某个会话为"值得学习"

1.6 为什么这套机制有效?

对比大多数 Agent 框架的"无状态"设计,Hermes 的自我学习解决了三个根本问题:

问题传统 AgentHermes 的解法
学了就忘每次会话从零开始Skill 持久化 + 记忆分层存储
一学定终身早期错误经验永远保留增量补丁更新,持续迭代
上下文爆炸历史全量加载渐进式披露 + 智能压缩

这套系统的本质,是把 Agent 从一个** Stateless Function**(无状态函数)变成了一个Stateful Agent(有状态智能体)。它不只是在响应你,而是在与你共同积累知识资产。


http://www.jsqmd.com/news/700338/

相关文章:

  • 如何快速上手AtCoder Library:5分钟完成安装与配置
  • 避坑指南:Seurat v4/v5对象互转时,你的差异表达结果还可靠吗?
  • 如何在Windows电脑上直接安装安卓应用:APK安装器完整指南
  • LOOT模组加载优化工具:5分钟掌握完美游戏体验的秘诀
  • 如何将Disque消息代理无缝集成到CI/CD流程:自动化部署与版本管理终极指南
  • innovus LEF/DEF 6.0 语言学习参考(1)
  • 2026家装墙板优选指南:适配全场景,告别后期维修烦恼 - 速递信息
  • Python使用XPath定位元素:动态计算与函数调用
  • MySQL主从复制过程中怎么增加从库_利用mysqldump快速扩容从库.txt
  • Apache Kylin 3.1.3 自动化构建指南:如何用Shell脚本调用REST API定时触发增量构建
  • JVM 学习第五天:类加载机制 + 内存调优实战 + 新面试题全解(无重复)
  • XUnity自动翻译器:如何为Unity游戏实现实时文本翻译
  • Simple Form开源项目安全政策:漏洞披露完整指南
  • Qwen3.5-2B实操手册:WebUI中启用RAG插件连接本地知识库方法
  • RocketMQ 系列文章(高级篇第 2 篇):消息追踪与性能优化实战
  • 终极指南:3分钟快速搭建Kafka可视化管理平台
  • DeepSeek V4写论文不被检测攻略,2026年4月3款工具配 - 我要发一区
  • 终极AI Agent云运行时:如何用E2B构建企业级智能代理协作环境
  • 2026届学术党必备的五大降AI率网站实际效果
  • 儿童近视防控科学指南|赵阳眼科解析系统化护眼核心方案 - 外贸老黄
  • 直接进老年代的大对象指的是shallow还是retained
  • 大语言模型:有趣的小实验
  • TLPI 第11章 练习:System Limits and Options
  • Less如何处理CSS长文本换行_封装Mixin解决不同场景需求
  • 掌握Ahk2Exe:AutoHotkey脚本编译器的终极实践指南
  • ROS2机器人仿真新选择:5分钟在Ubuntu22.04上跑通Webots官方TurtleBot3样例
  • NBTExplorer架构深度解析:Minecraft数据编辑的技术实现与设计哲学
  • B站缓存视频合并终极指南:5分钟学会将碎片视频变完整
  • 告别数据焦虑:用YOLOv5和PyTorch玩转Few-Shot目标检测(附完整代码)
  • Flux2-Klein-9B-True-V2保姆级教程:WebUI历史记录管理与结果导出