Hotdry.

Article

Hermes Agent 持续学习 Runtime 的技能库热更新策略

解析 Hermes Agent 如何在推理时通过 SQLite FTS5 实现技能库热更新,探讨反馈驱动的持续学习与模型权重热替换的工程权衡。

2026-05-12ai-systems

在人工智能代理系统从「固定能力」向「持续演进」演进的过程中,推理时学习(Inference-Time Learning)已经从学术概念演变为工程现实。Nous Research 推出的 Hermes Agent 以其内置的闭环学习机制著称 —— 它不仅能够解决问题,还会在解决问题的过程中提炼可复用的技能文档,并将其持久化到本地存储供后续会话调用。这一设计的核心挑战在于:如何在不中断推理链路的前提下,实现技能库的热加载与动态更新?本文从 Hermes Agent 的架构出发,解析其持续学习 Runtime 的实现细节、工程参数配置以及面向生产环境的关键权衡。

技能库的热更新架构解析

Hermes Agent 的技能系统构建在一个清晰的层次结构之上。最底层是持久化存储层,中间是检索与索引层,最上层是推理时调用层。这种分层设计使得热更新的粒度可以精确控制到单个技能文档级别,而不需要重启整个 Runtime 进程。

持久化存储层采用人类可读的 Markdown 文件格式存储技能文档。这一设计选择并非偶然 —— 它意味着每个技能文档同时具备机器可解析的结构和人类可阅读的内容。在 agentskills.io 标准的约束下,技能文档包含技能名称、触发条件、执行步骤、依赖工具和成功标准等标准化字段。当 Agent 在会话中成功完成某个任务后,它会调用内置的技能提取流程,将本次解决问题的完整轨迹压缩为一个结构化的技能文档。如果该任务涉及多个工具调用或条件分支,提取流程还会生成技能变体,以覆盖不同的执行路径。

检索与索引层由 SQLite 数据库和 FTS5(Full-Text Search 5)全文搜索扩展组成。选择 SQLite 而非外部向量数据库有三重考量:首先是本地优先的隐私保证,所有技能数据存储在用户本地,不存在任何隐式数据同步;其次是运维简单性的工程保证,无需额外部署向量服务;第三是检索可解释性的调试保证,开发者可以直接用标准 SQL 查询技能库状态。FTS5 提供了 BM25 排序算法支持,这比简单的余弦相似度更利于精确匹配技能文档中的步骤描述和条件语句。

推理时调用层负责根据当前任务上下文从技能库中召回相关技能,并将其注入到 Agent 的提示上下文中。召回策略采用混合模式:首先基于 FTS5 的全文匹配确定候选技能集合,随后基于任务与技能描述的语义相似度进行二次排序,最后根据技能的适用场景标签进行领域过滤。这一流程在每次推理调用前同步执行,确保 Agent 始终能够获取与当前任务最相关的技能上下文。

反馈驱动的技能更新闭环

Hermes Agent 的持续学习能力来源于一个精心设计的反馈闭环。该闭环包含四个核心阶段:任务执行、技能提取、技能评估和技能回放。在任务执行阶段,Agent 利用现有技能库和工具集完成用户请求。完成后,系统会触发技能提取流程,分析本次执行轨迹中是否存在可泛化的操作模式。如果检测到重复出现的工具调用序列或条件判断逻辑,系统会生成对应的技能文档草稿。

技能提取草稿随后进入评估阶段。在 Hermes Agent 的默认配置中,评估采用启发式规则与 LLM 评判相结合的双重验证机制。启发式规则负责检查技能文档的结构完整性,例如是否包含所有必需字段、步骤描述是否清晰、依赖声明是否完整。LLM 评判则从语义层面评估技能的可复用性,例如该技能是否过于依赖特定上下文、步骤是否可能产生歧义。只有通过两项检查的技能文档才会被正式写入技能库。

写入技能库后,新技能会在后续会话中参与回放。当 Agent 遇到与某个已有技能匹配的任务时,系统会自动加载该技能作为执行参考。如果技能在回放过程中被判定为不适用(表现为工具调用失败或任务超时),Agent 会触发技能修正流程,重新生成更精确的技能文档。这种基于实践反馈的迭代优化机制,使得技能库能够在真实使用中持续进化,而不仅仅依赖离线的预训练知识。

值得注意的是,反馈闭环的设计充分考虑了计算资源的约束。技能提取不会在每个任务完成后立即触发,而是采用累积触发策略 —— 系统会记录最近 N 次会话中未成功匹配任何现有技能的任务轨迹,当累积数量超过阈值时才统一触发提取流程。这一设计避免了频繁的 LLM 调用开销,同时确保了有价值的操作模式不会被遗漏。

SQLite FTS5 的性能参数配置

对于希望在生产环境中部署 Hermes Agent 的团队,SQLite FTS5 的性能调优是绕不开的工程话题。默认配置能够满足个人使用场景,但在技能库规模扩大后,检索延迟会显著影响响应体验。以下是关键配置参数的工程建议。

