资讯详情

Hermes实战:学习闭环,自我提升和进化——技能怎么从经验里诞生

📅 2026/9/10 23:46:01 | 华诺云谱 👁 阅读
Hermes实战:学习闭环,自我提升和进化——技能怎么从经验里诞生
那套脚本三个月后我不敢改。系列第 3 篇《第一个真实任务》我写了三件套collect.py 抓源、curate.py 调 Hermes 汇总、render.py 出网页。今天让我回去改一行得先翻半天代码才想得起当初为什么这么写——RSS 为什么按最近两天过滤、为什么从「今日概览」截正文、为什么 seen.json 要加进 .gitignore。坑全在我脑子里不在代码里。人脑会忘脚本会腐烂。能留下来的是那些被显式固化成技能的经验。今天来看看Hermes如何从经验里诞生skill实现自我提升和进化。先看现象一套脚本三个月后没人敢改先把话说透脚本的坑都不在代码里。系列第 3 篇那个 collect.py最大的坑是 RSS 全量存档——OpenAI 一个源抓到 1156 条得按最近两天过滤。这个坑写进代码了吗没有。RECENT_DAYS 2那行注释没写为什么是 2 天MAX_PER_SOURCE 8也没写为什么是 8。三个月后回去看只会觉得这两个数字是拍脑袋定的。同理extract_report里为什么用rfind不用find因为推理模型输出里有多版草稿「今日概览」出现过好几次取最后一次才是正文。这个「为什么」在函数注释里没有。智谱和豆包是 JS 渲染的 SPA、静态抓取拿不到条目——这个认知在SOURCES列表的注释里占了半行但「为什么拿不到、以后怎么办」全靠脑子记。一句话脚本会腐烂是因为它只固化了「做什么」没固化「为什么」。人脑会忘文档懒得写代码不会解释——这套经验不显式固化成别的东西三个月后就是重新踩一遍。技能从经验诞生一条 prompt 固化一套脚本所以我想试试 Hermes 的看家本领把这套「踩坑踩出来的流程」直接交给它让它固化成技能。不是让它记住是让它写成一份可复用的 SKILL.md。做法就一句话——告诉它我写了什么让它用 skill_manage 工具创建技能。这是本机实录prompt 逐字我刚把『收集各家公司 AI 动态』写成了一套 Python 脚本collect.py多源 RSS/HTML 适配器 优雅降级 跨天去重curate.py调 Hermes 汇总render.py生成网页。请把这套经验固化为一个可复用技能用 skill_manage 工具 actioncreate 创建 SKILL.md描述『各家 AI 动态日报』从收集到出页的完整程序化流程。脚本文件本身不用写把流程步骤和依赖讲清楚即可。注意我特意说了「脚本文件本身不用写」——我想看的是它怎么把流程讲清楚而不是把代码再抄一遍。它直接动手了。返回逐字技能已创建并验证落盘。 技能名ai-daily-digest 路径C:\Users\admin\AppData\Local\hermes\skills\automation\ai-daily-digest\SKILL.md149 行7476 字节落盘在%LOCALAPPDATA%\hermes\skills\automation\ai-daily-digest\SKILL.md。一条 prompt一套跑了三轮才顺的流程变成了一份可复用的技能文件。这里先留个疑问**它没把我写的脚本抄进去。**为什么这反而是对的第 5 节讲。这套操作的背后是一条固定链路画成时序图/learn是入口——CLI、gateway、桌面版的「Learn a skill」面板都是同一个入口。它背后是agent/learn_prompt.py的build_learn_prompt把「刚做完的事」蒸馏成一份学习提示交给skill_manage工具actioncreate落盘。关键在中间那一跳学习提示里内嵌了一套硬编码的「技能创作标准」。这就是下一节要拆的东西。技能创作标准为什么「记住做法」不够先破一个错觉你以为让 agent「记住做法」就是学习闭环——不是。系列第 4 篇讲过Hermes 能把步骤写进 MEMORY.md 长期记忆。但记忆是笔记本不是技能。把「collect → curate → render」写进记忆下次它还是得从零搭一遍记忆只能回答「是什么」回答不了「怎么按一套已验证的流程跑」。技能才是可复用的执行知识。那「记做法」和「建技能」的区别在哪在后者有一套硬性的创作标准。这套标准不是人写的提示词是build_learn_prompt里硬编码进去的规则agent 每次创建技能都被要求遵守description ≤60 字符——技能索引展示时截断到 60而且每次加载都读它太长浪费上下文必须有验证节——单命令能证明技能可用不能是个没法验证的黑盒声明依赖的工具——text_to_speech、cronjob、memory、skill_view、execute_code技能要用什么工具先写清楚禁模板腔词——comprehensive、seamless、advanced、robust 这类空词不让用不自称 Hermes——技能是知识包不是身份声明声明 platforms——在哪些平台跑要写清简单技能 ~100 行、复杂 ~200 行——超过就该拆不要 router / index / hub 技能——入口聚合类技能是维护负担非平凡脚本放 scripts/——用skill_manage write_file单独写不塞进 SKILL.md 正文。这套规范压成一句话**技能必须能被索引、能被验证、不污染系统。**description 短到能进索引、每次加载不心疼验证节证明它真能跑依赖工具声明清楚、让它在对的沙箱里跑禁模板腔词和不自称 Hermes保证它不污染提示词质量。这三条是一条能长期共存的技能库的底线。对照一下就很清楚。Anthropic 的 Agent SkillsClaude Code 那套描述上限是 1024 字符、鼓励把触发词写全Hermes 对自己生成技能的约束是 60 字符。为什么差这么多因为场景不同——Claude Code 的技能是你手工写、写一次长期用多花点描述成本换触发准确Hermes 的技能是 agent 自动批量生成的要控制索引体积和加载成本只能往短里压。一个是精装修一个是量产件标准不一样很正常。技能长什么样ai-daily-digest 的解剖先兑现第 3 节那个疑问它没把 collect.py 抄进去为什么是对的。把技能全文读一遍就明白了。这是 Hermes 自动生成的技能正文不是人写的frontmatter--- name: ai-daily-digest description: 搭建和维护『各家 AI 公司动态日报』程序化流水线collect.py多源 RSS/HTML 适配器 优雅降级 跨天去重→ curate.py调 Hermes 汇总→ render.py生成静态网页。需要从零搭建、扩展新数据源、或排查该日报流水线故障时使用。触发词AI 日报、AI 动态、daily digest、collect、curate、render。 ---正文的骨架从「何时使用」到「新增一个公司源」何时使用——从零搭建、新增数据源、排障三种场景流水线总览——一张 ASCII 流程图 三段各一句职责 建议目录结构阶段一 collect.py / 阶段二 curate.py / 阶段三 render.py——三段详解每段「职责 → 关键设计 → 输出与依赖 → 运行与验证」端到端调度——cron / schtasks常见坑 7 条新增一个公司源 checklist。流水线总览那一段数据源(RSS/HTML) → collect.py → data/items.jsonl → curate.py → output/digest.md → render.py → docs/index.html注意它把items.json建议成了data/items.jsonl、把目录结构推成了 daily-digest/ 标准布局、给每阶段配了独立验证命令。这是「通用版」——不是我那份items.json的具体实现是「这个活儿应该怎么组织」的提炼。它的「关键设计」段把我踩的坑全部转译成了工程原则优雅降级——每个源单独 try/except单源失败只记日志不影响其它源全部失败才算整体失败跨天去重——已见条目写data/seen.json去重键要稳定URL 带时间戳/查询参数先规范化失败兜底——curate 环节模型调用失败就退化为「原样列表」页面不能断更。我那份代码里这些原则都埋在具体逻辑里它把这些抽出来写成「做这个活要遵守的原则」。规范要求的验证节在产物里被拆成了每段的「运行与验证」——每个环节一条可复跑的命令。思路一致技能必须能被验证不能是个没法证明能跑的黑盒。最后那 7 条常见坑几乎就是系列第 3、4 篇踩坑的清单化## 常见坑 1. RSS/页面结构变更 → 选择器失效每源独立适配器 日志降级日报不整体挂掉 2. 日期解析报错用 python-dateutil 容错解析解析失败给默认时间并打 WARNING 3. 重复条目去重键要稳定URL 带查询参数时先规范化再去重 4. 中文乱码全程 ensure_asciiFalse UTF-8 读写requests 响应用 apparent_encoding 兜底 5. 汇总环节抽风curate.py 必须有降级路径退化为原始列表页面不能断更 6. 状态文件被提交seen.json、data/ 加入 .gitignore 7. 子进程调 hermes 的输出噪音解析时取约定标记之间的正文别整段当结果第 5 条对应系列第 3 篇的 reasoning_content 混输出、第 6 条对应系列第 4 篇的 history.json 进 .gitignore、第 7 条对应 curate.py 截取正文——学习闭环把隐性经验变成了显式技能。到这里总结一下**技能是可复用知识脚本是具体实现。**Hermes 没有逐字复刻 collect.py它把程序化流程——分阶段、优雅降级、去重键稳定、失败兜底、验证命令——泛化提炼出来固化成一份「怎么做」的知识。脚本会腐烂因为它绑定在特定实现上技能不会因为它沉淀的是流程本身。使用中改进curator 后台维护技能诞生只是前半场。后半场是「使用中改进」——这也是 Hermes 和静态技能包的根本区别。先看机制。agent/curator.py里有个maybe_run_curator()是后台辅助任务靠「空闲」触发agent 一段时间没活干时它周期性 review 一遍技能库。干的活三件review agent 创建的技能——只碰is_agent_created标记的技能你手工写的、pinned钉住的它跳过auto-transition 生命周期状态——按活动时间戳把技能在生命周期里推着走skill_manage patch——发现技能过时或可优化用 patch 定向改不整篇重写。为什么只碰 agent 创建的因为那是「它自己长出来的东西」它自己维护手工技能是你的资产它不越界。为什么 pinned 跳过pin 就是「这个别动」的显式声明。更有意思的是创建那一刻的承诺。生成 ai-daily-digest 时Hermes 主动核实了hermes -z PROMPT这个 one-shot 参数存在它查了 help然后说了一句关键的话「后续踩到新坑直接 patch 进技能」。这句话不是客套——skill_manage patch就是后半场的写入通道。技能不是写完就封版是边用边长。画出来就是一条闭环的两个半场诚实边界照旧交代curator 本机还没触发过。它需要「空闲 interval」两个条件我这台机器没跑出那个空闲窗口所以 curator 只讲了机制实操标「待核实」。skill_manage patch 同理——机制在源码里实操等下次踩坑。这两条我挂「待核实」不糊弄。学习图谱journey 时间线技能和记忆都在长Hermes 怎么把「成长过程」本身可视化答案是学习图谱。agent/learning_graph.py把三样东西织成一张图skills/.usage.json技能使用追踪 memories记忆 skills 目录 →build_learning_graph()输出节点、边、聚类。hermes journey命令把它渲染成一条时间线——技能和记忆随时间的演化。CLI、TUI、桌面版画的是同一份数据。本机实测跑了一次hermes journey --json如实报数nodes 里已经有一个memory:profile:0——那是系列第 4 篇写入的 USER.md 画像被图谱记成了第一个 memory 节点edges 还是空的clusters 里只有{category: memory, count: 1}。至于技能节点还没出现。为什么因为 ai-daily-digest 刚创建、还没被使用。skills/.usage.json是「技能使用后才生成的」追踪文件——技能被真实触发过才产生 usage 记录才进学习图谱。现在这文件还没落盘如实写。技能的生命周期用它自己生成的图来说话created → enabled → used → patched是这个闭环的「活」的阶段obsolete → archived是 curator 治理的「死」的阶段。载体项目落地踩过的坑固化进技能把镜头拉回载体项目。这一步的收获很直接系列第 3、4 篇踩过的坑现在变成了一份别人或三个月后的我可以直接照做的技能。hermes skills list确认它被收录┌─────────────────┬────────────┬────────┬───────┬─────────┐ │ Name │ Category │ Source │ Trust │ Status │ │ ai-daily-digest │ automation │ local │ local │ enabled │ └─────────────────┴────────────┴────────┴───────┴─────────┘ 0 hub-installed, 0 builtin, 1 local — 1 enabled, 0 disabled1 个本地技能enabledTrust 是 local本机来源可信。下次再起一个新会话遇到「AI 日报」相关的活description 里的触发词就能把它拉出来照着「何时使用 → 流水线总览 → 常见坑」直接干活。这比「把经验写进记忆」强在哪记忆是回答问题的素材技能是可执行的流程。系列第 4 篇我让 Hermes 记住「跨天去重用 history.json」它下次能告诉你方案是什么这个技能能让它下次直接按「去重键要稳定、seen.json 进 .gitignore」这套已验证的流程把活跑出来。一个是被动回忆一个是主动执行。而且这份技能会继续长。哪天我又踩一个新坑——比如某个源改版、或者 Hermes 上游接口变了——直接 patch 进「常见坑」第 8 条。技能越用越全这是下一篇 《技能系统实战》的主题手写技能 技能库治理。这篇先到这里落地的坑已经沉淀成技能的骨肉。结论自进化 Agent 的分水岭回到开头那句话脚本会腐烂经验不会——前提是经验被显式固化成了技能。学习闭环两个半场各管一件事**前半场诞生靠 /learn → build_learn_prompt → skill_manage create把一次执行提炼成可复用知识后半场维护靠 curator 后台 review skill_manage patch让技能在使用中持续改进。**诞生解决「从 0 到 1」维护解决「越用越懂」。为什么说这是分水岭普通聊天机器人你教会它一件事它下次还是从零开始——最多靠记忆回答你「是什么」。Hermes 是把它执行过的成功路径固化成技能下次直接复用还边用边 patch。一个只有记忆、没有技能的 agent和一个有技能会进化的 agent差的不是一句提示词是「成长」本身。但技能也会腐烂——没人用了30 天过时、90 天归档这是 curator 在治理。所以技能系统不是「写完就完事」是一套需要治理的生命周期。手写技能怎么组织、技能库怎么治理、人机怎么共创这是 下一篇《技能系统实战》要展开的关注别走丢。最后留一个问题给你你最想让 agent 替你固化的是哪段反复做、又懒得每次重新教它的经验
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。