Short-term Memory
短期记忆通常等于当前会话的对话历史,存活于一次任务期间。
详解
短期记忆就是 Agent 在当前这次对话里能「看见」的全部内容——也就是每次调用 API 时传入的 messages 列表。由于 LLM API 是无状态的,「记忆」实际上是你的代码在内存中维护的一个消息列表:每说一句话就往列表里追加,下一轮调用时把整个列表原封不动地发给模型,模型才能「知道」之前聊了什么。短期记忆的边界就是上下文窗口(context window)的大小——对话一旦超过这个 token 上限,最早的内容要么被截断丢掉(滑动窗口),要么被压缩成摘要(summarization)。短期记忆有两个关键特性:第一,它是易失的,会话结束、进程重启或切换新对话,历史就消失了;第二,随着对话轮次增加,每次请求的 token 数线性增长,成本也跟着涨。理解短期记忆是理解为什么需要长期记忆和各种上下文管理策略的前提。
一个类比
就像你在白板上写会议记录——白板只有这么大,写满了就得擦掉最早的内容才能继续写。会议结束、白板擦干净,记录就没了。要留下来,得有人在会后把要点抄进笔记本(长期记忆)。
举个例子
import anthropic
client = anthropic.Anthropic()
# 短期记忆 = 内存里的 messages 列表,每轮追加后整体发出
history = [] # 这就是短期记忆:存在内存里,进程重启即失
def chat(user_input: str) -> str:
history.append({"role": "user", "content": user_input})
resp = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=256,
messages=history, # 每次把完整历史一起发出
)
reply = resp.content[0].text
history.append({"role": "assistant", "content": reply})
return reply
print(chat("我叫小明,我在学 AI"))
print(chat("我刚才说我叫什么?")) # 模型能答对,因为 history 里有第一轮PYTHON 示例
相关概念
- → Context Window· 上下文窗口
- → Sliding Window· 滑动窗口