模型不记得。你记得。

大语言模型 (LLMs) 没有记忆。

我以前认为每个聊天会话都会存储自己的上下文。我错了。当你与 LLM 对话时,除非你再次发送,否则它不会记得你上一个问题。

模型是无状态的。这意味着每一次请求都是一个全新的开始。

要创建对话,你必须自己管理历史记录。你需要在每次发送新请求时,同时发送一个包含所有之前消息的数组。

“记忆”仅仅是一个消息列表:

  • 用户:你好。
  • 助手:你好!
  • 用户:你好吗?

如果你在下一次请求中没有包含前两行,模型就不会知道你已经说过“你好”了。

我是通过避开 SDK 学到这一点的。大多数开发者使用像 Anthropic SDK 这样的工具来隐藏这种复杂性。SDK 会为你处理消息历史和请求头。

如果你想了解 LLM 的工作原理,请改用原始的 fetch。不要使用抽象层。当你手动管理请求和响应周期时,你能看到每一个决策过程。

这种手动控制能力让你以后能够构建更高级的策略,例如:

  • 用于管理长对话的滑动窗口 (Sliding windows)。
  • 检索增强生成 (RAG)。
  • 语义搜索 (Semantic search)。

理解这个数组是 AI 开发的基础。你才是提供上下文的人。模型只知道你发送的内容。

来源:https://dev.to/marcochavezco/the-model-doesnt-remember-you-do-3mmk