首先是索引模式的选择。FTS5 支持 tokenize 参数的不同配置,默认的 porter tokenizer 适用于英文技能文档,但对于中文或混合语言场景,需要切换为 unicode61 tokenizer 以支持按字符边界的分词。具体配置为在创建 FTS5 表时指定 tokenize='unicode61 remove_diacritics 1',这能够确保中文技能描述的正确索引。

其次是写入策略的优化。默认情况下,FTS5 会在每次 INSERT 后自动更新倒排索引,这在高频写入场景下会成为性能瓶颈。对于技能库更新频率较高的部署,建议将 FTS5 表配置为 external content 模式,将索引更新与数据写入解耦。具体做法是创建一个普通表存储技能数据,再创建一个 FTS5 虚拟表以 external content 模式关联该表,最后由业务逻辑控制显式调用 INSERT INTO fts_table(fts_table) VALUES('rebuild') 来批量重建索引。

第三是查询语法的选择。FTS5 支持布尔查询、 phrase 查询和 prefix 查询三种主要语法。布尔查询适用于多条件组合筛选,例如 skill_name:memory AND scenario:debugging 可以精确召回同时满足两个条件的技能。phrase 查询适用于按顺序匹配多个词项,适合技能步骤的精确匹配场景。prefix 查询适用于模糊前缀匹配,例如 deploy* 可以召回所有以 deploy 开头的技能描述。实践中建议根据召回场景选择最严格的查询语法,以减少 BM25 排序的计算量。

技能热更新与模型权重更新的权衡

Hermes Agent 的设计哲学将「技能更新」与「模型更新」解耦为两个独立的演进维度。技能更新通过热加载机制实现,不需要改变底层模型的权重;模型更新则涉及模型权重的替换或微调,需要额外的部署和验证流程。这种解耦设计反映了工程实践中的一个关键洞察:大多数能力演进并不需要修改模型权重,通过积累和检索更丰富的技能文档就能显著提升 Agent 在特定领域的表现。

然而,在某些场景下,技能更新的局限性会变得明显。当某个领域的操作模式高度依赖于模型的固有知识结构时,仅靠技能文档无法充分表达这种隐式关联。例如,如果希望 Agent 掌握某种需要复杂推理链路的金融分析技能,单纯通过技能文档描述执行步骤可能无法覆盖所有边界情况,此时需要通过模型微调或提示工程来强化模型在该领域的推理能力。Hermes Agent 通过与 Nous Portal 的集成支持模型层面的 RL 训练流程,允许团队在技能迭代达到瓶颈后,将高质量的技能轨迹数据用于强化学习训练,从而实现模型能力的实质性提升。

从系统可靠性的角度看,技能热更新相比模型权重替换具有显著的风险优势。技能文档的更新可以被版本化、回滚和差异比较,而模型权重的变更通常是不可逆的。Hermes Agent 建议的部署模式是保持模型版本稳定,通过持续迭代技能库来满足业务需求的演进,只有在技能迭代无法达到预期效果时才考虑模型层面的升级。这一策略将变更风险控制在最小范围,同时保持了系统的演进能力。

生产环境部署的关键清单

基于上述分析,面向生产环境部署 Hermes Agent 的团队应当关注以下配置要点。

在存储层面,建议为技能库配置独立的存储路径,并通过符号链接指向高性能 NVMe 磁盘。SQLite 数据库文件应当配置合适的 page size,对于 FTS5 检索场景,4096 字节的 page size 能够减少 B-tree 遍历次数,提升检索吞吐量。同时建议开启 WAL(Write-Ahead Logging)模式,允许读操作与写操作并发执行,避免技能更新时阻塞推理请求。

在索引层面,建议配置定时任务执行 OPTIMIZE 命令来压缩 FTS5 索引文件。随着技能库的持续增长,索引文件会产生碎片,定期优化能够保持检索性能。对于技能数量超过 1000 的部署,应当考虑将 FTS5 索引迁移到独立的表空间,以便实现独立的备份和恢复策略。

在反馈闭环层面,建议为技能评估流程配置人工审核机制。虽然 Hermes Agent 支持全自动的技能提取,但在生产环境中,经过人工审核的技能文档能够确保质量可控。建议配置技能审核队列,对提取的技能文档进行标签分类(高质量待发布、需要修订、重复技能),并将审核结果反馈到提取策略的参数调优中。

在监控层面,建议追踪以下核心指标:技能库规模增长率、技能召回命中率、平均技能加载延迟、技能回放成功率。这些指标能够帮助团队评估技能生态的演进状态,识别可能的优化方向。建议将监控数据导出到时序数据库中,配置异常检测告警以便在技能系统出现异常时及时响应。

Hermes Agent 的持续学习 Runtime 代表了 AI Agent 从固定能力系统向自演进系统演进的一个重要节点。其基于 SQLite FTS5 的技能热更新架构在本地性、可解释性和工程简单性之间取得了良好的平衡。对于希望构建自主演进能力的 AI 系统的团队,深入理解并合理配置这一架构,将是构建差异化竞争优势的关键路径。

资料来源:Hermes Agent 官方文档(hermes-agent.nousresearch.com/docs/zh-Hans/)与 Nous Research 官方技术说明。

ai-systems

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com