Hermes Agent通过五步机制实现技能自动沉淀与复用:一、多维触发条件判定是否生成技能;二、结构化抽象操作链为参数化技能;三、按规范持久化为Markdown技能文件;四、上下文感知动态注入匹配技能;五、运行时反馈驱动技能自动补丁更新。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您让Hermes Agent完成一项复杂任务,例如分析CSV并提取Top N指标,它可能在首次执行中调用多个工具、经历错误与修正;任务结束后,系统并未终止于结果交付,而是立即启动经验结构化流程。以下是该机制自动触发与落地的具体方式:
一、基于多维触发条件的技能自动生成
技能提取并非依赖人工指令,而是由系统根据任务执行轨迹中的关键信号自动判定是否进入沉淀流程。当满足任一预设条件时,skill_manage工具即被调用,启动标准化技能文档构建。
1、检测到单次任务中工具调用次数≥5次,且最终成功返回预期结果;
2、识别出从报错状态(如CSV解析失败、列名不匹配)中通过至少2轮修复动作恢复执行并达成目标;
3、发现同一类操作模式在不同会话中重复出现3次以上(通过语义相似度比对任务描述与步骤结构);
4、用户显式给出正向反馈信号,例如输入“这个流程很好,记下来”或对某步输出标注✅推荐为标准步骤。
二、技能内容的结构化抽象与参数标注
生成过程不是简单记录操作日志,而是对原始执行链进行语义升维:剥离具体值,识别可变要素,封装为带约束说明的参数占位符,确保技能具备跨场景泛化能力。
1、将原始命令中硬编码路径(如/data/sales_q1.csv)替换为input_file: CSV格式数据文件路径;
2、将固定数值(如“销售额最高的5个城市”中的数字5)抽象为top_n: 正整数,指定返回条目数量;
3、对依赖外部环境的部分(如Vercel项目ID、API密钥位置)标注为env_dependency: 需预先配置VERCEL_PROJECT_ID与VERCEL_TOKEN;
4、将调试过程中曾触发的典型错误(如pandas DtypeWarning、缺失列报错)整理进“已知陷阱”区块,并附带对应绕过方案。
三、技能文件的本地持久化与命名规范
生成后的技能以Markdown格式写入本地文件系统,路径固定为~/.hermes/skills/,文件名遵循语义化+时间戳规则,便于版本追踪与模糊检索。
1、主文件名由任务类型+核心动词+哈希前缀构成,例如analyze-csv-top-n_8a3f2d.md;
2、文件头部包含YAML元数据块,声明skill_name、version、last_updated、trigger_keywords(如“分析CSV”“找出最高”“销量排名”);
3、正文严格按模板组织:描述、输入参数、执行步骤、已知陷阱、验证方法、示例调用;
4、若技能涉及辅助资源(如专用Python脚本、正则模板),自动创建同名子目录,将资源文件置入其中。
四、上下文感知的技能加载与动态注入
当新任务输入与已有技能的trigger_keywords或语义向量相似度超过阈值时,Hermes不重新规划全流程,而是将对应Skill全文作为结构化上下文注入当前推理阶段,使大模型直接基于成熟路径展开执行。
1、系统扫描~/.hermes/skills/下全部.md文件,提取trigger_keywords构建轻量级倒排索引;
2、对当前用户指令做分词与嵌入,执行近似最近邻匹配,返回Top 3候选Skill;
3、将匹配度最高Skill的完整内容(含参数说明与陷阱提示)拼接至system prompt末尾,标记为[INJECTED SKILL: analyze-csv-top-n];
4、模型在生成响应时,自动引用该Skill中的步骤编号与参数定义,避免自由发挥导致偏差。
五、运行时反馈驱动的技能自动补丁机制
技能并非静态存档,而是在每次调用中接受实时校验:若执行偏离预期(如步骤跳过、参数未填充、验证失败),系统将差异片段提取为patch指令,触发原地更新。
1、在步骤执行环节插入钩子,捕获实际调用命令与Skill文档中声明的命令差异;
2、若发现新出现的必需参数(如新增--ignore-case选项),自动在参数区块追加条目并标注[ADDED VIA PATCH];
3、若某陷阱在本次未复现但历史频发,系统降低其权重;若某旧陷阱再次触发,则强化其描述并补充新解决方案;
4、所有patch操作均生成独立diff快照,存储于对应Skill文件同目录下的patches/子目录中,保留完整演进痕迹。











