Architecture & Capability Assessment · 2026-10-30

Infinity × HermesAgent

以 Infinity 为运行时底座,梳理 HermesAgent 核心记忆与技能自进化所需能力、现有架构复用点、实现缺口、模块依赖和可验证的交付标准。

仓库实证分析NousResearch Hermes Agent 对标实现差距与任务清单

对标校准:固定 Hermes 上游版本

本报告核对了 Hermes 官方仓库 main:e864515d2651ea0b3420482d5e00ca0eb3586b24(2026-10-30)。其 README 将能力描述为 agent-curated memory、periodic nudges、跨会话 FTS5 搜索及模型归纳、用户建模,以及复杂任务后创建技能并在使用中改进;项目还有 skill curator/learning loop 等对应代码。故本报告里的“技能自进化”按可反复创建/改进/整理技能的闭环分析,而不只是目录 CRUD。来源:固定 commit。

结论摘要

一句话判断:Infinity 已具备 agent 的执行、恢复、并发和工具接入基础;HermesAgent 风格的核心记忆和技能自进化则需要新增完整的领域能力,包括记忆结构与检索、技能目录与加载、从任务反馈生成候选、评测审批和回滚。线程历史不是长期记忆,RAP/MCP 工具清单也不是技能系统。

可复用

线程/消息持久化契约、可恢复执行切片、子线程、工具接口、RAP/MCP 和 daemon 宿主

需要新增

用户/项目级记忆、全文与语义检索、技能目录和版本管理、学习候选及 curator 闭环

核心难点

检索是否真的有帮助、如何隔离 scope、如何防止记忆/技能污染,以及如何证明技能更新没有退化

推荐边界

领域层优先;先闭环、可审计、可回滚,再逐步提高自动化,不重写核心 runtime

建议采用渐进式旁路扩展:新增独立的 Memory 与 Skills 模块/服务,使用 Infinity 的存储 trait、事件输入、线程工具和 RAP/MCP 接入;仅在确有需要时扩展核心上下文钩子。

1. 需求边界与 Hermes 对标口径

本报告把 “HermesAgent”解释为 NousResearch 的 Hermes Agent(官方代码仓库 NousResearch/hermes-agent)。你提出的目标不是完整复刻 Hermes CLI、渠道、浏览器、语音或多平台部署,而是两个核心能力:

核心记忆

  • 跨会话保留用户偏好、事实、项目上下文和经验,而非仅恢复聊天记录。
  • 按当前任务检索少量相关记忆,允许纠正、过期、删除、追溯来源。
  • 支持会话总结、显式记忆、自动候选记忆、历史搜索等层次。

技能自进化

  • 技能可发现、按需加载、版本化、校验、启停与回滚。
  • 从任务成功/失败中提出技能改进建议,经过测试/批准后发布。
  • 改进技能内容不等于 agent 可任意修改执行代码或权限配置。

Hermes 对标是能力目标,不是兼容性承诺;其具体版本会持续变化。实施前应固定上游 commit/tag 与所需功能清单,再做差异复核。

2. Infinity 已有的底座能力

已存在能力仓库证据 / 位置对本项目的价值
平台无关存储契约ConversationStore / StateStore traits,crates/infinity-agent-core/src/traits.rs不必绑定某一个数据库;可给记忆领域加专属存储 trait,按 daemon 或 Lambda 实现。
消息、线程树、去重、摘要压缩stores.rs 与 HistoryManager;压缩摘要及祖先上下文恢复适合做对话持久化与上下文窗口治理;可复用事件和总结触发机制。
Daemon 文件持久化crates/infinity-daemon/src/memory_store.rs:per-thread JSON、惰性加载、metadata、views适合单机 MVP;不是语义记忆索引,也未提供跨用户/多租户隔离的数据模型。
无阻塞、可恢复的执行切片docs/docs/infinity-runtime/architecture.md背景抽取、技能评测可以拆成工具/子线程任务,慢操作通过异步回调,不阻塞 agent 主流程。
并行子线程与摘要归并core built-in thread tools、compaction summary可并行分析多份对话/候选技能,最后由受控评审步骤归并。
扩展工具生态RAP bridge、MCP bridge、RAP manifests、MCP 工具集可把 memory CRUD/search 与 skill catalog/preview/apply 封装成受权限控制的工具;避免所有业务代码塞入 core。
进程级产品宿主infinity-daemon/src/session/mod.rs适合接入用户配置、生命周期钩子、线程级工具集与本地 Web/TUI 管理体验。
关键架构优势是“每个执行切片结束后 agent 可从持久状态重建”。这天然适配长期记忆与异步技能演进,但领域数据模型、索引、授权、提示词注入策略仍需设计。

3. 关键差距:聊天历史不等于长期记忆

