ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Hermes Agent 是如何“学习”新技能的?

Hermes Agent 是如何“学习”新技能的? 文章目录一、Hermes 所说的“技能”是什么二、Hermes 的“学习”不是模型训练1. 模型参数学习2. 事实记忆3. 程序性技能三、Hermes 如何获得一个新技能1. 用户显式要求学习2. 在任务过程中自主创建技能3. 在任务完成后进行后台复盘四、Hermes 如何判断什么时候应该学习5 次工具调用creation_nudge_interval: 15五、技能是如何被保存和修改的创建技能局部修改技能六、Hermes 如何在后续任务中调用技能第一步只展示技能索引第二步读取相关 SKILL.md第三步按需加载脚本和资料七、技能是如何持续进化的八、Hermes 如何避免技能库无限膨胀九、技能和工具有什么区别Tool提供能力Skill告诉 Agent 如何使用能力十、这种学习机制有什么价值1. 不需要重新训练模型2. 可解释3. 可版本控制4. 适合企业私有环境5. 跨会话复用十一、这种机制的局限1. 成功一次不等于技能正确2. Agent 的反思未必可靠3. 软件版本变化会导致技能过时4. 自动生成脚本具有安全风险5. 技能选择可能出错十二、生产环境应该如何使用技能必须标注适用范围技能必须包含验证步骤高风险操作必须单独审批技能应纳入 Git 管理十三、其他 Agent 是否有类似机制十四、总结在传统大模型应用中模型在部署完成之后其参数通常不会继续变化。即使用户反复纠正它同样的问题换一个会话它仍然可能再次犯错。Hermes Agent 尝试解决这个问题。它可以把一次任务中有效的操作方法、错误修正过程和工具调用经验整理成可以长期保存和重复使用的技能。下一次遇到类似任务时Agent 不需要重新探索而是可以直接调用已有技能。不过这里的“学习”并不是重新训练模型也不是在线更新神经网络参数。Hermes 的做法更接近将任务经验转化为可检索、可编辑、可执行的程序性记忆。本文介绍 Hermes Agent 的技能结构、学习流程、触发机制、复用方式以及这种机制的优势和局限。一、Hermes 所说的“技能”是什么Hermes 中的技能通常不是一段保存在数据库里的简单文字而是一个结构化目录。一个典型技能可能包含sglang-multinode-deployment/ ├── SKILL.md ├── scripts/ │ ├── deploy.sh │ └── verify.py ├── references/ │ └── troubleshooting.md └── templates/ └── config.yaml其中最核心的是SKILL.md。它负责描述这个技能适用于什么场景任务应该按照什么步骤执行需要调用哪些工具常见错误是什么如何判断任务是否成功还需要读取哪些脚本和参考资料。例如一个多机部署技能可能写成--- name: sglang-multinode-deployment description: 部署和排查 SGLang 多机多卡推理服务 --- # When to Use 适用于 SGLang 多机部署、LeaderWorkerSet、 TP/DP 配置和分布式通信故障排查。 # Procedure 1. 检查每个节点的 GPU 数量。 2. 检查 MASTER_ADDR 和 MASTER_PORT。 3. 验证节点间端口连通性。 4. 检查 NCCL 网络接口配置。 5. 启动主节点和工作节点。 6. 检查所有 rank 是否完成初始化。 7. 发送最小推理请求进行验证。 # Common Pitfalls - TP 大小与 GPU 数量不一致。 - 工作节点连接了错误的主节点地址。 - NCCL_SOCKET_IFNAME 选择错误。 - TCPStore 端口被防火墙拦截。 - 不同节点的软件版本不一致。 # Verification 检查健康接口、模型列表接口和最小推理请求。 确认所有节点均无异常退出。因此Hermes 技能更像是一份由 Agent 使用的操作手册。它既可以包含自然语言步骤也可以附带真正可执行的 Shell、Python 和配置文件。二、Hermes 的“学习”不是模型训练讨论 Agent 学习机制时首先要区分三种完全不同的方式。1. 模型参数学习例如继续预训练监督微调强化学习LoRA 微调。这类方法会改变模型参数需要训练数据、计算资源和训练流程。Hermes 默认的技能学习不属于这一类。2. 事实记忆例如 Agent 记住用户的服务器默认使用 Ubuntu 22.04。 用户更习惯使用 vLLM 部署模型。这类信息通常短小、稳定属于陈述性记忆。3. 程序性技能例如如何排查 SGLang 多机服务中的 TCPStore Broken pipe。这类内容通常包括多个步骤、命令、工具调用和错误处理逻辑。Hermes 技能主要解决第三类问题。因此Hermes 的学习过程可以概括为任务执行 ↓ 收集工具调用、错误和修正过程 ↓ 抽取可复用的操作流程 ↓ 生成或修改技能文件 ↓ 保存到长期技能库 ↓ 未来任务中检索并调用模型本身没有发生参数变化但 Agent 的整体行为能力发生了变化。三、Hermes 如何获得一个新技能Hermes 获取技能主要有三种方式。1. 用户显式要求学习用户可以直接要求 Hermes 学习某个过程例如/learn 请学习刚才排查 SGLang 多机启动失败的过程也可以要求它学习一个网站中的操作文档某个本地 SDK一组命令行操作企业内部部署规范刚完成的一次复杂任务某种固定格式的报告生成方法。Hermes 会分析相关内容并创建对应的技能目录和SKILL.md。这种方式适合用户明确知道某个流程未来还会重复使用的情况。2. 在任务过程中自主创建技能Hermes 的系统提示会要求 Agent 关注那些值得沉淀的任务经验。典型情况包括任务调用了较多工具执行过程比较复杂Agent 先走错了方向后来找到正确方案用户指出了 Agent 的错误某个问题需要特定的非显然处理步骤同类任务未来可能重复出现。例如Agent 在部署服务时最初使用了错误的网络接口后来通过日志发现问题并修正。这次经验不只是一个简单事实而是一个完整排障流程启动失败 ↓ 检查日志 ↓ 发现 NCCL 连接超时 ↓ 检查网卡列表 ↓ 修正 NCCL_SOCKET_IFNAME ↓ 重新启动并验证Hermes 可以将这个过程整理为技能避免下一次重新试错。3. 在任务完成后进行后台复盘Hermes 还支持任务结束后的后台复盘。前台 Agent 完成用户任务后系统可以启动另一个受限 Agent对当前任务轨迹进行检查这次任务是否产生了值得复用的经验 是否应该创建一个新技能 已有技能是否存在错误 用户的纠正是否应该写回技能这个后台 Agent 通常只拥有记忆和技能管理相关权限不负责继续执行原业务任务。这种设计有两个好处。第一不会让技能总结过程干扰用户正在进行的对话。第二复盘 Agent 可以站在任务完成后的角度重新分析整条执行轨迹而不是边执行边仓促总结。四、Hermes 如何判断什么时候应该学习Hermes 中有两个容易混淆的数字。5 次工具调用官方提示中会把较多工具调用视为任务复杂度信号。例如一个任务已经调用了大约 5 次以上工具就说明它可能包含多步骤操作特定顺序依赖错误修复环境适配可复用工作流。此时 Agent 应该考虑是否创建技能。但这通常是提示模型进行判断的经验规则并不是严格的程序触发条件。creation_nudge_interval: 15Hermes 配置中还存在类似设置skills:creation_nudge_interval:15它表示系统每经过一定数量的工具调用迭代就提醒 Agent 检查一次当前是否出现了值得创建或更新的技能因此两者的含义不同5 次左右判断任务可能值得沉淀的经验阈值15 次系统周期性提醒 Agent 检查技能机会的配置项。将该配置设置为0通常可以关闭周期提醒。五、技能是如何被保存和修改的Hermes 通过技能管理工具操作技能文件。常见操作包括create patch edit write_file创建技能当系统发现一个全新的工作流时可以新建技能目录skills/ └── vllm-cache-debugging/ ├── SKILL.md └── references/局部修改技能如果已有技能只是部分内容需要更新Hermes 更适合使用patch。例如原技能中写道使用 --tp 8 启动模型服务。后来发现在两机环境中还需要检查 LeaderWorkerSet 注入的节点变量。技能可以被修订为使用 --tp 8 启动模型服务同时检查主节点地址、 节点索引、工作节点索引和 rank 计算是否一致。相比整体重写局部修改有几个优势不容易覆盖原有正确内容更方便查看前后差异更适合版本管理更容易进行人工审核可以保留技能的演化历史。六、Hermes 如何在后续任务中调用技能如果技能库越来越大不能把所有技能的完整内容都放进模型上下文。否则会出现两个问题上下文消耗过大无关技能干扰模型判断。Hermes 采用的是渐进式加载机制。第一步只展示技能索引Agent 最初只看到技能的摘要信息例如名称sglang-multinode-deployment 描述用于部署和排查 SGLang 多机多卡服务 路径~/.hermes/skills/sglang-multinode-deployment/这一步占用的上下文很少。第二步读取相关SKILL.md当 Agent 判断当前任务与某个技能相关时再加载这个技能的完整说明。例如用户问SGLang 第二个节点 rank15 报 TCPStore Broken pipe 应该怎么排查Agent 可以匹配到多机部署技能然后读取其完整步骤。第三步按需加载脚本和资料只有执行到具体步骤时才进一步读取scripts/verify_network.py references/nccl-troubleshooting.md templates/lws-config.yaml这样Hermes 可以拥有较大的技能库同时控制上下文成本。七、技能是如何持续进化的Hermes 的技能并不是创建之后就永久不变。在后续任务中如果出现以下情况Agent 可以继续修改技能某个命令已经过时软件新版本改变了参数现有步骤缺少验证环节一个常见错误没有被记录用户指出了更准确的处理方式原技能的触发范围过宽或过窄原流程在新的环境中失败。例如某个技能最初只记录如果服务启动失败检查日志。经过多次实际使用后它可能逐步演化为1. 检查主节点是否正常监听 TCPStore 端口。 2. 检查工作节点是否能连接该端口。 3. 检查 MASTER_ADDR 是否为 Pod 内可达地址。 4. 检查节点间 DNS 解析。 5. 检查 NCCL_SOCKET_IFNAME。 6. 检查 rank、world size 和 TP 配置。 7. 查看第一个失败 rank而不是只看最后退出的进程。这意味着技能库可以随着使用不断积累工程细节。八、Hermes 如何避免技能库无限膨胀自动学习机制会带来一个直接问题技能越来越多。长期运行后可能出现多个技能描述相似同一个问题被重复创建技能粒度过细旧版本技能失效技能长期无人使用不同技能之间存在冲突。Hermes 使用 Skill Curator 管理技能生命周期。技能可能经历active ↓ stale ↓ archived其中active当前活跃技能stale长期未使用或可能过时archived不再默认参与检索但仍可恢复。Curator 可以根据技能的查看、调用和修改情况识别长期未使用的技能。它还可以提出一些治理建议例如合并两个高度相似的技能更新过时命令缩小技能触发范围将过长技能拆分将低价值技能归档。不过自动合并技能具有较高风险因此生产环境中更适合采用人工审核。九、技能和工具有什么区别这是理解 Hermes 的关键。Tool提供能力工具解决的是“Agent 能不能做”。例如执行 Shell查询数据库调用浏览器发送邮件访问企业 API操作 Kubernetes读取本地文件。如果系统没有数据库工具那么仅靠技能无法让 Agent 查询数据库。Skill告诉 Agent 如何使用能力技能解决的是“Agent 应该怎么做”。例如如何使用 SQL 工具统计峰值并发如何使用 Kubernetes 工具排查 Pod如何使用 Shell 完成多机连通性检测如何按照企业规范生成事故报告如何组合多个工具完成部署验证。可以用一句话概括工具定义能力边界技能定义解决问题的方法。因此Hermes 学会一个新技能不代表它凭空获得了一项新权限。它只是学会了如何更稳定地组合已有工具。十、这种学习机制有什么价值1. 不需要重新训练模型创建一个技能通常只需要生成文本和脚本不需要 GPU 训练。与微调相比它具有成本低生效快修改方便可以随时回滚不影响基础模型。2. 可解释技能是普通文件用户可以直接查看。例如可以检查Agent 到底学到了什么哪一步是用户纠正的是否写入了危险命令为什么下次会使用某种流程某个技能适用于哪些环境。这比隐式写入模型权重要透明得多。3. 可版本控制技能目录可以放入 Gitgitaddskills/gitcommit-mupdate sglang troubleshooting skill团队可以对技能进行diffreview回滚分支管理版本标记发布审批。从工程角度看技能可以像代码一样管理。4. 适合企业私有环境通用模型通常不知道企业内部系统例如内部部署平台私有 API日志目录告警规范变更审批流程特定模型服务参数团队报告模板。这些内容不适合重新训练一个大模型但很适合写成技能。5. 跨会话复用普通对话上下文结束后任务细节通常会丢失。技能保存到本地后可以被后续会话继续使用。这让 Agent 从“一次性助手”变成了能够积累工作经验的系统。十一、这种机制的局限Hermes 的技能学习虽然实用但不能简单等同于真正的自主学习。1. 成功一次不等于技能正确一次任务执行成功可能只是因为环境恰好满足条件某个错误没有暴露命令产生了副作用使用了偶然有效的参数验证步骤不充分。如果直接把一次成功轨迹保存为技能可能会固化错误经验。2. Agent 的反思未必可靠技能是否值得保存、应该如何总结仍然由大模型判断。模型可能忽略关键步骤总结错误因果关系把无关步骤当成必要条件编造不存在的参数过度泛化某次经验。因此技能生成之后仍然需要测试。3. 软件版本变化会导致技能过时例如某个 vLLM 参数在旧版本有效在新版本中可能被重命名被废弃默认值发生变化行为发生变化。技能中如果没有明确版本范围容易误用。4. 自动生成脚本具有安全风险技能可以包含 Shell 和 Python因此可能产生删除文件覆盖配置修改生产资源下载未知依赖访问敏感信息输出密钥执行高权限命令。技能本质上属于可执行资产不能只当作文档管理。5. 技能选择可能出错技能能否正确触发依赖名称和描述。如果描述过宽用于部署模型可能在大量无关任务中被错误触发。如果描述过窄用于 2026 年 7 月 27 日某台服务器上的 SGLang 错误又可能无法在类似问题中复用。十二、生产环境应该如何使用个人测试环境可以允许 Agent 自动创建和修改技能。但在企业生产环境中更推荐采用“自动生成、人工发布”的机制。推荐流程如下Agent 执行任务 ↓ 自动生成技能草稿 ↓ 进入待审核目录 ↓ 静态安全扫描 ↓ 测试环境验证 ↓ 人工 Code Review ↓ 发布到正式技能库 ↓ 生产任务按需加载Hermes 可以通过类似配置开启写入审批skills:write_approval:truecreation_nudge_interval:30技能先进入待审核区域而不是直接成为正式技能。生产环境还应增加以下约束技能必须标注适用范围# Compatibility - SGLang: 0.5.6 - 0.5.13 - Kubernetes: 1.28 - GPU: NVIDIA H20 - Deployment: LeaderWorkerSet技能必须包含验证步骤不能只描述如何操作还必须描述如何确认成功。例如# Verification 1. 检查所有 rank 初始化完成。 2. 调用 /health。 3. 调用 /v1/models。 4. 发送最小推理请求。 5. 检查 GPU 显存和错误日志。高风险操作必须单独审批以下命令不应被自动执行rm-rfkubectl delete helm uninstall systemctl stopchmod-R777curl...|bash技能应纳入 Git 管理建议至少保留创建人或创建 Agent创建时间来源任务适用版本测试结果审核人变更记录。十三、其他 Agent 是否有类似机制有。部分 Agent 平台也采用SKILL.md、脚本和资源目录保存技能并在任务中按需加载。研究领域中的一些 Agent 还会从成功轨迹中自动生成代码技能或者根据环境反馈不断修订技能库。不过各系统的差异主要不在“是否支持技能”而在下面几个方面技能主要由用户编写还是 Agent 自动生成是否会在任务结束后自动复盘是否允许自动修改已有技能技能写入是否需要审批是否有技能测试和评分机制是否有过期、归档和合并机制是否会训练一个专门的技能管理策略。Hermes 的特点是把下面几个环节放在了一套通用 Agent 系统中执行任务 自动复盘 生成技能 修改技能 渐进加载 生命周期管理它不是唯一支持技能的 Agent但它对技能学习闭环的集成程度较高。十四、总结Hermes Agent 的技能学习本质上不是模型训练而是一种外部能力积累机制。它将任务中的有效经验转化为SKILL.mdShell 或 Python 脚本参考资料配置模板验证流程常见错误说明。这些内容被保存到长期技能库在未来任务中按需检索和加载。整个过程可以概括为执行 ↓ 反思 ↓ 抽取流程 ↓ 写入技能 ↓ 再次调用 ↓ 根据新经验修订这种机制的最大价值不是让基础模型突然变得更聪明而是让 Agent少走重复的弯路更稳定地执行复杂流程适应企业私有环境将个人经验沉淀为团队资产在不同会话之间持续积累能力。从工程角度看Hermes 的技能更像是“由大模型自动维护的运行手册和自动化脚本库”。真正值得关注的不是 Agent 是否会生成一个SKILL.md而是能否建立完整的技能治理体系生成、测试、审核、发布、监控、修订和淘汰。只有完成这一闭环Agent 的技能学习才能从演示功能变成可靠的生产能力。
返回列表