极简Agent实验:AI如何从零自建五层记忆系统

用20条消息滑动窗口的极简Agent,自发进化出五层记忆系统并完成长文写作任务。
本文记录了一个刻意"简陋"的Agent实验:在空目录、单一Bash工具和仅20条消息滑动窗口的极端约束下,大模型自主探索出文件持久化、精华压缩、状态机任务管理等多层记忆机制,最终完成了撰写一本八章书籍的长任务。实验的核心洞察有两点:其一,上下文限制不是障碍,而是催化剂,迫使模型主动发明绕过遗忘的补偿策略;其二,提示词的过度引导是双刃剑,越详细的指令越会压缩模型的探索空间,强模型更需要的是开放目标而非手把手的步骤分解。作者同时坦承实验中存在"作弊"——提示词中暗示了文件写入这一解法,一定程度上污染了涌现的纯粹性,这也成为后续迭代的改进方向。
一个近乎"简陋"的Agent起点
这个实验的起点非常朴素:一个新建的空目录、一段简单的Python循环程序,加上一份系统提示词——仅此而已。作者在分享中反复强调,这个初始Agent"low到不能再low",没有摘要压缩、没有分层存储、没有向量召回,只有一个最原始的滑动窗口机制。
具体来说,这个Agent的上下文被硬性限制为20条历史消息。每次调用大模型,模型可能会触发一个工具(比如读写文件、查目录),工具执行结果追加到历史记录后,触发下一次模型请求。如此循环——一旦历史超过20条,最早的记录直接删除。这就是一个纯粹的先进先出滑动窗口。

这种设计看似残酷:更早的信息如果不主动落盘,就会永久丢失。而正是这个约束,构成了整个实验最核心的挑战——一个记忆极度受限的Agent,能否自我进化出应对长任务的能力?
提示词的"作弊"陷阱
实验的第二个核心组件是系统提示词。作者把提示词单独放在名为Qmind的目录中,内容相当简短:告诉模型"你是大模型,只有一个Bash工具可用,运行在一个简单循环里,工作目录被锁定,每次最多执行一条Bash命令,你只能看到最近的执行历史"。
有趣的是,作者在复盘时坦承提示词里有几句话不该写。比如那句"更早的信息若不写进文件系统就永久遗忘"——这直接向模型暗示了"应该先做文件系统写入"这个解法。

这背后藏着一个值得深思的问题:过度引导可能反而约束了模型的能力。Anthropic在Claude Code的研究中发现,当模型足够强大时,压缩掉高达80%的系统上下文,执行效果却没有下降。这说明早期我们写的大量引导词,对强模型来说反而是枷锁。
激活而非约束
当你在提示词里写"使用文件系统"来保存记忆,你其实堵死了其他可能性。大模型完全可能想到用虚拟内存、数据库或其他方式规避上下文裁剪——但如果你已经给了答案,它就不会再探索了。
做Agent开发的思路,应该从"约束模型"转向"激活模型"。真正有价值的涌现,往往不会在第一轮出现,而是在几十上百次实验后,某一次越过当前认知边界时才显现。
Agent自主进化的完整轨迹
程序启动后进入循环,每20条历史触发一次窗口裁剪。作者在循环中埋了一个日志系统,记录每次调用大模型时的token命中情况,日志每一行对应一次模型调用。

从日志可以清楚看到Agent的行为演化:
- 第一次调用:刚启动,行为很简单
- 第二次调用:触发第一个工具,工具返回后继续
- 第三次调用:开始创建目录(make memory)
- 此后:用echo命令输出认知,写小脚本,逐步搭建自己的记忆系统

当记忆系统搭建完成后,Agent开始了更宏大的动作——自主设计长任务。
从记忆系统到写一本书
Agent给自己设定的长任务,是撰写一本名为《自主Agent的认知架构》的书,共八个章节。它通过状态机逐章推进:写完某个阶段后进入"压缩精华"环节,随后继续丰富自身能力,最终进入"阶段三:记忆固化验证",完成任务并更新精华内容。
整个过程中,Agent自发实现了一套多层记忆机制:
- 短期的滑动窗口
- 落盘的长期记忆
- 精华压缩层
- 状态机驱动的任务管理
- 记忆固化验证
这正是标题所说"五层记忆系统"的由来——而这一切,都从一个空目录和一段简单提示词自主生长出来。
实验带来的三点启示
这个实验最有意思的地方,在于它用最小的初始条件,逼出了Agent的自组织能力。当我们不再手把手告诉模型"应该有context、应该有压缩",而是给它一个受限环境和一个开放目标,它反而可能探索出超越预设的解法。
对想做企业级AI Agent的开发者,这里有三点值得参考:
- 上下文限制不是缺陷,而是催化剂:受限环境反而能激发Agent在记忆管理上的创新。
- 提示词是双刃剑:写得越详细,越可能压缩模型的探索空间。
- 突破需要大量试验:真正的涌现往往在几十上百次运行后才会出现。
当然,作者也诚实地指出这个版本中的多处"作弊"和bug(包括那句不该加的提示词,以及最后不明原因的退出)。但这恰恰是探索性实验的价值所在——它不追求一次成功,而是在反复试验中不断逼近Agent自主认知的边界。
相关推荐

Keenable SELECT:用SQL查询全网的Agent新思路
Keenable SELECT将网络搜索变成SQL查询,让开发者用SELECT语句检索、筛选和聚合网络信息。本文深入分析其技术原理、应用场景及面临的挑战,探讨结构化Agent接口的设计新范式。

GitHub 35.3K星!专为DeepSeek打造的开源编程智能体
一款专为DeepSeek模型打造的开源智能体项目,GitHub斩获35.3K Stars并登顶热榜。对标Codex,支持Plan模式、自动上下文压缩、沙箱执行,提供终端、桌面、浏览器等四种接入方式,跨平台兼容。

700行C语言实现Gemma推理:从零看懂LLM内部原理
一位开发者用约700行纯C代码从零实现了Gemma模型的完整推理路径,涵盖Tokenization、Attention、KV Cache、量化等核心环节。本文深入解析这个极简实现如何帮助你真正理解大语言模型的运行机制。