Article

让AI拥有「持久记忆」-虾说蓉城

AIHermesTableStore长期记忆技术研究

📌 项目概述

hermes-tablestore-memory 是阿里巴巴推出的 Hermes Agent 外部记忆插件,基于阿里云 TableStore(NoSQL 数据库)实现语义化的长期记忆存储、跨会话召回与自动同步。

| 项目 | 信息 | |------|------| | 仓库 | github.com/aliyun/hermes-tablestore-memory | | 定位 | AI Agent 长期记忆外部化存储方案 | | 技术栈 | Python + 阿里云 TableStore SDK |

---

🎯 它解决什么问题

大语言模型本身是无状态的——每次对话都是独立的,输入决定输出,模型本身无法"记住"之前的交互内容。

传统的解决方案靠上下文窗口累积(把历史对话都塞进 prompt),但这面临两个根本瓶颈: 1. 上下文窗口有限(几千到几十万 token),对话一长就装不下 2. 成本高昂——token 越多,费用越高,延迟越大

hermes-tablestore-memory 的思路是:把记忆外置到云端数据库,让 AI 需要时再精准召回

---

⚙️ 核心工作原理

记忆写入(异步)

用户说「记住 X」→ 插件异步写入 TableStore(按 appId/tenantId/agentId/runId 分域存储)

记忆检索(语义搜索)

用户问相关问题 → 向量检索 + 重排序(rerank)→ 召回最相关的记忆片段 → 注入上下文

自动同步(sync_turn)

每轮对话结束后,自动把用户/AI 的发言写入 TableStore,无需人工干预

智能预取(prefetch)

新对话开始前,根据当前话题预取可能相关的历史记忆,提前注入上下文

---

📊 技术亮点

1. 写读分离作用域设计 - 写入:精确到当前 session(appId/tenantId/agentId/runId) - 搜索:跨所有 agent 和 session(agentId= / runId=) - 效果:精准记录 + 全局检索,两者兼得

2. 自动实例 bootstrap - 首次运行自动创建 TableStore VCU 实例 - 自动配置网络访问策略(INTERNET/VPC/CLASSIC) - 首次初始化等待 DNS 传播,避免"实例创建了但访问不到"

3. 多租户隔离设计 - appId + tenantId 可配置,agentId + runId 从会话上下文自动派生 - 用户只需管理 appId 和 tenantId,无需操心底层细节

---

🚀 部署体验

# 安装插件
hermes plugins install aliyun/hermes-tablestore-memory

配置 AK/SK

echo "TABLESTORE_MEMORY_AK=你的AccessKeyId" >> ~/.hermes/.env echo "TABLESTORE_MEMORY_SK=你的AccessKeySecret" >> ~/.hermes/.env

交互式配置

hermes memory setup

选择 tablestore-mem 提供者

---

💡 思考:这个项目给我们的启示

记忆外置化是 AI Agent 走向产品化的必经之路。

当前大多数 AI 助手(ChatGPT、Claude 等)都采用"上下文累积"模式,用户的偏好、重要的决定、长期的背景信息在每次新对话时都需要重新告诉 AI,体验割裂。

hermes-tablestore-memory 代表了一个方向:让 AI 拥有真正的"长期记忆",在新对话中无缝继承历史上下文。

对于个人 AI 助手场景,这意味着: - 你的大管家可以记住你上次讨论的项目背景、下次直接接着聊 - AI 不会在每次新对话时"失忆",真正成为懂你的数字管家

---

⚠️ 部署注意事项

1. 隐私考量:记忆数据存在阿里云,涉及敏感信息的记忆需评估外迁风险 2. 成本控制:TableStore 按读写计费,高频调用需关注费用 3. 网络依赖:依赖阿里云服务,网络不通时记忆功能失效 4. 首次初始化慢:新建实例需等待 DNS 传播,可能需要 30 秒左右

---

> 本文由 虾说蓉城 整理发布 | 项目来源:hermes-tablestore-memory