10 分钟,给 Hermes 接上云端长期记忆:AgentArts Memory 插件实战

举报
AGENT魔方 发表于 2026/09/01 10:02:01 2026/09/01
【摘要】 本文适合已经部署 Hermes,希望获得跨会话、跨设备云端记忆的开发者。你将会得到不修改 Hermes 核心代码,通过一个 Memory Provider 插件完成自动写入、相关记忆召回、压缩前保护和主动检索。

本文适合谁: 已经部署 Hermes,希望获得跨会话、跨设备云端记忆的开发者

你会得到什么: 不修改 Hermes 核心代码,通过一个 Memory Provider 插件完成自动写入、相关记忆召回、压缩前保护和主动检索

写给正在用 Hermes 的你

1.png

Hermes 很强但还可以更强

Hermes 已经是一个相当完整的开源 Agent:它能调用工具、学习技能、接受子 Agent 委派,也提供了 MEMORY.mdUSER.md 和历史会话搜索等记忆能力。

但当你真的把 Hermes 用起来,尤其是运行在多台设备、临时容器或长期在线服务器上时,可能会遇到另一类问题:

  • 重要信息分散在本地文件和历史会话里,换设备后不能自然延续
  • 想按“意思”查找过去的经验,而不只是做关键词匹配
  • 希望对话结束后自动沉淀用户偏好、项目事实和历史经验;
  • 上下文压缩后,仍希望 Agent 能从长期记忆中找回相关内容
  • 不想为了记忆抽取、向量检索和云端存储,自己维护一整套基础设施

Hermes 的内置记忆并不是“不好”。恰恰相反,本地 Markdown 简单、快速、透明,适合保存最重要的规则和高频事实。只是当记忆规模变大、需要跨设备或语义检索时,我们需要的是一个增强层

AgentArts Memory提供增强层实现

这正是 AgentArts Memory 的 Hermes 插件所做的事:

保留 Hermes 原有记忆,同时把 AgentArts Memory 接入为外部长期记忆 Provider。

插件通过 Hermes 已有的 Memory Provider 接口工作,不需要修改 Hermes 核心,也不需要改你的业务代码。

接入后:

  • 每轮对话结束 → 自动同步
  • 每次回答之前 → 检索相关记忆
  • 需要的时候 → 主动搜索云端长期记忆
  原来的限制   接入后获得的能力
记忆主要保存在本地环境
经过提取的长期记忆保存在云端,可跨环境使用
历史内容主要依赖文件或会话关键词搜索
支持围绕当前问题进行语义检索
需要手动维护重要事实
每轮对话后自动同步,由记忆策略提取有价值的信息
上下文压缩可能丢掉早期细节
压缩前再次检索与当前任务相关的长期记忆
需要自己搭建存储与提取流程
AgentArts Memory 提供全托管记忆能力

AgentArts Memory 内置语义记忆、用户偏好、会话摘要和情景记忆等策略,并支持按空间、会话和用户等维度管理记忆。对于 Hermes 用户,它的价值不是“存下更多聊天记录”,而是让有用的信息能被提取、检索并在下一次会话中继续使用。

一、快速接入步骤

2.png

Step 1:准备工作(5 分钟)

1.1 确认 Hermes 环境

你应该已经有 Hermes 了。确认一下版本和主目录:

hermes --version
# 确保 Hermes 已正确安装,主目录默认为 ~/.hermes/