目标能力当前差距工程含义
跨会话用户记忆当前 store 的一等对象是 thread/message/metadata/compaction;没有带用户隔离、类型、置信度、来源、TTL、版本的记忆事实模型。新增 MemoryStore,而非滥用 conversation message 或 compaction 摘要来承载结构化知识。
精准检索与反思现有 compaction 服务于压缩历史上下文,并不等同向量召回、关键词检索、排序、纠错和遗忘机制。建立可测量检索:关键词基线先行,可选 embedding;追踪命中率、误注入和 token 预算。
技能生命周期RAP/MCP 发现的是工具定义和 endpoint;没有类似技能文件/目录的说明文档、按需展开、版本、审查、安装及回滚。独立 SkillCatalog/SkillStore 和加载器;不要把任意 RAP toolset 等同于技能。
自进化控制闭环未见任务结果评测→改进候选→沙箱测试→审批→发布/回滚的通用流水线。需要候选队列、版本化、diff、策略 gate、评测集、审计日志和安全边界。
管理界面已有 daemon Web/TUI,但没有面向记忆和技能的 review/approve/rollback 工作流。先实现 CLI 或本地 review 页面,避免将账号系统或云服务当作核心前置条件。

4. 推荐目标架构

组件分层

  1. Infinity Runtime:保持负责线程、模型流、工具调用、事件恢复、子线程与已有去重。仅在必要处加生命周期事件或上下文扩展接口。
  2. Memory Domain:MemoryStore、MemoryExtractor、MemoryRetriever。建议结构含 id, owner_scope, kind, content, source_thread, source_span, confidence, created_at, updated_at, expires_at, status, version。
  3. Skill Domain:SkillCatalog、版本化 markdown/manifest、frontmatter schema、信任级别、能力声明、来源与 hash;索引只载入元数据,调用时再读取全文(渐进披露)。
  4. Improvement Pipeline:用户反馈/任务结果→候选 memory 或 skill patch→固定评测集 + 回归测试→policy gate→人工批准(默认)→原子发布→可回滚。
  5. 适配器:本地 daemon 先用 SQLite(FTS5 做全文检索)或受控文件 store;将 store traits 与 SQL schema 隔离。语义向量、云存储作为后续可插拔后端。

运行时的上下文策略

每次新任务先构造受预算约束的“当前任务相关记忆 + 当前激活技能说明 + 最近对话”;明确标注来源与可信等级,区分用户事实、模型推断与工具输出。不要把完整历史、所有技能或未经验证的候选记忆一次性灌入 prompt。

记忆写入策略

提供显式 remember/forget/memory_search 工具;自动提取先保存为 pending candidate,由用户确认或满足严格策略后提交。合并重复事实时保留来源与冲突,不做静默覆盖;删除需覆盖索引、缓存、导出和备份保留策略。

技能自进化策略

技能以声明式内容为主(说明、步骤、示例、已批准工具引用),禁止候选自动增加 shell/网络/文件权限。改进候选在独立 worktree/临时 sandbox 上测试,运行黄金任务和安全测试;失败不发布。人审 diff 后发布新版本,保留上一版即时回滚。

5. 推荐实现顺序

先决策
固定行为与边界
确定记忆 scope(用户/项目/thread)、自动写入规则、可删除语义、技能信任等级与执行权限;选取代表任务作为评测基线。
基础层
先打通记忆与技能的领域存储
增加独立 MemoryStore、SkillStore/SkillCatalog 接口及 daemon 持久化实现;定义 schema、版本、迁移、owner scope 和审计事件。
运行时集成
让 agent 能安全读写
添加 remember/forget/search 与 skill discover/read/manage 能力;在新任务构建上下文时按预算召回记忆、按需加载技能;工具边界仍遵循 Infinity 的工具接口。
学习闭环
从经验形成可验证候选
采集任务结果和显式反馈,生成 memory/skill 候选;运行固定回归与安全检查;显示差异,批准后发布,保留历史版本并支持回滚。
治理完善
优化召回与运维
增加 FTS5/混合检索、冲突/过期策略、curator、观测指标、备份恢复与权限审计;再评估向量检索、多用户和跨设备需求。

依赖关系:scope 与信任模型先于持久化 schema;持久化先于运行时读写;运行时读写先于学习闭环;评测与回滚必须和自动化改进同时交付。各模块可以由 agent 分批实现,但每批都需要明确接口和验收测试。

6. 需要实现的模块

