MemoryLake
工程与开发停止因填充代理历史而导致的令牌膨胀

通过将代理历史填充到每个提示中来停止令牌成本膨胀

生产代理应用程序很快发现同样的陷阱:将对话历史填充到每个提示中会比使用更快地推动令牌成本和延迟。MemoryLake 提取一个与当前任务相关的紧凑记忆块——相同的回忆,令牌的分数。

Day 1“生产代理应用程序很快发现同样的陷阱:将对话历史填充到每个提示中会比使用更快地推动令牌成本和延迟。MemoryLake”“提取一个与当前任务相关的紧凑记忆块——相同的回忆,令牌的分数。”✓ Got it, I will remember.Day 7 — new session“Same task again — can you keep the context?”× Sure — what was the context again?(forgot every detail you taught it)+ MEMORYLAKE LAYERMemory auto-loaded基于令牌预算的检索类型化记忆胜过平面历史相较于填充的 10,000 倍规模SESSION OUTPUT✓ Same prompt, on-brand answerNo re-briefing required.

通过将代理历史填充到每个提示中来停止令牌成本膨胀

免费开始使用

永久免费 · 无需信用卡

问题:令牌成本与填充历史成比例

一个拥有三个月代理历史的用户有 200K 的上下文令牌。将其填充到每次调用中会在每次交互中增加推理成本和延迟。切换到摘要记忆会失去保真度。正确的答案是结构化检索,而不是填充或摘要。

MemoryLake 如何减少令牌膨胀

基于令牌预算的检索

基于令牌预算的检索

仅提取与当前任务相关的记忆,大小适合您的预算。

MEMORY类型化记忆胜过平面历史

类型化记忆胜过平面历史

检索事实、事件或技能——而不是原始记录。

MEMORY相较于填充的 10,000 倍规模

相较于填充的 10,000 倍规模

将数百万个历史令牌压缩为毫秒级检索。

与提示缓存兼容

与提示缓存兼容

检索的块插入可缓存的系统消息中。

免费开始使用

永久免费 · 无需信用卡

如何实现令牌高效的代理记忆

  1. 连接 — 在提示构建时用 MemoryLake 检索替换历史填充。
  2. 结构 — 每次交互写入类型化记忆。
  3. 重用 — 每个提示检索一个基于令牌预算的记忆块。

之前与之后:令牌使用情况

Stuffed historyMemoryLake retrieval
Token cost per long-history call30K+<2K
Latency from giant promptSlow first tokenFast
Memory of months-old contextTruncated or summarizedRetrievable
Prompt cache hit rateDropsMaintained

适合谁

令牌成本增长速度超过用户数量的生产代理应用程序的工程团队——并且考虑过但因质量原因拒绝切换到摘要记忆。

可运行的 demo约 5 分钟

在你自己的账号上跑通这个场景

Tolland Hollow Brewing 的采购助手和采购主管在同一条长线程里工作:7 到 9 月的 10 场会话谈定了啤酒花合同、麦芽到货日、迟交补偿、玻璃瓶报价、CO2 账号、标签审批人和本季度审批额度。今天 16 轮的会话走三种方式:每次请求带上整条线程;只保留最近 6 轮(为账单常用的修法);同样 6 轮,再由 MemoryRouter 挂上 MemoryLake 从过往会话抽取的记忆。5 次运行里,只留窗口在涉及早先约定的 35 个问题上答对 0 个(24 次说「没有记录」,11 次编了数值),并且因为窗口每次都在变,它的缓存命中在 50 轮里有 47 轮停在 1,024 token 的系统提示;整条线程答对 34/35,约 92% 的 token 读自 prompt 缓存;窗口加记忆答对 35/35,而整条线程每场会话的成本是它的 1.5 倍。

你会看到

  • 10 场过往会话以会话形式写入 MemoryLake(conv create、conv msg append --timestamp),回答前先逐值核对今天要用的约定是否都已被抽取
  • 每轮三种 prompt:整条线程、最近 6 轮、最近 6 轮加 memorylake router chat --boundary;7 轮问到几周前的约定,按 ✓ / 没有记录 / 编造 判分
  • 每次调用打印 provider 的 usage.prompt_tokens_details.cached_tokens,按 memorylake router models 计价:线程只在末尾增长、一直命中缓存,窗口永远越不过系统提示
  • facts 列出 MemoryLake 抽取的事实,ask "<问题>" 把一轮新消息发给三种方式,另有本地 Web 界面,每次请求一条缓存条

需要: 一个 MemoryLake API key · memorylake CLI · Python 3.9+

运行

git clone https://github.com/memorylake-ai/memorylake-usecases.git
cd memorylake-usecases/history-window-memory
export MEMORYLAKE_BASE_URL=https://app.memorylake.cn/openapi/memorylake
export MEMORYLAKE_API_KEY=sk-…
python3 demo.py          # or: python3 web/server.py

看它跑起来 · 真实录制,未剪辑

相关场景

常见问题

检索会遗漏重要上下文吗?

LoCoMo 基准测试 #1 在长时间回忆上准确率为 94.03% — 排名最高的结构化检索。

成本比较?

通常在长历史规模上减少 10-100 倍的成本。

自托管?

是的 — 企业级部署在您的 VPC 中。