4行代码助力AI应用外接记忆——文章搬运工

用 4 行代码,给你的 AI 应用外接记忆

image

想象一下这样的场景:

你正在和一个 AI 医疗助手聊天,它刚刚帮你记录了头痛的症状。第二天,你再次咨询时,它竟然完全忘记了你是谁,还要你重新介绍一遍病情…

是不是很抓狂?

这就是传统 AI 应用的"金鱼记忆"问题 —— 每次对话都是"初次见面",永远记不住历史信息。

但今天,我要告诉你一个极佳的解决方案:PowerMem + seekdb —— 一个让 AI 拥有 “超强记忆力” 的持久化记忆系统!


数据说话:48.77% 准确率提升,96.53%成本降低!

先看一组压测数据:

  • :white_check_mark: 准确率提升 48.77%:在 LOCOMO 基准测试中,准确率从 52.9% 提升至 78.70%
  • :zap: 响应速度快 91.83%:检索延迟从 17.12 秒降至 1.44 秒
  • :moneybag: Token 用量降低 96.53%:从 26k 降至 0.9k,成本暴降!

这意味着什么?

你的 AI 应用不仅能记得更准,还能答得更快,同时花得更少!

不是简单的"记事本",而是"最强大脑"

PowerMem 是什么?

PowerMem 建立在这样一个原则之上:AI 系统应该能够像人类一样随着时间积累知识和经验。这一理念驱动了 PowerMem 设计和实施的每个方面:

  • 智能提取和保留:PowerMem 通过 LLM 模型进行记忆的提取,根据重要性和相关性确定哪些信息值得记住。
  • 上下文理解:PowerMem 维护跨交互的上下文以实现有意义的个性化体验。
  • 持续学习:PowerMem 使 AI 系统能够从每次交互中学习并随着时间的推移而改进。
  • 自适应遗忘:像人类记忆一样,PowerMem 实现了自适应遗忘机制以防止信息过载。

PowerMem 的核心特性包括:

  • 开发者友好

  • 轻量级接入方式[1]:提供简洁的 Python SDK / MCP支持,让开发者快速集成到现有项目中

  • 智能记忆管理

  • 记忆的智能提取[2]:通过 LLM 自动从对话中提取关键事实,智能检测重复、更新冲突信息并合并相关记忆,确保记忆库的准确性和一致性。

举个例子:还记得上学时老师让你划重点吗?PowerMem 就是 AI 的"学霸助手"!

# 用户说了一堆话
messages = [
    {"role": "user", "content": "Hi, my name is Alice. I'm a software engineer at Google."},
    {"role": "assistant", "content": "Nice to meet you, Alice!"},
    {"role": "user", "content": "I love Python programming and machine learning."}
]

# PowerMem 自动提取关键事实
memory.add(messages=messages, user_id="alice", infer=True)

# 结果:自动提取出 4 条关键记忆
# 1. Name is Alice
# 2. Is a software engineer at Google  
# 3. Loves Python programming
# 4. Loves machine learning

不需要你手动标注,AI 自动帮你"划重点"!

  • 艾宾浩斯遗忘曲线[3]:基于认知科学的记忆遗忘规律,自动计算记忆保留率并实现时间衰减加权,优先返回最近且相关的记忆,让 AI 系统像人类一样自然"遗忘"过时信息

还记得那个著名的遗忘曲线吗?PowerMem把它用在了AI记忆上!

:date: 最近的信息:权重高,优先召回

:alarm_clock: 久远的信息:权重低,自然衰减

:broom: 过时信息:自动清理,保持记忆库新鲜

就像人类大脑一样,重要的、最近的信息记得更牢!

  • 多智能体支持

  • 智能体共享/隔离记忆[4]:为每个智能体提供独立的记忆空间,支持跨智能体记忆共享和协作,通过作用域控制实现灵活的权限管理

  • 多模态支持:不仅记得文字,还 “看得懂” 图片

  • 文本、图像、语音记忆[5]:自动将图像和音频转换为文本描述并存储,支持多模态混合内容(文本 + 图像 + 音频)的检索,让 AI 系统理解更丰富的上下文信息

# 存储图片记忆
memory.add(
    messages=[{"role": "user", "content": "这是我的X光片"}],
    images=["xray_image.jpg"],
    user_id="patient_001"
)

# 搜索时,文字 + 图片一起检索
results = memory.search("X光片结果", user_id="patient_001")
  1. 深度优化数据存储
  • 支持子存储(Sub Stores)[6]:通过子存储实现数据
    的分区管理,支持自动路由查询,显著提升超大规模数据的查询性能和资源利用率
  • 混合检索[7]:融合向量检索、全文搜索和图检索的多路召回能力,通过 LLM 构建知识图谱并支持多跳图遍历,精准检索复杂的记忆关联关系

