本文适合谁:已部署 Hermes,希望获得跨会话、跨设备云端记忆的开发者
你会得到什么:无需修改 Hermes 核心代码,通过 Memory Provider 插件实现自动写入、相关记忆召回、压缩前保护和主动检索
写给正在用 Hermes 的你
Hermes 很强但还可以更强
Hermes 是一个功能完善的开源 Agent,具备工具调用、技能学习及子 Agent 委派能力,并提供 MEMORY.md、USER.md 及历史会话搜索等基础记忆功能。
然而,在多设备运行、临时容器或长期在线服务器场景下,用户常面临以下挑战:
- 重要信息分散在本地文件和历史会话中,换设备后无法自然延续;
- 难以按“语义”查找过往经验,仅能依赖关键词匹配;
- 希望对话结束后自动沉淀用户偏好、项目事实和历史经验;
- 上下文压缩后,Agent 仍需要从长期记忆中找回相关内容;
- 不愿为记忆抽取、向量检索和云端存储自行维护基础设施。
Hermes 的内置本地 Markdown 记忆简单透明,适合保存高频规则。但当记忆规模扩大且需跨设备或语义检索时,我们需要一个增强层。
AgentArts Memory 提供增强层实现
AgentArts Memory 的 Hermes 插件旨在解决上述问题:
保留 Hermes 原有记忆机制,将 AgentArts Memory 接入为外部长期记忆 Provider。
该插件基于 Hermes 现有的 Memory Provider 接口工作,无需修改核心代码或业务逻辑。接入后可实现:
- 每轮对话结束 → 自动同步
- 每次回答之前 → 检索相关记忆
- 需要时 → 主动搜索云端长期记忆
| 原来的限制 | 接入后获得的能力 |
|---|---|
| 记忆主要保存在本地环境 | 提取后的长期记忆保存在云端,支持跨环境使用 |
| 依赖文件或会话关键词搜索 | 支持围绕当前问题进行语义检索 |
| 需要手动维护重要事实 | 每轮对话后自动同步,由策略提取有价值信息 |
| 上下文压缩可能丢失早期细节 | 压缩前再次检索与任务相关的长期记忆 |
| 需自建存储与提取流程 | AgentArts Memory 提供全托管记忆能力 |
AgentArts Memory 内置语义记忆、用户偏好、会话摘要和情景记忆等策略,支持按空间、会话和用户维度管理。其核心价值在于让有用信息被提取、检索并在后续会话中复用。
一、快速接入步骤
Step 1:准备工作(5 分钟)
1.1 确认 Hermes 环境
确认 Hermes 版本及主目录:
hermes --version
# 确保 Hermes 已正确安装,主目录默认为 ~/.hermes/
若未安装,请参考 Hermes 官方安装文档。
1.2 创建 AgentArts 记忆库
登录华为云控制台,在"组件库 → 记忆库"中创建一个新的记忆库。建议启用以下长期记忆策略:
- 语义记忆:保存项目事实和上下文知识;
- 用户偏好:保存稳定的沟通与使用偏好;
- 会话摘要:提炼会话主题、结论和历史决策;
- 情景记忆:保存带有具体过程和结果的历史经验。
创建后获取三个关键参数:
| 参数 | 环境变量 | 说明 | 获取方式 |
|---|---|---|---|
| 记忆库 ID | AGENTARTS_MEMORY_SPACE_ID |
AgentArts 记忆库唯一标识 | 控制台记忆库列表 |
| API Key | HUAWEICLOUD_SDK_MEMORY_API_KEY |
记忆库数据面接口密钥 | 创建时弹出,仅展示一次 |
| 区域 | HUAWEICLOUD_SDK_REGION |
创建记忆库时所在的 Region | 控制台所选 Region |
相关入口
- AgentArts 控制台:访问华为云官网进入
- AgentArts Memory 记忆库概述:参考华为云支持文档
- 创建记忆库指南:参考华为云支持文档
1.3 安装 agentarts-sdk
Linux/macOS/Windows 环境下执行:
pip install agentarts-sdk
查看版本号(要求>0.1.5):
agentarts --version
Step 2:给 Hermes 安装 agentarts 记忆插件(1 分钟)
通过命令安装插件:
agentarts memory install hermes
配置 Hermes 插件,选择agentarts hermes memory setup。
工程细节:敏感与非敏感信息分离存储
插件将配置信息分类存储:
- API Key → 写入
.env文件(敏感字段,不提交至 Git); - Space ID、Region → 写入
$HERMES_HOME/agentarts.json(非敏感配置,可版本管理)。
此设计便于 CI/CD 流程中仅需注入 API Key 环境变量,其余配置随代码仓库管理。
Step 3:验证连接(2 分钟)
重新打开命令行窗口,查看插件状态:
hermes memory status
若返回Provider:agentarts,表明插件安装成功。
认证失败排查指南
- API Key 有效性:检查是否重置过,重置后旧 Key 失效;
- 区域一致性:确认
HUAWEICLOUD_SDK_REGION与创建时所选区域一致;- 记忆库状态:确认控制台显示状态为
running。90% 的问题源于以上三点。可使用
hermes memory setup选择agentarts重置参数。
二、插件工作机制:7 个生命周期钩子
了解插件如何通过 Hermes 定义的 7 个生命周期钩子实现云端记忆:
| 钩子 | 调用时机 | 插件行为 | 通俗理解 |
|---|---|---|---|
system_prompt_block |
构造系统提示词时 | 注入 AgentArts Memory 能力说明 | 告知 Agent 可使用云端记忆 |
prefetch |
每次 LLM 调用前 | 搜索并注入相关记忆 | 回答前先"回忆" |
sync_turn |
每轮对话完成后 | 后台写入用户输入与助手回复 | 将这轮对话"记下来" |
on_pre_compress |
上下文压缩前 | 无需操作 | 逐轮已落库 |
on_memory_write |
Hermes 内置记忆写入时 | 同步内容至 AgentArts | 本地记忆镜像至云端 |
on_session_end |
Session 结束时 | 无需操作 | 逐轮已落库 |
shutdown |
Hermes 退出时 | 等待后台写入并关闭客户端 | 完整收尾 |
三个核心设计解析
1. 非阻塞写入——零感知延迟
每轮对话结束后,sync_turn通过后台线程将数据同步至 AgentArts Memory,由云端策略完成提取与沉淀,不阻塞 Hermes 主循环。用户体验流畅,同时实现默默记录。
2. 上下文注入——让 Agent"想起来"
每次 LLM 调用前,prefetch根据当前对话内容检索相关记忆(用户画像、情景记忆、语义记忆、历史摘要)并注入上下文。模拟人类"先回忆再回答"的逻辑。
3. MEMORY.md 镜像——兼容现有体系
on_memory_write将 Hermes 原有的MEMORY.md写入操作镜像同步至 AgentArts Memory。本地与云端双向一致,既保留原有功能,又增强后端能力。
三、两个主动检索工具:按需"回忆"
除自动注入(prefetch)外,插件注册了两个工具供 Agent 主动搜索记忆。
ltm_search:搜索长期记忆
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
query |
string | 是 | — | 搜索查询字符串 |
top_k |
integer | 否 | 5 | 返回前 K 个结果 |
效果示例:
用户:我上次提到的问题解决了吗?
# Agent 自动调用记忆检索
ltm_search(query="用户上次提到的是什么问题?", top_k=3)
# 检索结果:
# - 用户上次咨询了订单 #20260811 的物流延迟问题
# - 包裹在转运中心滞留 2 天,已联系物流加急处理
# - 用户同意等待,未要求退款
# Agent 回答:
# "您上次咨询的是订单 #20260811 的物流延迟问题,
# 当时包裹在转运中心滞留了 2 天,我们联系了物流加急处理,
# 您同意了等待。请问这个订单现在收到了吗?"
Agent 不仅回忆起问题,还掌握了完整的处理过程和用户决策,超越了传统MEMORY.md的能力。
ltm_search_summary:获取记忆摘要列表
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
limit |
integer | 否 | 10 | 返回条目数量 |
该工具适合在对话开始时调用,快速浏览 Agent 已记住的关于当前用户的信息。
四、实验验证:30 秒看到跨会话记忆
第一轮会话:告诉 Agent 一些信息
用户:我叫李四,是一名数据工程师,主要用 Python 和 Spark。
Agent:你好李四!很高兴认识你。作为数据工程师,Python 和 Spark 是很好的技术栈组合...
结束会话,等待 30 秒
等待原因:AgentArts Memory 需调用大模型进行策略化提取和向量化存储,约需 30 秒。prefetch检索的是已生成的记忆,而非刚写入的数据。
开启新会话:验证记忆
用户:你还记得我是谁吗?
Agent:当然记得!你是李四,一名数据工程师,主要使用 Python 和 Spark 进行数据处理工作。有什么我可以帮你的吗?
这就是跨会话记忆。无需数据库查询或手动传递上下文,Agent 自主"回忆"。
💡 搜索无结果?99% 因时间不足。
sync_turn写入后需等待约 30 秒方可检索。
五、通用集成范式:不止于 Hermes
该集成思路适用于其他 Agent 框架,核心包含四个环节:
| 集成环节 | Hermes 实现 | 通用模式 | 核心原则 |
|---|---|---|---|
| 记忆写入 | sync_turn非阻塞写入 |
对话结束后异步写入 | 不阻塞主流程 |
| 记忆注入 | prefetch检索注入 |
LLM 调用前检索相关记忆 | 先回忆,再回答 |
| 压缩保护 | on_pre_compress |
上下文压缩前重新注入 | 关键记忆保留在上下文中 |
| 主动检索 | ltm_search工具 |
注册为 Agent 工具 | Agent 按需主动回忆 |
写入(异步)+ 注入(检索)+ 保护(压缩前重注入)+ 工具(主动检索),掌握这四个关键词即可适配任何框架。
AgentArts Memory 集成生态
目前 SDK 已提供:
- Python SDK:原生 Python 接口,4 个 API 搞定记忆管理
- LangGraph 集成:AgentArtsMemorySessionSaver + recall_memory 工具
- Hermes 插件:完整的生命周期钩子集成
- 更多框架适配:持续开发中,欢迎在 GitHub 仓库提 Issue
小结
为 Hermes 用户提供10 分钟记忆升级方案:
- 不改业务代码:插件机制,复制文件 + 运行配置命令
- 7 个生命周期钩子:自动管理记忆,无需手动调用 API
- 核心机制:非阻塞写入 + 自动检索注入 + 压缩保护,用户零感知
- 兼容现有设计:MEMORY.md 镜像同步,本地云端双向一致
- 通用集成范式:写入 + 注入 + 保护 + 工具,换框架亦适用
插件代码完全开源,欢迎在 GitHub 查看、提 Issue 或贡献代码。
给你的 Hermes 升个级
AgentArts Memory 已在通用智能体、智能座舱、办公 IM 等场景验证可靠性。现在即可体验:
- 开通服务:华为云控制台 → AgentArts → 创建记忆库(新用户享免费额度)
- 安装插件:
agentarts memory install,1 分钟完成- 查看源码:访问 GitHub 仓库
- 加入社区:提 Issue、贡献代码、分享集成实践

