系统提示词和会话消息是分开缓存的吗?
如果你说的是模型 API 的 prompt cache,通常不是“系统提示词一个缓存、会话消息另一个缓存”,而是按整个输入的相同前缀复用。 举个例子,第一次请求是: 系统提示词 S → 用户问题 A 第二次请求是: 系统提示词 S → 用户问题 A → 助手回答 B → 用户问题 C 第二次可以复用前面已经缓存的相同部分,新增内容继续计算。具体命中还受缓存最小长度、保留时间等限制,不是文字相同就一定命中。 因此,系统提示词不变、后面的消息变了,前面的缓存仍可能命中;但系统提示词开头改了,后面即使是完全相同的会话消息,通常也不能独立复用原来的前缀缓存。 实用上就是:稳定的规则、背景放前面,动态内容放后面,尽量只追加历史,不要频繁改写前面的内容。 这是模型计算缓存;你自己把系统提示词和聊天记录分开存数据库,是另一回事。 OpenAI 官方说明: https://developers.openai.com/api/docs/guides/prompt-caching