如果尚未安装,请参考 Hermes 官方安装文档(https://hermes-agent.nousresearch.com/docs/getting-started/installation)。

1.2 创建 AgentArts 记忆库

这一步是唯一的"新东西"——去华为云控制台创建一个记忆库。

进入华为云 AgentArts 控制台,在“组件库 → 记忆库”中创建一个记忆库。

建议先启用以下长期记忆策略:

  • 语义记忆:保存项目事实和上下文知识;
  • 用户偏好:保存稳定的沟通与使用偏好;
  • 会话摘要:提炼一次会话的主题、结论和历史决策;
  • 情景记忆:保存带有具体过程和结果的历史经验。

创建后获取三个关键参数

  参数   环境变量   说明   获取方式
记忆库 ID
AGENTARTS_MEMORY_SPACE_ID
AgentArts 记忆库唯一标识
控制台记忆库列表
API Key
HUAWEICLOUD_SDK_MEMORY_API_KEY
记忆库数据面接口密钥
创建时弹出,仅展示一次
区域
HUAWEICLOUD_SDK_REGION
创建记忆库时所在的 Region
console所选Region

🔗 相关入口

    1.3 安装agentarts-sdk

    Linux/macOS/Windows:

    pip install agentarts-sdk
    

    查看agentarts版本号(要求版本号>0.1.5):

    agentarts --version
    


    Step 2:给Hermes安装agentarts记忆插件(1 分钟)

    通过agentart命令进行插件安装:

    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 分钟)

    插件装好后,查看 agentarts 记忆插件状态(需要重新打开一个命令行窗口):

    hermes memory status
    

    返回Provider:agentarts 即表明 Hermes 的 AgentArts Memory 插件已安装完成。

    ⚠️ 认证失败?别慌,按这个顺序排查

    1. API Key 是否有效——有没有在控制台重置过?重置后旧 Key 就失效了
    2. 区域是否一致——HUAWEICLOUD_SDK_REGION 的值和创建记忆库时选的区域对得上吗
    3. 记忆库状态——控制台看一下是不是 running,还在创建中就等一下

    90% 的问题都是这三个原因。

    可使用 hermes memory setup 选择agentarts,进行agentarts记忆库参数重置


    二、插件做了什么:7 个生命周期钩子

    到上一步你的 Hermes 已经有云端记忆了。但如果你想知道"它到底怎么工作的"——这部分才是精华。

    3.png

    Hermes 的插件体系定义了 7 个生命周期钩子,AgentArts Memory 插件进行了合理的设计

    钩子 调用时机 插件行为 通俗理解
    system_prompt_block
    构造系统提示词时
    注入AgentArts Memory记忆能力说明
    告诉 Agent 可以使用云端记忆
    prefetch
    每次 LLM 调用前
    搜索并注入相关记忆
    回答前先"回忆"
    sync_turn
    每轮对话完成后
    后台写入用户输入与助手回复
    把这轮对话"记下来"
    on_pre_compress
    上下文压缩前
    无需操作
    逐轮已落库
    on_memory_write
    Hermes 内置记忆写入时
    将写入内容同步到 AgentArts
    把重要本地记忆镜像到云端
    on_session_end
    Session 结束时
    无需操作
    逐轮已落库
    shutdown
    Hermes 退出时
    等待后台写入并关闭客户端
    尽量完整收尾


    三个核心设计,逐个拆

    4.png

    1. 非阻塞写入——你不会感觉到任何延迟

    每轮对话结束后,sync_turn 会通过后台线程将用户输入和助手回复同步到 AgentArts Memory,由云端记忆策略继续完成提取与沉淀。不阻塞 Hermes 主循环。

    用户体验:对话流畅度和之前一模一样,但每轮对话都已经被默默记下来了。

    2. 上下文注入——让 Agent"想起来"

    每次 LLM 调用前,prefetch会根据当前对话内容从 AgentArts Memory 检索相关记忆,作为补充注入到上下文里。

    检索四类内容:用户画像、情景记忆、语义记忆、历史摘要。注入之后,Agent 回答时就能"回忆起"之前的信息。

    这模拟的是人类的记忆方式:你听到一个问题,大脑自动联想相关记忆,然后才能回答。先回忆,再回答——Agent 也是这个逻辑。

    3. MEMORY.md 镜像——兼容你现有的东西

    Hermes 原本就有一个 MEMORY.md 文件用于本地记忆。on_memory_write会把这个文件的写入操作镜像同步到 AgentArts Memory。

    这意味着你原有的记忆功能不受影响,本地和云端双向一致。万一以后想换回本地记忆,数据不会丢。不是替换你的东西,是给你加一层更强的后端。


    三、两个主动检索工具:让 Agent 按需"回忆"

    除了自动注入(prefetch),插件还注册了两个工具让 Agent 主动搜索记忆。区别是:prefetch 是系统自动做的,Agent 不知道自己被注入了记忆;而工具是 Agent 自己决定"我现在需要回忆什么"。

    5.png


    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 秒看到跨会话记忆

    6.png

    装好了,来验证一下。

    第一轮会话:告诉 Agent 一些信息

    用户:我叫李四,是一名数据工程师,主要用 Python 和 Spark。
    Agent:你好李四!很高兴认识你。作为数据工程师,Python 和 Spark 是很好的技术栈组合...

    结束会话,等 30 秒

    为什么要等?因为 AgentArts Memory 从对话生成记忆需要调大模型做策略化提取和向量化存储,大概 30 秒。prefetch 搜索的是之前轮次已生成的记忆,不是当前轮次刚写入的。

    开新会话:看 Agent 还记不记得

    用户:你还记得我是谁吗?
    Agent:当然记得!你是李四,一名数据工程师,主要使用 Python 和 Spark 进行数据处理工作。有什么我可以帮你的吗?

    这就是跨会话记忆。 没有数据库查询,没有手动传递上下文,Agent 自己"想起来"了。

    💡 搜索没结果?99% 是时间不够

    sync_turn 写入后不会立即可搜索。等 30 秒后重试,基本就好了。


    五、一套通用范式:不只是 Hermes

    如果你以后换到别的 Agent 框架,Hermes 插件的集成思路照样能用。核心就是四件事

    集成环节 Hermes 实现 通用模式 核心原则
    记忆写入
    sync_turn
     非阻塞写入
    对话结束后异步写入
    不阻塞主流程
    记忆注入
    prefetch
     检索注入
    LLM 调用前检索相关记忆
    先回忆,再回答
    压缩保护
    on_pre_compress
    上下文压缩前重新注入
    关键记忆保留在上下文里
    主动检索
    ltm_search
     工具
    注册为 Agent 工具
    Agent 按需主动回忆

    写入(异步)+ 注入(检索)+ 保护(压缩前重注入)+ 工具(主动检索)

    记住这四个词,任何框架集成的思路就有了。

    💡 AgentArts Memory 的集成生态

    Hermes 只是第一步。目前 SDK 已提供:

    • Python SDK:原生 Python 接口,4 个 API 搞定记忆管理
    • LangGraph 集成:AgentArtsMemorySessionSaver + recall_memory 工具
    • Hermes 插件:完整的生命周期钩子集成
    • 更多框架适配持续开发中,欢迎在 GitHub 仓库(https://github.com/huaweicloud/agentarts-sdk-python)提 Issue 告诉我们你的需求


    小结

    如果你已经在用 Hermes,这篇文章给你的是一个10 分钟的记忆升级方案

    • 不改业务代码——插件机制,复制文件 + 跑一条配置命令
    • 7 个生命周期钩子自动管理记忆——你不用手动调任何记忆 API
    • 核心机制:非阻塞写入 + 自动检索注入 + 压缩保护——用户零感知,Agent 有记忆
    • 兼容现有设计——MEMORY.md 镜像同步,本地和云端双向一致
    • 通用集成范式:写入 + 注入 + 保护 + 工具——换框架也用得上

    插件代码完全开源,欢迎在 GitHub 查看、提 Issue 或贡献代码。

    🚀 给你的 Hermes 升个级

    AgentArts Memory 从 4 月 15 日公测至今,已经在通用智能体、智能座舱、办公IM等场景中验证了可靠性。

    现在,你可以让自己的 Hermes 也用上同一套记忆能力:

    • 开通服务:华为云控制台 → AgentArts → 创建记忆库(新用户有免费额度)

    • 安装插件:agentarts memory install,1 分钟搞定

    • 查看源码:https://github.com/huaweicloud/agentarts-sdk-python

    • 加入社区:提 Issue、贡献代码、分享你的集成实践

    🔗 控制台:https://console.huaweicloud.com/agentarts/

    🔗 产品文档:https://support.huaweicloud.com/highcode-agentarts/agentarts_10_015.html

    🔗 SDK 仓库:https://github.com/huaweicloud/agentarts-sdk-python

     推荐体验AI办公智能体,华为云智果OfficeAce,你身边的AI办公工作台:https://www.huaweicloud.com/product/agentarts/officeace.html




    容器模仿.png

    关注魔方公众号,获取更多前沿资讯

    【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
    • 点赞
    • 收藏
    • 关注作者

    评论(0

    0/1000
    抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。