橙皮书共读|Hermes Agent(二)深度拆解五大核心支柱:自进化智能体的运行内核

前言
上一篇我们从Harness Engineering五层模型出发,厘清了自进化智能体的理论基石,也明确了Hermes五大支柱与Harness五层的对应关系。很多初学者的疑问是:记忆、技能、规则这些功能,普通Agent似乎也能实现,为什么Hermes能被定义为"自进化智能体"?
答案在于:普通Agent的这些能力是零散的、外挂的、完全依赖人工配置的;而Hermes将五大支柱原生内置、深度联动,形成了"执行-反馈-沉淀-复用"的完整闭环------每一次任务执行,都会反向优化系统本身的能力。
本篇我们深入五大支柱的内部架构与运行机制,配合真实配置样例与最小Demo拆解自进化智能体的核心运转逻辑,帮你建立对Hermes系统的完整认知。
版权说明:本文为《Hermes Agent从入门到精通》(橙皮书,作者:花叔)学习解读文章,遵循CC BY-NC-SA 4.0协议,核心理论参考原著,机制解析与场景示例为工程实践补充。
一、Memory:分层持久记忆系统 ------ 自进化的信息底座
普通大模型Agent的记忆仅存在于当前上下文窗口,会话关闭则一切清零:既记不住用户的历史偏好,也留不住过往的执行经验,每次启动都相当于"从零开始"。这是长周期任务、个性化场景下最大的体验短板。
Hermes的Memory系统采用三级分层架构,不同生命周期、不同类型的信息存储在不同层级,兼顾响应效率、Token成本与信息持久化,是整个自进化体系的信息底座。

1. 三层记忆架构
第一层:会话记忆(短期记忆)
存储当前会话的实时交互内容、中间执行结果、临时任务状态,生命周期随会话结束而终止。
- 核心作用:保障单次任务的上下文连贯性,是模型推理与工具调用的直接信息来源;
- 运行特点:读取速度最快,但容量受上下文窗口限制,系统会自动压缩冗余信息,避免Token溢出。
第二层:持久事实记忆(长期记忆)
对应系统中的 MEMORY.md 文件,存储跨会话永久留存的事实性信息、历史任务结论、验证过的知识条目与踩坑记录。
📌 真实样例:MEMORY.md 片段
markdown
# 持久记忆库
## 项目相关
- AIQC项目使用Python + LangGraph技术栈,代码仓库位于GitLab云龙架构
- 质检规则包含:格式校验、字段完整性、业务逻辑校验三级
- 2026-07-28:发现CSV空列会导致质检脚本异常,已补充判空逻辑
## 踩坑记录
- ghproxy.net 镜像节点已失效,克隆GitHub仓库使用 mirror.ghproxy.com
- Windows PowerShell执行git命令注意路径不要包含中文空格
- MCP服务默认端口8000,与本地后端服务冲突时需修改配置
## 工具与环境
- 本地开发环境:Python 3.11、Node 20、Git Bash
- 主力大模型:DeepSeek-V3,API接口兼容OpenAI规范
- 写入机制:每次任务结束后,Agent会自动复盘,将具备长期留存价值的信息提炼、去重后写入文件;
- 检索机制:新任务启动时,会根据当前任务关键词做语义检索,将相关信息注入上下文,实现跨会话经验复用;
- 核心价值 :让Agent真正拥有"长期记忆",不会重复犯相同错误,也不需要用户反复交代背景信息。
这一步实际就是harmes之所以能够越用越聪明的核心之一。
第三层:用户画像记忆(专属记忆)
对应系统中的 USER.md 文件,专门存储用户的个人偏好、行为习惯、常用配置、禁忌规则等专属信息。
📌 真实样例:USER.md 片段
markdown
# 用户画像
## 输出偏好
- 技术回答优先结构化分点,关键信息加粗
- 代码示例必须可直接运行,附带注释说明
- 拒绝空泛理论,优先给出可落地的操作方案
- 博客文风偏向实战干货,避免过度营销话术
## 工作习惯
- 主要使用PowerShell进行命令行操作
- 代码规范遵循阿里巴巴Java开发手册
- 每天上午9点同步当日工作进度
## 禁忌事项
- 不要输出过度乐观的确定性结论
- 不要推荐未经核实的第三方付费资源
- 核心作用:让Agent持续适配用户使用习惯,一次记住永久生效,不需要每次重复说明需求细节。
2. 记忆系统的核心设计原则
- 写入克制原则:并非所有信息都写入长期记忆,仅沉淀经过验证、具备复用价值的内容,避免记忆冗余和噪声堆积;
- 自动去重更新:新信息写入前比对已有内容,同类信息直接更新旧条目,而非重复追加;
- 分级检索机制:根据任务复杂度决定调用哪几层记忆,短平快任务仅调用会话记忆,复杂长任务才加载全量长期记忆,平衡效果与Token成本。
二、Skills:自进化技能库 ------ 工作流的自动沉淀与复用
如果说Memory沉淀的是"信息与知识",Skills沉淀的就是"能力与工作流"。这是Hermes区别于普通编排Agent最直观的模块:普通Agent每遇到同类任务,都需要人类重新拆解步骤、编写Prompt;而Hermes成功执行一次,就能自动沉淀为可复用的标准化Skill,下次同类任务直接调用。

