这是系列的第 10 篇。整个系列写给零基础、想入行 AI 的朋友每天一篇30 天后你会做出 3 个能写进简历的项目。这篇解决什么问题有位朋友问我的程序聊了七八轮以后越来越慢最后还报错了为什么这个问题问得非常好说明他真的在跑代码而不是复制粘贴交作业。先说结论AI 本身没有记忆。它是“每次都被你重新告知前情”的陌生人只不过告知得非常完整所以显得像记得。Day 6 你已经用 messages 列表让它记住上下文了今天要讲清楚三件事记忆的机制、记忆的代价、以及记忆该怎么管。第三件是很多人做完 demo 就卡住的地方。一、先说透AI 为什么记得大模型的调用是无状态的。每次请求对它来说都是全新的它既不知道你上一句说了什么也不知道你是谁。那它为什么能记住因为你每次都把前面的对话重新发了一遍。看你的 messagesmessages[{role:user,content:我叫小七},{role:assistant,content:你好小七},{role:user,content:我叫什么}# 这一轮发出去时上面两条也一起发了]打个比方AI 是个记忆力为零的天才顾问但你每次进门前都会把之前的会议纪要完整递给他一份。他看完纪要才开口所以显得什么都记得。这个比方记牢后面所有“记忆”相关的技术本质都是“纪要怎么写、留多久”的问题。二、代价记忆是要花钱的既然每次都重发那有个问题就绕不开了对话越长发的东西越多花的钱越多速度越慢。还记得 Day 6 说的 token 吗它按你发过去的内容计费。十轮对话下来你每次发的不只是这一句而是前面所有轮次的累积。于是钱第 10 轮的花费可能是第 1 轮的 10 倍速度内容越长AI 读得越久回复越慢上限每个模型都有上下文窗口超出就直接报错这就是那位读者遇到的报错上下文窗口说白了就是“AI 一次能读多少字”。你现在用的模型一般能读几十万字看起来很多但长对话、长文档场景下很容易撑满。三、管理三种最实用的记忆策略知道了原理和代价管理思路就清晰了只带必要的纪要。策略一滑动窗口只留最近几轮。最简单粗暴只保留最近 N 轮对话更早的直接丢掉MAX_ROUNDS10# 最多记 10 轮defchat(user_input):messages.append({role:user,content:user_input})# 关键只取最后 20 条10 轮问答recentmessages[-MAX_ROUNDS*2:]responseclient.chat.completions.create(modeldeepseek-chat,messagesrecent# 发裁剪后的记录)replyresponse.choices[0].message.content messages.append({role:assistant,content:reply})returnreply注意 messages 本身还是完整的只是发给 AI 时做了裁剪。这样钱和速度都可控代价是很早的信息会忘。适合聊天、客服这类场景。策略二滚动摘要把老对话压缩成一段话。快超长的时候让 AI 把前面的对话总结成一段defsummarize(messages):prompt请把以下对话压缩成不超过 200 字的摘要保留人物、事实和未完成的任务\npromptstr(messages)responseclient.chat.completions.create(modeldeepseek-chat,messages[{role:user,content:prompt}])returnresponse.choices[0].message.content然后把摘要塞进 system 消息里清掉原始记录。相当于把旧纪要浓缩成一页纸信息留住、体积缩小。这是长对话产品的常规做法。策略三外挂记忆需要时再取。把聊天记录或知识存进数据库提问时先检索出相关的几条再放进上下文。这就是第三周要讲的 RAG 的核心思路。这个策略能记住的东西远超对话本身还能跨会话、跨用户。三种策略不是选一个成熟产品通常是混着用最近几轮原文保留再久一点做摘要背景知识走外挂检索。四、别把用户当 AI还有一个新手常犯的错把用户的每一句话都往 messages 里塞包括“你好”“谢谢”这类寒暄。更好的做法是自己判断一下只有包含实质信息的轮次才进记忆。这个小优化能省下不少 token。常见报错排查报错一报错提到 maximum context length、too many tokens。对话记录太长了用策略一裁剪或者用策略二做摘要。别指望模型能无限读。报错二AI 记不住很早说过的信息。正常现象。滑动窗口本来就设计成会忘。重要的长期信息应该在 system 消息里明确写死比如“用户的名字叫小七”而不是指望它从十轮前的对话里翻出来。报错三messages 列表的 role 传错了。合法的 role 主要是 system设定、user用户、assistantAI。顺序建议是 system 在最前之后 user 和 assistant 交替出现。传乱了轻则回答怪异重则报错。报错四程序重启后记忆全没了。因为你把 messages 存在内存变量里程序一关就清空。想跨重启保留得写进文件或数据库这是后面项目会做的事。今天的作业给 chat.py 加上滑动窗口把上限设成 10 轮然后做个小实验聊到第 11 轮时问它第 1 轮说过的信息看它是不是真的忘了。把实验结果贴到评论区。这个实验能让你彻底理解“记忆是被构造出来的”这句话。明天预告Day 11《Function Calling让大模型学会“动手干活”》。今天讲的是让 AI 记住你说的话明天讲的是让 AI 真的能做事查天气、读文件、算数学而不只是用嘴说。这是通往 Agent 的第一道门也是项目三的地基。————————————————*系列目录30天从零开始学AI应用 开发
企业数字化 ERP 产品动态
相关推荐
庆余年邂逅AI:角色扮演与短剧生成技术拆解 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 3:32:59
新手入门必看:书店网站怎么做?3个方案避坑省钱指南 新手入门必看:书店网站怎么做?3个方案避坑省钱指南 找建站公司报价虚高,一套简单书店站要价两三万,功能还没用明白钱先花出去了?这是很多独立书店老板和刚入行做技术的新手最头疼的事。别急着掏钱,先搞清楚 书店网站怎么做… · 2026/9/27 3:32:35
搞懂网站动画用什么做,避开3个坑让建站报价更透明 搞懂网站动画用什么做,避开3个坑让建站报价更透明 找建站公司怕被坑高价?这行水太深,很多老板拿着“网站动画用什么做”去问,销售张口就是“特效定制”,报价直接翻倍。其实, 建站报价… · 2026/9/27 4:19:02
AI 写完简历,投递前先核对这 6 件事 AI 写完简历,投递前先核对这 6 件事
AI 能把零散经历整理成一份像样的简历,但“像样”不等于“可以投递”。它可能把参与写成主导,把推测写成结果,也可能生成流畅却不贴合目标岗位的句子。越是读起来顺的初稿,越值得停… · 2026/9/27 4:19:02
VBA连接SQL Server实战:ADO连接字符串配置与稳定数据加载 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 4:19:02
TIA Portal V18从下载安装到仿真失败排查与Openness进阶 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 4:18:56
性能三问 —— 「快 6 倍」与语言无关 系列:gdev-master(NVIDIA/nouveau 用户态 GPGPU 运行时)从 C/C 到 Rust 的移植工程 上一篇主问题「能」已答完,但留了三个方面问题:①有数据为零的情况;②分析性能提升 6 倍原因;③多次测试验证… · 2026/9/27 4:18:56
电子信息专业嵌入式与芯片方向四年学习路线规划 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 4:18:56
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01