seekdb 是什么?

OceanBase seekdb 是 OceanBase 打造的一款开发者友好的 AI 原生数据库产品,专注于为 AI 应用提供高效的混合搜索能力,支持向量、文本、结构化与半结构化数据的统一存储与检索,并通过内置 AI Functions 支持数据嵌入、重排与库内实时推理。 seekdb 在继承 OceanBase 原核心引擎高性能优势与 MySQL 全面兼容特性的基础上,通过深度优化数据搜索架构,为开发者提供更符合 AI 应用数据处理需求的解决方案。

PowerMem + seekdb (1 + 1 >2 ) 的持久化记忆解决方案

PowerMem 的架构旨在模块化、可扩展,包括如下层:

  • 核心记忆引擎 (core):管理所有记忆操作,包括智能记忆处理器、分层记忆管理、全生命周期记忆管理模块
  • 模型层:提供与流行 LLM 和嵌入模型的无缝集成
  • 存储层:支持多种存储后端的灵活接口。特别的,我们在 seekdb / oceanbase 上做了深度适配,充分利用了 seekdb 的混搜能力

所以,PowerMem + seekdb 的组合不是简单的数据存储,而是一个真正智能的持久化记忆系统。

1 分钟快速上手:让 AI 秒变"记忆大师"

第一步:安装

pip install powermem

第二步:使用

from powermem import Memory, auto_config

# 自动从 .env 加载配置
memory = Memory(config=auto_config())

# 添加记忆(自动提取事实)
memory.add("用户喜欢喝咖啡", user_id="user123")

# 搜索记忆(智能检索)
results = memory.search("用户偏好", user_id="user123")

就这么简单!4 行 python 代码,让你的 AI 拥有"记忆力"!

结语:是时候给 AI 装个"外挂记忆"了!

还在为 AI 的 “金鱼记忆” 而烦恼吗?

还在为 Token 成本居高不下而头疼吗?

还在为检索准确率低而困扰吗?

PowerMem 来了!

  • :dart: 准确率提升 48.77%
  • :zap: 响应速度快 91.83%
  • :moneybag: 成本降低 96.53%

让 AI 拥有"最强大脑",从 PowerMem 开始!

**
**


:books: 相关资源

  • PowerMem GitHub 仓库[8]
  • seekdb GitHub 仓库[9]
  • PowerMem 官方网站[10]
  • seekdb 官方网站[11]

至此,正文结束。

What’ s more?

不懂技术的 OceanBase 社区运营小编,看到靖顺老哥在正文中吹嘘的 “一分钟快速上手”,深表怀疑。因此特地根据步骤,复制黏贴上文的命令,来验证和记录一下。

pip install powermem

git clone https://github.com/oceanbase/powermem.git

cd powermem

cp .env.example .env