1. 什么是Skill
Skill是标准化的工作流文档,全部以明文Markdown文件存储,可读、可编辑、可导入导出。一份完整的Skill包含触发条件、输入输出规范、执行步骤、边界说明、版本记录等字段。
📌 真实样例:gitbug-debug.skill.md(简化版)
markdown
# Skill:Git Bug排查与修复
## 触发条件
用户提出Git操作报错、提交冲突、分支异常等问题时自动触发
## 输入
- 报错信息原文
- 当前所在分支
- 最近一次操作记录
## 执行步骤
1. 先复现错误,提取完整报错日志
2. 检索持久记忆中的踩坑记录,确认是否为已知问题
3. 定位根因:区分配置问题、权限问题、冲突问题、网络问题
4. 给出修复命令,逐条执行验证
5. 修复成功后,将新问题写入MEMORY.md踩坑记录
## 输出规范
- 先说明根因,再给出分步修复命令
- 每条命令附带简短说明
- 风险操作必须提前标注注意事项
## 边界
- 不涉及仓库权限修改、强制推送等高危操作
- 涉及代码冲突时,仅提供解决思路,不直接修改业务代码
2. Skill的全生命周期运行链路
- 自动生成:Agent完成一个全新类型的任务并验证成功后,自动触发复盘流程,将完整执行步骤提炼、标准化,生成对应Skill文件存入技能库;
- 自动匹配:新任务进入时,Agent先检索技能库,匹配是否有同类历史技能;命中则直接加载执行流程,无需从零规划;
- 迭代优化:每次调用Skill执行任务后,根据执行结果更新优化Skill内容,补充边界条件、优化步骤细节,让技能越用越完善。
3. 最小Demo:用Python实现极简技能检索逻辑
你可以用十几行代码直观理解Skill的匹配原理:
python
import os
from difflib import SequenceMatcher
# 加载技能库
def load_skills(skill_dir="./skills"):
skills = {}
for file in os.listdir(skill_dir):
if file.endswith(".skill.md"):
with open(f"{skill_dir}/{file}", "r", encoding="utf-8") as f:
skills[file.replace(".skill.md", "")] = f.read()
return skills
# 语义匹配最佳技能
def match_skill(user_query, skills):
best_score, best_skill = 0, None
for name, content in skills.items():
score = SequenceMatcher(None, user_query, content).ratio()
if score > best_score:
best_score, best_skill = score, name
return best_skill if best_score > 0.3 else None
Hermes内部的检索机制比这个复杂得多,会结合向量检索、关键词匹配、规则判定多层融合,但核心逻辑是一致的:任务进来 → 匹配已有技能 → 命中则复用,未命中则新建并沉淀。
4. 设计价值与补充说明
- 把"一次性的任务执行"转化为"可复用的系统能力",使用频次越高,系统能力越强;
- 技能以明文形式存在,可人工审核、修改,具备极强的可控性,避免黑盒化;
- 这套机制完全可以基于LangGraph等编排框架自行实现,但需要开发者自行设计生成、检索、更新逻辑;Hermes将其作为原生内置能力,开箱即用。
三、Soul:人格与规则引擎 ------ 全局行为的统一管控
Soul对应Harness模型中的指令层+约束层,解决的是"Agent是谁、能做什么、不能做什么、输出要符合什么标准"的问题,是整个系统的"规则中枢"。

