2026年7月2日 1 分钟阅读

AI 编码 Agent 每轮会话都从零开始?用 YourMemory 的生物学遗忘曲线让记忆持久化

tinyash 0 条评论

你有没有遇到过这种情况:在 Claude Code 里花了半天调试好的项目配置习惯,第二天打开 Cursor 写新功能时,Agent 又问你”你偏好用 tabs 还是 spaces”?每周都重新解释一遍自己的技术栈偏好,每次新会话都从零开始建立上下文——这种重复感让人心累。

市面上不乏 AI 记忆方案:Mem0、Zep、LangMem……但大多要么是云端黑盒、要么需要复杂的基础设施。今天介绍一个另辟蹊径的方案——YourMemory,它把艾宾浩斯遗忘曲线搬进了 AI Agent 的记忆系统,用”会自然遗忘”取代”无限堆积”,在多个权威基准上跑出了领先分数。

问题所在:AI 会话的”失忆症”

每个 AI 编码 Agent 会话都是一个独立的沙箱:

Session 1: "告诉我你的 Python 环境是 3.12,用 poetry 管理依赖"
Session 2: "你之前说过 Python 环境了吗?我再问你一遍"
Session 3: "偏好 tabs 还是 spaces?……好的我记下了"
Session 4: "(又是一次轮回)"

这不是 Agent 的错——它们生来就没有跨会话记忆。传统的解决方案(向量数据库 + RAG)要么需要自建全套检索管线,要么依赖云端 API 每次调用都花钱。更重要的是,它们缺少一个关键特性:遗忘

人脑之所以高效,是因为该忘的会忘。错的项目结构信息、过时的环境配置、上次实验性尝试的失败记录——如果不加筛选地全量保留,反而成了检索阶段的噪音。

YourMemory 的设计哲学

YourMemory 把它的记忆系统建立在一个经典认知心理学模型上:艾宾浩斯遗忘曲线。核心公式很简单:

strength = clamp(importance × e^(−λ × active_days) × (1 + recall_count × 0.2), 0, 1)

关键参数:

  • importance(重要性):越重要的信息衰减越慢,用户可以在存储时自定义
  • active_days(活跃天数):只计算你实际使用 AI 的日子——休假不会导致记忆丢失
  • recall_count(回忆次数):每次被回顾都会增强记忆强度

强度低于 0.05 的记忆会被自动修剪。这意味着你三个月前的一次临时环境变量实验,不会被召回到今天的编码会话中——除非它被反复引用过。

四类记忆,四种衰减速度

YourMemory 把记忆按类别分层,每类有不同的”半衰期”:

类别半衰期适用场景
strategy(策略)~38 天架构决策、工作流模式
fact(事实)~24 天个人偏好、稳定的技术栈信息
assumption(假设)~19 天推断性上下文、不确定的信念
failure(失败)~11 天错误处理、环境特定的坑

策略类记忆残留最久——你三个月前决定的”微服务用 gRPC 通信”应该比”昨天临时装的 debug 包”活得更久。

安装与配置:一条命令起步

YourMemory 的安装流程极其简洁。不需要 Docker Compose 或数据库初始化:

pip install yourmemory
yourmemory-register 
yourmemory-setup

yourmemory-setup 会自动做三件事:

  1. 拉取本地 embedding 模型(默认 qwen2.5:7b,通过 Ollama 管理,约 4.7 GB)
  2. 创建默认的 DuckDB 向量数据库(零配置)或可选的 PostgreSQL + pgvector
  3. ~/.cursor/rules/memory.mdc 等配置文件中注入记忆工具的自动调用规则

激活流程

访问 yourmemoryai.xyz 输入邮箱,验证 6 位验证码后获得 token。注意:YourMemory 并非完全开源——它采用 CC BY-NC 4.0 许可证,个人使用、教育和学术研究免费,但商业用途需要单独授权。

三个 MCP 工具:记忆的 CRUD

YourMemory 通过 MCP(Model Context Protocol)暴露三个工具,AI 编码 Agent 可以在需要时自动调用:

store_memory — 存储新知识

