分层设计的记忆系统

📅 2026/6/26 3:22:38
分层设计的记忆系统
Hermes Agent 打破了传统的全量存储模式它借鉴 CPU 缓存的设计思想打造出了一个分层记忆系统这一解决方案在一定程度上缓解了由 OpenClaw 在跨会话记忆方面的缺陷所带来的一系列问题为 Agent 应用的持久记忆机制提供了一种更稳定的工程实现。具体来说这个记忆机制主要有如图 1 所示的四个分层结构组成。图 1Hermes Agent 的记忆系统L1 核心记忆相关记忆数据存储于MEMORY.md文件该文件可以被视为 Agent 的记事本它的容量被严格限制在 800 tokens 以内。Hermes Agent 会在每次启动一个会话时将其冻结为快照并注入系统提示词确保关键上下文不丢失。例如在代码调试场景中这样做能精准保留错误堆栈、变量状态等核心信息。L2 用户画像相关记忆数据存储于USER.md文件容量约 500 tokens主要用于通过分析历史对话自动记录用户的技术栈偏好如 Python/JavaScript/C 倾向、喜欢的沟通风格简洁/详细等维度标签以便实现与用户的个性化交互。L3 会话记忆相关记忆数据会被全量存储在 SQLite 数据库中并利用 FTS5 全文索引支持毫秒级检索。对于这部分记忆数据Hermes Agent 并不会主动加载而是会在需要时通过 session_search 工具进行针对性的查询。L4 技能系统相关记忆数据存储于~/.hermes/skills目录下Hermes Agent 能将复杂任务的解决路径自动提炼为各种可复用的SKILL.md文件并能根据后续相似任务的执行情况对这些 Skills 进行持续迭代。总而言之与 OpenClaw 相比Hermes Agent 拥有更接近人类对信息进行分层管理的方式这使它能根据信息的价值和新鲜度进行分层、压缩与主动遗忘实现跨会话的可复用技能。而 OpenClaw 的持久记忆功能则相对更基础一些如果我们想要让它具备这种内化的、分层管理的能力就得借助 memory-lancedb-pro 或 memory-powermem 这样的第三方插件来实现但这些第三方插件又正是 OpenClaw 每次版本更新会引发兼容性问题的根源。有时候计算机世界就是这样牺牲自由度就会换来便利性反之亦然。可扩展的 Skills 框架Hermes Agent 提供了标准化的、可自我迭代的 Skills 框架这一框架具有如下几个核心特性持续优化机制不同于传统的硬编码工具Hermes Agent 会将任务的执行经验自动提取为可复用的 Skills并能根据后续相似任务的执行情况保持自我更新。这是因为它可以利用 DSPy 和 GEPA遗传帕累托提示进化算法基于用户反馈自动优化自身的 Skills 库。标准化格式Hermes Agent 中的所有 Skill 都遵循 agentskills.io 定义的规范被存放在~/.hermes/skills/目录下。具体来说就是每个 Skill 都需由一个名为SKILL.md的 Markdown 文件来定义定义的内容通常包含元数据、名称、版本、作者、功能描述、输入/输出规范、任务执行策略Thought Process、以及要执行的动作Actions等。内置的 Skills 库及其扩展生态Hermes Agent 框架自带了 70 个覆盖 15 类别的内置 Skills。应用场景包括 Apple Notes/Reminders、iMessage、Claude Code、OpenCode 等。除此之外用户还可以通过 Skills Hub 安装其他第三方 Skills或在~/.hermes/skills/目录下创建自定的 Skills。安全性机制在 1Panel 等环境中提供技能管理界面支持安全审批 /approve session。正是以上特性赋予了 Hermes Agent 强大的、可自我提升的能力其中的核心能力包括持久化记忆跨会话持久存储用户偏好和高频操作。反馈式学习实时根据用户的“好/坏”评价调整策略。智能化执行能够执行复杂任务如写 Proposal、调用外部接口。自动化沉淀 将临时任务转化为可复用的标准化技能。定时/触发任务支持基于 Cron 表达式或事件的自动化工作流。这让同为可部署为系统服务的 AgentHermes Agent 相对于 OpenClaw具备了如表 1 所示的明显优势。维度Hermes AgentOpenClaw技能定义由 Agent 自动生成并优化需人工编写指令规则与相关脚本记忆机制持久化分层存储原生记忆能力较弱需借助外部扩展安全机制内置安全审批与隔离机制需在后期进行人工维护角色定位面向长期能力沉淀的系统偏向用于工具编排的框架表 1Hermes Agent 相对于 OpenClaw 的优势简单易用的部署方案Hermes Agent 支持 Linux/macOS/Windows/Android Termux 环境用户通常只需根据自己所在的操作系统平台执行一条命令即可完成服务的部署包括安装相关的依赖。# 在 Linux / MacOS / WSL 环境下执行如下命令curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash# 在 Windows 原生环境下执行如下命令irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1 | iex在上述命令启动之后我们会先下载到 Hermes Agent 的安装脚本然后该脚本会自动检测其所在的计算机系统环境并安装部署环境所依赖的 Node.js、Python、Git 等基础设施如图 2 所示。图 2Hermes Agent 的安装过程接下来安装脚本就会启动 Hermes Agent 核心组件的安装与配置向导。和 OpenClaw 一样Hermes Agent 在网关服务启动前也会要求用户指定要连接的 LLM 提供商包括 API Key由于操作方式大同小异这里就不再赘述了如果读者真有需要可参考我在“参考资料”一节中提供的视频资料《Hermes Agent 安装与配置演示》。如果安装过程一切顺利用户就只需要继续在命令行终端中执行hermes命令Hermes Agent 就会启动一个如图 3 所示的 TUI 对话窗口它的作用和我们之前在[[Agent 的基础应用]]这篇笔记中介绍过的 OpenClaw TUI 是一样的只不过它的界面更美观一些。图 3Hermes Agent TUI 的对话窗口标准化的通信平台接入内置统一消息网关通过适配器模式支持包括微信、飞书在内的 15 个主流通讯平台。记忆与技能数据在各平台间完全互通解决传统智能代理”平台孤岛”问题。用户通过执行hermes gateway setup命令即可完成通信平台的接入配置如图 4 所示图 4Hermes 的通讯平台接入配置例如如果我们在上述界面中选择飞书Feishu / lark就会看到如图 5 所示的接入方式界面。然后我们在这里既可以选择第一项然后用手机端的飞书通过扫二维码方式自动在飞书开放平台中创建机器人它会按照指定的智能体模版配置好机器人被赋予的执行权限也可以和之前在 OpenClaw 种所做的一样先去飞书开放平台手动创建机器人并为它配置好你想赋予的权限然后再回到这里选择第二项将该机器人的 App ID 和 App Secret 填入。前者比较方便后者则比较自由我们可以根据自己的需求来做出选择。图 5Hermes Agent 的飞书接入方式如果一切顺利我们就可以利用配置的飞书机器人与 Hermes Agent 进行对话了如图 6 所示图 6Hermes Agent 与飞书的对话窗口除了飞书之外我们从图 4 中还可以看到Hermes Agent 还支持微信、钉钉、企业微信、Slack、Discord、Telegram、WhatsApp、iMessage 等主流通讯平台而且这些平台都可以通过类似的方式接入因此Hermes Agent 的多平台接入能力相对于 OpenClaw 来说无疑要简单且规范化得多而这通常也意味着更稳定。精简实用的常用命令集由于 Hermes Agent 归根结底还是和 OpenClaw 一样同属于运行在服务器环境中的 Agent主要使用方式依然是基于命令行界面的毕竟目前还没有什么图形化界面的程序在远程登录到服务器上并执行运维相关工作时能获得好于命令行界面程序的用户体验。但相对于 OpenClaw 来说Hermes Agent 的常用命令集要精简许多而且这些命令的命名也相对规范用户可以很容易地通过hermes --help命令查看到所有可用的命令如图 7 所示。图 7Hermes Agent 的可用命令其中较为常用的命令包括hermes命令用于启动 TUI 对话窗口。hermes model命令用于配置要使用的 LLM 提供商和具体要接入的模型。hermes tools命令用于配置 Hermes Agent 可使用的工具集。hermes setup命令用于执行完整的配置向导包括 LLM 配置、工具配置、消息网关配置等。hermes doctor命令用于诊断并修复 Hermes Agent 中的各种配置问题。hermes update命令用于更新至最新版本。hermes gateway命令用于启动、停止或重启消息网关服务。hermes --continue命令用于回到上次会话其中--continue也可以简写为-c。例如如果我们想要看看当前运行的 Hermes Agent 服务是否正常就可以执行hermes doctor命令如图 8 所示图 8Hermes Agent 的诊断结果如果在上述命令中检测出了什么错误Hermes Agent 就会在输出中给出相应的修复建议并提示用户执行hermes doctor --fix命令来修复这些错误。结束语一些个人观点总而言之Hermes Agent 的配置和使用逻辑与 OpenClaw 几乎是完全一致的。这意味着人们只要学会了如何使用 OpenClaw。基本上就可以举一反三了。只不过Hermes Agent 的配置方式相对来说会比 OpenClaw 黑盒化一点说白了就是用牺牲自由度来换取版本更新的稳定性与扩展应用的安全性。在目前这个阶段我对这类部署在服务端 Agent 的基本观点是如果最近这段时间真有老板听信了资本炒作或自媒体唬烂认为 OpenClaw 或 Hermes Agent 能代替人类工作而做大量裁员或者搞一人公司十八个月之后他们有非常高的概率会惨不忍睹。当然了学会使用 Agent 和清醒地认识它之间并不存在矛盾事实上恰恰相反越懂它我们恐怕就越不信这种炒作。因为这会让人面对一个主要的哲学问题我们要如何只用概率解释世界这是唯心论还是唯物论建议读者可以想想想得越清楚就越不容易被忽悠。