MemoryLake
工程与开发者ChatGPT API 的跨会话上下文

为每个 ChatGPT API 调用添加跨会话上下文

ChatGPT API 是无状态的。每次调用都是空白的,除非您将上下文填充到系统提示中——这会增加令牌、延长延迟,并且仍然会失去保真度。MemoryLake 为 ChatGPT API 添加了一个跨会话记忆层,因此每次调用仅检索相关的上下文。

Day 1“ChatGPT API”“是无状态的。每次调用都是空白的,除非您将上下文填充到系…”✓ 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每用户持久记忆紧凑检索胜过填充提示六种记忆类型而不是一个缓冲区SESSION OUTPUT✓ Same prompt, on-brand answerNo re-briefing required.

为每个 ChatGPT API 调用添加跨会话上下文

免费开始使用

永久免费 · 无需信用卡

问题:ChatGPT API 在每个请求之间会遗忘

没有记忆层,每次 API 调用要么发送零上下文,要么发送一个巨大的系统提示,从头重新解释用户。团队在试图伪造持久性时浪费令牌、延迟和金钱。真正的解决方案是一个 API 可以查询的记忆存储——而不是更长的提示。

MemoryLake 如何解决 ChatGPT API 的跨会话上下文

每用户持久记忆

每用户持久记忆

每个用户都有自己的记忆命名空间。API 仅检索他们相关的先前事实、事件和对话。

MEMORY紧凑检索胜过填充提示

紧凑检索胜过填充提示

拉取一个 500 令牌的记忆块,而不是 50,000 令牌的聊天历史。相同的回忆,便宜 100 倍。

MEMORY六种记忆类型而不是一个缓冲区

六种记忆类型而不是一个缓冲区

对话、事实、事件、反思、技能和背景记忆各自使用自己的逻辑进行检索。

跨模型可移植性

跨模型可移植性

当您从 GPT-4o 切换到未来的模型——或切换到 Claude 或 Gemini——用户记忆会随之而来。零迁移成本。

免费开始使用

永久免费 · 无需信用卡

它是如何为 ChatGPT API 工作的

  1. 连接 — 通过 SDK 或 REST 将每个用户的转变和助手的响应传输到 MemoryLake。
  2. 结构 — MemoryLake 对每个转变进行分类、去重和存储,并附加用户元数据。
  3. 重用 — 在每次 API 调用之前,检索一个排名的、令牌预算的记忆块。将其作为系统上下文前置。

之前与之后:ChatGPT API 上下文处理

Without MemoryLakeWith MemoryLake
Returning user requestEmpty system promptPersonalized memory injected
Token usage for context30k+ per call<2k per call
Latency from huge promptsSlow first tokenCompact context, fast response
Switching to GPT-5 or ClaudeMigrate everythingMemory follows the user

适合谁

基于 OpenAI API 构建的产品团队——助手、助理、垂直 SaaS——希望用户在不支付填充系统提示的令牌税的情况下感受到被记住。

可运行的 demo约 3 分钟

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

Chat API 每次调用都从零开始,基于它的应用要么不带上下文,要么把用户的历史整段塞进每个 prompt。这里一个语言辅导应用保留原来的调用,只多加一个参数:每位学员的 boundary——覆盖其本人项目与 actor 的检索范围。MemoryRouter 按这句话挂上相关的记忆,demo 量出回复内容、prompt token 数,以及有没有串到别人的记忆。

你会看到

  • 两位学员(学日语、学德语)各有三段过去的会话,存成 conversation;每人一个项目、一个 actor、一个 boundary(boundary create --projects … --human-actor …)
  • 同一句话经 memorylake router chat 发三次:不带 boundary 时 5 次运行 30 项学员细节命中 0 项;带各自的 boundary 时都用上本人的细节(敬语、大阪、第三格、足球),从不出现对方的(串号 0/15)
  • token 账:把 Mina 三段历史整段塞进去是 767 个 prompt token,用 boundary 是 286~399。无关问题在 5 次里有 3 次仍被挂上了一些记忆,demo 照实打印
  • 同一个 boundary 走 router messages --model claude-haiku-4-5;今晚的会话像往常一样写入后,下一次调用从 N4 变成 N3(5/5),而「不要罗马音」有一次输给了更早钉入的偏好(4/5)。另有 ask 与本地 Web 界面

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

运行

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

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

相关场景

常见问题

这与 OpenAI 的内置记忆功能有什么不同?

OpenAI 的记忆是特定于 ChatGPT 的产品,且不透明且不可移植。MemoryLake 是开发者控制的、结构化的、可导出的,并且可以与任何模型一起使用。

它支持流式响应吗?

是的。检索发生在流式调用之前。记忆块只是您系统提示的一部分。

延迟影响如何?

单数字毫秒的检索。与模型延迟相比微不足道。