store_memory(
    "Sachit prefers tabs over spaces in Python",
    importance=0.9,
    category="fact",
    context_paths=["/projects/backend"]
)

存储时会做主体感知去重:如果新内容与已有记忆指向同一实体(比如都关于”Sachit 的 Python 偏好”),不会重复存储,而是更新强度。如果主体不同(”Sachit 用 DuckDB” vs “YourMemory 用 DuckDB”),则分别存储。

recall_memory — 召回相关记忆

recall_memory("Python formatting", current_path="/projects/backend")

召回分两轮:第一轮用余弦相似度 + BM25 混合检索,返回 top-k 候选;第二轮走实体图 BFS 扩展,把词汇不同但语义相关(通过共享实体连接)的记忆也拉进来。

空间上下文(current_path)还会触发 +0.08 的空间加成——当你在 /projects/backend 里写代码时,关于这个目录的记忆排在前面。

update_memory — 修正过时的记忆

当某个事实变化时(比如项目从 Poetry 换到了 uv),调用 update_memory 不仅更新内容,还会把旧版本写入审计日志,以便追溯。

零成本的离线查询

这是一个让我眼前一亮的功能:YourMemory 的 CLI 可以不调用任何 LLM API 就直接回答记忆中的问题:

yourmemory ask "what database does this project use"

yourmemory ask "how do I fix a kubernetes deployment"

当记忆强度足够时,回答零延迟、零 token 消耗、零云端传输。强度不够时,诚实地拒绝并让路给 Claude 等模型——不会为了好看而胡编乱造。

API 代理:透明的记忆注入

如果你的工作流不用 MCP(比如直接调用 OpenAI API),YourMemory 提供了一个 API 代理:

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:3033/proxy/openai"
)
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "What database do I use?"}]
)

代理在每次请求时:

  1. 召回相关记忆注入到 system prompt
  2. store_memoryupdate_memory 添加为可用工具
  3. 当模型调用记忆工具时在本地执行并返回结果

内存仪表盘

启动 MCP 服务器后,访问 http://localhost:3033/ui 就能看到一个完整的记忆浏览器:

  • 统计栏:总记忆数、强记忆(≥50%)、正在消退的(5-50%)、即将修剪的(<10%)
  • 按 Agent 分页查看各自记忆
  • 过滤:按类别(fact / strategy / assumption / failure)、按强度、按最近访问时间

http://localhost:3033/graph 则是交互式的记忆关系图谱,用节点和边展示记忆之间的连接——非常适合一眼看出哪些上下文是孤立的、哪些是高频联系在一起的。

基准表现

YourMemory 在三个标准数据集上做了对比测试:

基准分数对比
LongMemEval-S Recall@589.4%500 个问题、平均 53 个干扰会话
LoCoMo-10 Recall@559%2× Zep Cloud(28%)
HotpotQA BOTH@571.5%实体图加持 +12pp

尤其值得关注的是 LoCoMo 的成绩——59% 的 Recall@5 直接翻倍了 Zep Cloud 的 28%。YourMemory 的秘密武器是混合检索:纯向量相似度 + BM25 关键词 + 实体图 BFS 的三重组合,让那些”词汇不同但语义连通”的记忆也能被正确召回。

适合谁来用?

  • 多 Agent 用户:同时用 Claude Code、Cursor、Cline 的开发者,YourMemory 支持多 Agent 共享实例+权限隔离
  • 对隐私敏感的用户:所有记忆处理本地完成,embedding 不走云端
  • 团队协作场景:PostgreSQL + pgvector 后端可共享,每个成员有独立 api_key 和可见性控制
  • 不想增加 API 开销的团队:离线查询和本地处理意味着 0 额外 LLM 成本

小结

YourMemory 用一个从认知科学借来的思路——遗忘曲线——重新思考了 AI Agent 应该怎样”记住”。不是无限堆叠、无差别存储,而是有优先级、有衰减、有自动修剪的生命周期记忆。对于每天在多个 AI 编码工具之间切换的开发者来说,装上这样一层”会自然遗忘”的记忆,能让 Agent 真正越用越顺手。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。