1. Soul的载体与核心内容
Soul的配置全部以明文Markdown文件管理,支持全局+项目级多层级覆盖,核心包括身份设定、行为准则、输出规范、项目专属规则四大类。
📌 真实样例:.hermes.md(全局Soul配置简化版)
markdown
# Hermes 全局配置
## 身份
你是一名资深AI工程助手,专注于Agent开发、代码调试与技术方案设计。
## 核心准则
1. 回答必须基于事实,不确定的内容明确说明,禁止编造
2. 涉及命令行操作、代码修改,必须标注风险与回滚方案
3. 优先给出可落地的执行方案,而非空泛理论
4. 禁止执行任何可能破坏系统、泄露隐私的危险操作
## 输出规范
- 技术内容使用结构化分点呈现,关键术语加粗
- 代码块标注语言类型,附带必要注释
- 长文先给结论摘要,再展开细节
## 权限边界
✅ 允许:读取本地项目文件、执行只读命令、生成代码方案
⚠️ 需确认:修改配置文件、执行安装命令、调用外部API
❌ 禁止:删除文件、格式化磁盘、访问非授权目录、越权操作
对应文件包括全局 .hermes.md、项目级 AGENTS.md 等,项目级规则会覆盖全局规则,实现场景化适配。
2. 运行机制
- 每次会话启动、任务执行前,系统自动加载对应层级的Soul配置,注入系统提示词,全程约束模型输出;
- 支持多环境无缝切换:不同项目、不同场景加载不同的Soul配置,无需修改代码;
- 约束前置校验:所有工具调用、输出内容都会先经过Soul规则校验,避免越权操作、违规输出。
3. 对比传统Prompt模式的优势
普通Agent的角色设定、规则约束往往散落在代码的各个Prompt模板里,修改麻烦、难以统一管理,多人协作时极易出现规则不一致的问题。
Soul引擎将所有规则集中化、文件化管理,统一加载、统一生效,规则调整不需要改动业务代码,可维护性大幅提升。
四、Crons:主动调度与多端网关 ------ 从被动响应到主动执行
传统Agent的运行模式是"人类发指令 → Agent执行",本质是被动工具;而Crons模块让Agent具备了主动执行能力,对应Harness模型的编排层调度能力。
1. 两大核心能力
(1)定时任务调度
支持标准Cron表达式配置周期性任务,到点自动触发执行,无需人工发起指令。
📌 真实样例:crons.yaml 配置片段
yaml
tasks:
# 每天早上9点生成昨日工作日报
- name: daily-report
cron: "0 9 * * *"
skill: work-report-generator
target: telegram
params:
time_range: yesterday
# 每周一凌晨2点执行AIQC周度质检
- name: weekly-aiqc-check
cron: "0 2 * * 1"
skill: aiqc-quality-inspection
target: feishu-group
params:
dataset: weekly_batch
- 典型场景:每日定时生成工作日报、项目进度同步;定时执行系统巡检、数据备份;每周自动生成周报、月度数据统计;
- 闭环联动:任务执行结果自动写入持久记忆,同时沉淀对应技能,形成"定时执行→持续优化"的正向循环。
(2)多平台消息网关
Crons同时作为多渠道统一接入层,支持CLI命令行、Telegram、Discord、企业微信、飞书等20+平台接入。
- 用户可以在任意终端向Agent下发指令,任务状态与结果也可以推送到指定渠道;
- 底层逻辑完全统一,只需要切换接入配置,不需要重写业务逻辑。
2. 设计意义
Crons让Agent的角色从"随叫随到的工具",变成了"7×24小时值守的智能助理";结合记忆与技能系统,它可以自主完成大量周期性、重复性工作,彻底释放人力。
五、Self-improving Loop:自进化闭环 ------ 五大支柱的灵魂联动