之前小编已经在自己的 mac 笔记本上安装过 seekdb 的桌面版,全程都只需要在白屏点击“下一步”。(桌面版安装包在这里:OceanBase 分布式数据库 - 海量数据 笔笔算数

根据 github 上的 “入门指南”,还需要简单调整下 .env 文件,主要是改一下配置文件中 OceanBase 或者 seekdb 的 ip、port 信息,以及填一下模型服务的 API KEY。

下图是小编 .env 调整前后的 vimdiff。

看配置文件,应该是会把 powermem 的记忆信息存储到我本地的 seekdb 里一个叫 powermem 的库里,需要手动先给它创建出来。

% seekdb
Welcome to the MySQL monitor.  Commands end with ; or \g.
Server version: 5.7.25 OceanBase 4.3.5.3 SeekDB (r1.0.0.0)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database powermem;
Query OK, 1 row affected (0.12 sec)

复制 github 上的示例 python 文件,这里除了靖顺老哥上面展示的 4 行,还多了两行查询和展示记忆存储结果的。

% cat test.py

from powermem import Memory, auto_config

# Load configuration (auto-loads from .env)
config = auto_config()
# Create memory instance
memory = Memory(config=config)

# Add memory
memory.add("User likes coffee", user_id="user123")

# Search memories
results = memory.search("user preferences", user_id="user123")
for result in results.get('results', []):
    print(f"✓ Found: {result.get('memory')}")

什么也不需要改动,直接执行即可,看上去结果是符合预期的。PowerMem 的测试,比预想的要顺利很多,运营同学也能快速完成,欢迎大家试用!

% python3 test.py
✓ Found: Likes coffee

感兴趣的老师们,还可以再去看下 powermem 在 seekdb 里面是怎么存储 “记忆” 的?

% seekdb
Welcome to the MySQL monitor.  Commands end with ; or \g.
Server version: 5.7.25 OceanBase 4.3.5.3 SeekDB (r1.0.0.0)
Type 'help;'or'\h'for help. Type '\c' to clear the current input statement.

mysql> use powermem

mysql> show tables;
+--------------------+
| Tables_in_powermem |
+--------------------+
| memories           |
+--------------------+
1 row in set (0.00 sec)

mysql> desc memories;
+------------------+--------------+------+-----+---------+-------+
| Field            | Type         | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| id               | bigint(20)   | NO   | PRI | NULL    |       |
| embedding        | VECTOR(1536) | YES  |     | NULL    |       |
| document         | longtext     | YES  |     | NULL    |       |
| metadata         | json         | YES  |     | NULL    |       |
| user_id          | varchar(128) | YES  |     | NULL    |       |
| agent_id         | varchar(128) | YES  |     | NULL    |       |
| run_id           | varchar(128) | YES  |     | NULL    |       |
| actor_id         | varchar(128) | YES  |     | NULL    |       |
| hash             | varchar(32)  | YES  |     | NULL    |       |
| created_at       | varchar(128) | YES  |     | NULL    |       |
| updated_at       | varchar(128) | YES  |     | NULL    |       |
| category         | varchar(64)  | YES  |     | NULL    |       |
| fulltext_content | longtext     | YES  |     | NULL    |       |
+------------------+--------------+------+-----+---------+-------+
13 rows in set (0.00 sec)

mysql> select * from memories\G
*************************** 1. row ***************************
              id: 659224926074437632
       embedding: [0.0383122,-0.0106654,-0.0383817,-0.00595737,0.00112351,-0.0235866,0.00142427,-0.0117586,0.0508979,0.119379,0.0584863,-0.0144712,0.0182538,-0.0602446,0.0880071...](这里在展示上,省略了一千五百多个维度的信息)
        document: Likes coffee
        metadata: {"_fusion_info": {"fts_rank": null, "rrf_score": 0.00819672131147541, "fts_weight": 0.5, "vector_rank": 1, "fusion_method": "rrf", "vector_weight": 0.5}, "search_count": 4, "last_searched_at": "2025-12-25T11:23:08.925772+08:00"}
         user_id: user123
        agent_id: NULL
          run_id: NULL
        actor_id:
            hash: 9b9c6ed72da0f1e8a3dfdbd8bdd11145
      created_at: 2025-12-25T10:44:30.171707+08:00
      updated_at: 2025-12-25T11:23:08.925744+08:00
        category:
fulltext_content: Likes coffee
1 row in set (0.02 sec)

最后,对 powermem 感兴趣的老师,欢迎阅读另外几篇和 powermem 有关公众号文章:

Hi,我是 OceanBase PowerMem,了解一下?

PowerMem 插件在 Dify 的安装与使用指南

从开发者视角观察 OceanBase 开源的 AI 产品御三家

参考资料

[1] 轻量级接入方式: https://github.com/oceanbase/powermem/blob/main/docs/examples/scenario_1_basic_usage.md

[2] 记忆的智能提取: https://github.com/oceanbase/powermem/blob/main/docs/examples/scenario_2_intelligent_memory.md

[3] 艾宾浩斯遗忘曲线: https://github.com/oceanbase/powermem/blob/main/docs/examples/scenario_8_ebbinghaus_forgetting_curve.md

[4] 智能体共享/隔离记忆: https://github.com/oceanbase/powermem/blob/main/docs/examples/scenario_3_multi_agent.md

[5] 文本、图像、语音记忆: https://github.com/oceanbase/powermem/blob/main/docs/examples/scenario_7_multimodal.md

[6] 支持子存储(Sub Stores): https://github.com/oceanbase/powermem/blob/main/docs/examples/scenario_6_sub_stores.md

[7] 混合检索:
https://github.com/oceanbase/powermem/blob/main/docs/examples/scenario_2_intelligent_memory.md*

[8] PowerMem GitHub 仓库: GitHub - oceanbase/powercontext: Agent memory: long-term memory & agent memory handoff. Claude Code & Codex. · GitHub

[9] seekdb GitHub 仓库: GitHub - oceanbase/seekdb: The AI-Native Search Database. Best for agent storage, it unifies vector, text, structured, and semi-structured data into a single engine. This all-in-one database makes agents smarter, easier to run, and more stable. · GitHub

[10] PowerMem 官方网站: https://www.powermem.ai/

[11] seekdb 官方网站: https://www.oceanbase.ai/