外观
第四课:对话记忆
目标
理解模型为什么能知道“那里”指上一轮提到的杭州。
源码:04-memory.ts
运行:
bash
npm run lesson:04基础记忆
正在绘制流程图…
第一轮:
typescript
let memory: Message[] = [
{ role: "user", content: "我住在杭州" },
];保存第一轮结果并追加新问题:
typescript
memory = [
...firstTurn.messages,
{ role: "user", content: "那里今天天气怎么样?" },
];下一轮把 memory 重新交给模型。
记忆在哪里
课程第二轮创建了新的 DemoModel,仍然能找到杭州。这说明记忆不在模型对象中,而在应用保存并重新提供的消息中。
两种循环
正在绘制流程图…
- Agent 内部循环:一次请求中模型和工具反复交互。
- 多轮对话循环:每轮结束后保存消息,下一轮重新提供。
工程限制
真实项目不一定永远携带全部历史。对话过长后通常会:
- 裁剪无关消息;
- 总结旧对话;
- 保存到数据库;
- 按当前问题检索相关记忆。
本课结论
基础记忆就是程序保存相关历史,并在下一轮调用时重新交给模型。