前面四个模块是独立的系统组件,而自进化闭环是将它们串联起来的核心机制,也是Hermes"自进化"的本质来源。没有这个闭环,Memory、Skills、Soul、Crons只是四个孤立的功能;有了这个闭环,系统才具备了自主成长的能力。
1. 完整闭环链路
一次完整的自进化循环分为5个步骤:
- 任务触发:通过人工指令或Crons定时触发任务,系统加载对应Soul规则,检索相关记忆与技能;
- 执行落地:基于已有技能与记忆完成任务执行,调用对应工具与资源;
- 结果评估:任务完成后,自动校验结果是否符合要求、是否达成预设目标;
- 复盘沉淀 :
- 任务成功:提炼执行流程,生成或优化对应Skill,关键信息写入持久记忆;
- 任务失败:记录失败原因、边界条件,更新记忆中的避坑条目,避免下次重蹈覆辙;
- 能力升级:下一次同类任务启动时,会复用本次沉淀的经验与技能,表现优于上一次。
2. 最小Demo:自进化闭环伪代码
python
def self_improving_loop(task):
# 1. 加载上下文
soul = load_soul_config()
memory = retrieve_memory(task)
skill = match_skill(task)
# 2. 执行任务
result = execute_task(task, soul, memory, skill)
# 3. 评估结果
is_success = evaluate_result(result, task.goal)
# 4. 复盘沉淀(核心:反向优化系统本身)
if is_success:
if skill is None:
generate_new_skill(task, result) # 生成新技能
else:
optimize_existing_skill(skill, result) # 优化旧技能
update_memory(task, result, success=True)
else:
update_memory(task, result, success=False) # 记录踩坑
return result
3. 关键认知澄清
很多人会误解"自进化"是模型自己微调训练自己,这是完全错误的。
Hermes的自进化,是外围Harness系统的进化,而非模型本身的参数训练。它不修改大模型的参数,不做微调训练,所有的进化都发生在记忆、技能、规则这些外围系统层面。这种模式的优势是:
- 成本极低,不需要额外训练算力;
- 完全可控,所有进化内容都是明文可查的,不会出现不可预知的能力漂移;
- 落地门槛低,基于任意大模型都可以搭建这套机制。
六、五大支柱协同运作:一个完整场景示例
我们以AI自动化质检(AIOQC)场景为例,看五大支柱如何配合完成一次自进化循环:
- Crons触发:每周一凌晨2点,定时任务触发,自动拉取本周的待质检样本;
- Soul加载:加载质检项目的专属规则,包括质检标准、输出格式、数据权限边界;
- Memory+Skills检索:自动匹配"AI质检"历史Skill,加载过往沉淀的质检流程、易错点记录;
- 执行任务:按照技能流程完成全量样本质检,生成结构化质检报告;
- 闭环沉淀:本次质检的新规则、新坑点写入持久记忆,同时优化质检Skill的步骤,补充本次新增的校验逻辑;
- 结果推送:Crons将质检报告推送到企业微信对应群组。
每执行一次,质检的准确率、效率就会提升一次,这就是自进化智能体的核心价值。
小结与下篇预告
五大支柱中,Memory是信息底座,Skills是能力载体,Soul是规则边界,Crons是执行入口,自进化闭环是串联所有模块的核心机制。它们共同构成了一套完整的、可以持续成长的智能体系统,也是Harness Engineering思想的最佳落地实践。
理解了核心架构之后,下一篇我们进入实战环节,手把手带你从零开始本地部署Hermes Agent,完成环境安装、模型接入、基础配置与CLI调试,所有脚本可直接复制运行。