模型不记得。你记得。
LLM 没有记忆。
我以前认为每个聊天都会存储自己的上下文。我以为模型会自动记住我们之前说过的话。我错了。
Messages API 是无状态的。模型只知道你在当前请求中发送的内容。如果你想要进行对话,你必须每次都将完整的历史记录发送回模型。
你的记忆仅仅是一个消息数组。
当你构建聊天功能时,你需要管理这个数组。它看起来像这样:
• User: 你好,Claude • Assistant: 你好!我能帮你什么吗? • User: 你能描述一下 LLM 吗?
每当你提出一个新问题时,你都需要将新消息追加到该列表中,并将整个列表发送给 API。
我通过避开 SDK 学到了这一点。大多数开发者使用像 Anthropic SDK 这样的工具。这些工具隐藏了复杂性。它们会为你处理重试和请求头。
我选择改用原始的 fetch。这迫使我必须手动管理请求头和请求体。它去除了抽象层。我能清晰地看到数据是如何流动的。
这个概念是其他一切的基础。如果你想构建高级系统,就必须理解这个数组。像 RAG 或滑动窗口(sliding windows)之类的策略,都始于你如何管理这个消息列表。
一旦你掌握了历史记录的管理,就可以进阶到工具使用(tool use)。这允许模型执行任务并选择正确的函数来运行。
控制你的上下文。控制你的模型。
来源:https://dev.to/marcochavezco/the-model-doesnt-remember-you-do-3mmk
可选学习社区:https://t.me/GyaanSetuAi