优先级模块 / 能力实现内容验收结果
P0记忆领域模型与存储MemoryStore 接口;事实/偏好/项目经验类型;scope、来源、置信度、时间、状态、版本、删除标记;daemon 持久化和迁移。重启后数据可恢复;用户与项目 scope 强隔离;每条记忆可追溯来源、编辑与删除。
P0记忆工具与上下文构建remember、forget、memory_search;任务启动检索;预算、去重、来源标注;候选记忆需确认或按策略写入。新会话能正确召回旧记忆;删除后不再被检索;无关记忆不注入;工具失败有可见错误。
P0技能目录与渐进加载SkillCatalog;兼容 Markdown/manifest;索引名称和描述、按需读取正文;状态、版本、来源、信任级别及工具权限引用。可搜索/预览/加载/启停技能;技能内容不能自行提升工具权限;旧版本可恢复。
P1会话搜索与压缩协作全文索引历史对话、按相关度返回片段并可总结;定义它与 compaction summary、长期事实记忆的边界。可找到历史出处;检索结果保留 thread 和 message 引用;历史搜索不会污染长期事实记忆。
P1记忆整理与冲突治理自动提取 pending candidate;重复合并建议;事实冲突、过期、TTL、用户纠正和 forget 级联。模型推断与用户确认事实分开;冲突可见而非静默覆盖;删除覆盖索引、缓存与备份策略。
P1技能学习与 curator从复杂任务/失败生成新技能或 patch;技能使用统计;读取后修改约束;整理重复技能、保留引用完整。每个变更有触发依据和 diff;通过基准任务及安全检查;批准后原子发布并可回滚。
P1评测、审计与管理面固定记忆召回/任务 benchmark;技能回归与安全集;候选审批界面;行为日志和版本历史。能比较改进前后效果;失败不发布;管理员可查看、拒绝、恢复和审计变化。
P2扩展检索与部署形态可插拔 embedding/vector backend、远程 store、多用户授权、跨设备同步(仅在产品需求确认后)。后端可替换且不改变领域契约;租户隔离和迁移经过专项验证。

7. 风险、非目标与验收标准

主要风险

  • 错误记忆:模型把推测当事实;采取来源、置信、pending 状态和纠错。
  • 提示注入:记忆/技能文件含恶意指令;按不可信输入处理,禁止隐式权限提升。
  • 数据串用:thread、用户、workspace scope 混淆;所有检索 API 必须强制 scope。
  • 自我劣化:技能更新通过少数样例却伤害旧行为;版本化并跑回归/安全 benchmark。
  • 性能/成本:全历史/全技能注入导致 token 及延迟失控;检索 top-k + 显式预算。

暂不建议做

  • 首版不做完全自治的生产技能发布。
  • 首版不做云向量库、跨设备同步或多租户 SaaS。
  • 不改造 compaction 以承载所有记忆功能。
  • 不允许技能通过任意脚本绕开 Infinity 的工具权限体系。
  • 不把记忆学习与上游 Hermes 代码深度 fork 绑定。

Definition of Done

  • 同一用户新会话能检索此前显式保存的偏好/事实;删除后不再返回;不同 scope 无交叉读取。
  • 带来源的检索结果进入 prompt,token 上限可配置;在固定任务集上与“无记忆”基线比较准确率和误召回。
  • 技能能发现、预览版本 diff、启用、停用、回滚;仅引用显式授权的工具。
  • 生成的改进候选未通过评测/审批不得改变已发布技能;崩溃/重启后候选队列和版本状态一致。
  • 具备备份恢复、错误日志、升级迁移、威胁模型和可重复的集成测试。

8. 证据边界与来源

Infinity 判断以当前工作区源码和文档为准(本地版本截至 2026-10-30);关键入口如下。文件行号用于快速定位,后续提交可能改变行数。

  • crates/infinity-agent-core/src/traits.rs:存储接口契约;
  • crates/infinity-agent-core/src/stores.rs:in-memory thread/message store、ancestor 和 compaction summary;
  • crates/infinity-daemon/src/memory_store.rs:持久化 conversation wrapper、per-thread JSON、views 和 state store;
  • crates/infinity-agent-core/src/system/builder.rs:builder/tool 注入;
  • crates/infinity-rap-bridge/src/lib.rs、crates/infinity-mcp-bridge/src/lib.rs、crates/rap-client/src/toolset_loader.rs:协议工具接入;
  • docs/docs/infinity-runtime/architecture.md、docs/docs/infinity-runtime/built-in/built-in-tools.md、docs/docs/infinity-runtime/quickstart/connecting-rap-and-mcp.md:执行切片、内置工具与桥接说明。

Hermes 对标入口:官方 GitHub 仓库与 官方文档站。本报告固定到上面列出的 commit;如上游后续变化,需重新核对目标能力边界,并将行为固化为验收用例。

结论适用于“以 Infinity 构建 HermesAgent 的两项核心能力”,不等于对 Infinity 或 Hermes 全部功能做产品级审计。