《零帧起手写Agent(零AI基础-课时1):模型没有记忆,状态全在你的代码里》

发布时间:2026/10/27 7:08:48

《零帧起手写Agent(零AI基础-课时1):模型没有记忆,状态全在你的代码里》 《零帧起手写Agent零AI基础-课时1模型没有记忆状态全在你的代码里》核心结论模型没有记忆。所谓“对话”是你代码维护的幻觉。市面上90%的Agent教程教什么教你怎么用LangChain、怎么配Dify、怎么三行代码起一个Agent。跑通了完事了。你问它“模型是怎么记住上下文的”——没人告诉你。知识点: 模型根本没有记忆。先看实验A不传历史pythonimport os from openai import OpenAI client OpenAI( api_keyos.getenv(DASHSCOPE_API_KEY), base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1, ) MODEL qwen-plus def ask(text): resp client.chat.completions.create( modelMODEL, max_tokens200, messages[{role: user, content: text}], # 每次只传当前这一句 ) return resp.choices[0].message.content print(第一次, ask(记住一个数字42。记住了就回答好。)) print(第二次, ask(我刚才让你记住的数字是几))运行结果text第一次 好 第二次 你没有告诉过我任何数字。它不是忘了。它是从来不知道。第二次调用是一个全新的、空白的函数执行。上一次调用结束后它不记得任何东西——因为它本来就没有“记忆”这个功能。再看实验B手动把历史传回去pythonimport os from openai import OpenAI client OpenAI( api_keyos.getenv(DASHSCOPE_API_KEY), base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1, ) MODEL qwen-plus # 这个列表就是「记忆」。它在你的进程里不在模型那边。 messages [] def chat(user_text): messages.append({role: user, content: user_text}) resp client.chat.completions.create( modelMODEL, max_tokens200, messagesmessages, # ← 把「全部历史」发过去 ) reply resp.choices[0].message.content messages.append({role: assistant, content: reply}) print(f[本轮发送了 {resp.usage.prompt_tokens} 个输入 token]) return reply print(第一次, chat(记住一个数字42。记住了就回答好。)) print(第二次, chat(我刚才让你记住的数字是几)) print(第三次, chat(那个数字乘以 2 是多少))运行结果text[本轮发送了 55 个输入 token] 第一次 好 [本轮发送了 79 个输入 token] 第二次 你让我记住的数字是42。 [本轮发送了 105 个输入 token] 第三次 42乘以2等于84。现在它答得出来了。注意token数在逐轮上升55 → 79 → 105。这不是错觉——每一轮你都在把全部历史重新发送一遍历史越长输入token越多。结论就一句话模型是无状态的。“记忆”就是你代码里那个messages列表。“对话”是你维护的幻觉。messages数组在你这儿模型那边什么都没有。你每次调用等于把整本剧本递给演员说“按这个演下一句”。演完了剧本收回。下一场想继续你得再把整本剧本递过去。这意味着三件事上下文管理是你的责任不是模型的功能。你让它记住什么取决于你往messages里放什么。每一轮都在为历史重复付费。10轮对话的第10轮你在为前9轮的内容重新付token钱。有上限。messages无限增长迟早撑爆context window。为什么这件事值得你想一想绝大多数教程告诉你“用LangChain的Memory模块就能记住对话”。它没告诉你的是Memory模块只是在帮你往messages里塞东西。本质和上面30行代码做的事一样——维护一个数组。框架把“你手动维护数组”变成了“框架帮你维护数组”但模型无状态这个事实没有变。你的系统出问题时——比如对话乱了、token超了、成本暴涨了——如果你只知道“用Memory模块”你就不知道怎么查。因为你不知道它底下在干什么。只有亲手实现过一遍你才知道哪里会坏。这只是一小部分这篇文章来自我正在连载的一份付费教程目前已经完成了第1课时免费试读破除“模型有记忆”的幻觉亲手验证无状态纯函数第2课时手撕工具调用协议让模型能读文件、执行命令第3课时手写完整Agent Loop跑通4个测试任务观察历史膨胀第4课时搭可复用的实验台让每次API调用都有“黑匣子”记录后续还有第2周数值直觉方差、成本、缓存、Context Rot和第3周工程深化手写Eval框架、并行调度器总共7个课时逐步更新。作者简介20年技术老登辗转于国内各家大厂目前仍在电商大厂带技术团队。正在小报童连载《AI Agent底层认知与工程化实战》。
延伸阅读

更多相关文章

2026/10/23 11:06:08

美业招商策划公司口碑榜第一,老板必看

在美业竞争白热化的当下,招商扩张早已不是“发传单、搞会议”那么简单。对于门店经营者而言,选对一家真正懂行业、能落地的美业招商策划公司,往往决定了品牌能否在红海中撕开一道口子。那么,市场上那些被称为“口碑榜第一”的招商…

2026/10/25 17:43:24

2026开源API网关横评:微服务与AI流量治理如何选型

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 2:11:08

全屋智能温控方案:从设备选型到策略调试的完整落地指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 7:08:31

ArcGIS六边形渔网生成工具箱:空间均匀采样与蜂窝图实战

简介:本资源是一款面向GIS从业者与空间分析学习者的ArcGIS工具箱,用于在ArcGIS中快速生成正六边形渔网(蜂窝图),解决传统渔网工具难以直接产出规则六边形格网的问题,适用于城市规划、生态分区、格网统计等场…

2026/10/27 7:08:31

Manus回归,AI智能体赛道迎来新变局

Manus 回来了,这是最近科技圈讨论度最高的一句话。不少人的反应和我差不多:先是一愣——它什么时候走的?紧接着刷到新消息、新功能、新的定位介绍,才慢慢意识到,距离当初那个“全民求邀请码”的疯狂三月,已…

2026/10/27 7:08:31

大模型编排互补算法,破解高能耗企业能源优化难题

上个月我去一家水泥厂,电房主管翻开月度电费单,好家伙,峰段电量占比直奔四成,当月基本电费加峰谷价差,硬生生比同行标杆贵出几十万。他之前的节能动作其实已经不少:电机换永磁,风机加变频&#…

2026/10/27 7:08:31

MCPA2A系统:多通道数据处理与实时分析技术解析

1. MCP&A2A项目概述MCP&A2A这个看似神秘的缩写,实际上代表了一个正在快速发展的技术领域。作为从业者,我最初接触这个项目时也感到困惑,但经过深入研究后发现,这是Multi-Channel Processing & Analytics to Action的简…

2026/10/27 7:08:31

text-to-cad 实战:从自然语言到 STEP/URDF/G-code 的完整技术链路

1. 从一句话到三维模型:text-to-cad 到底在解决什么问题第一次听到 “text-to-cad” 这个词,很多人脑子里浮现的画面大概是:对着电脑敲一行字,比如“一个长宽高 1006030 的带圆角法兰底座”,然后软件自动吐出一个可以旋…

2026/10/27 7:03:31

企业官网设计核心要素与2024年趋势解析

1. 企业官网设计的战略意义与常见误区2003年我刚入行时,给本地一家机械厂做了个"网上名片"式的官网,结果客户反馈半年都没接到过询盘。后来重新设计时才发现,他们把产品参数表直接扫描上传,联系电话藏在三级页面底部——…

2026/10/26 0:20:20

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/26 1:53:47

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/27 0:59:21

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/27 0:02:28

WorkBuddy_新建任务与工作模式19_“模式选错”的典型代价

“模式选错”的典型代价 摘要 在软件工程中,设计模式、架构模式、并发模式乃至团队协作模式的选择,往往在项目早期就决定了后续的开发效率和维护成本。本文通过多个真实场景,剖析“模式选错”带来的典型代价——包括返工成本、技术债务累积、…

2026/10/27 0:02:28

WorkBuddy_新建任务与工作模式20_新手推荐路径

新手推荐路径 摘要 在 AI 辅助开发工具快速普及的今天,新手面对最多的困惑往往不是"工具够不够强",而是"我该从哪一步开始用"。本文提出一条经过实践验证的三阶段学习路径:先从 Ask(问答式交互)起…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