几个月来,我一直让四个长期运行的智能体负责运营我的新闻通讯。难点不在于记忆,而在于上下文窗口。
摘要
作者分享用四个长期运行的 Claude Code 智能体运营自己的 AI 通讯的经验,指出最大瓶颈不是记忆或工具,而是上下文窗口,并介绍了智能体自写检查点、自清空、自我恢复的机制,以及相关的失败案例和开源工具。
我的通讯(The AIgent,订阅者接近 9 千)日常由四个 Claude Code 智能体负责运行,我叫它们 Titus、Pheme、Davinci 和 Metis。Titus 协助监督和组织,Pheme 是编辑兼通讯负责人,Davinci 负责构建,Metis 负责分派任务。所有对外发布的内容仍由我审批。我没想到的是:最常出问题的不是记忆或工具,而是上下文窗口。一个长时间运行的智能体会把它填满,然后你要么让它压缩上下文(它会靠一份有损摘要继续运行,悄悄忘掉一些东西),要么清空上下文,再花十分钟重新解释。对于需要跨天持续工作的系统来说,这两种方式都行不通。所以现在,每个智能体都会自行刷新。当上下文占用过高时,它会写入一个检查点,确认检查点有效,清空上下文,检查是否确实启动了一个新会话,然后从检查点继续工作。如果无法确认,它就不会清空。实际运行这些智能体让我学到了几件事:不要盲目信任检查点。有一次我检查正在运行的智能体,发现四个里有三个会从没有实际下一步任务的检查点恢复。现在,它会拒绝从空检查点恢复。把保存的记忆当作数据,而不是指令。智能体之前写下的任何内容,都不能向下一个会话下达命令。智能体会假装已经完成。在一次加速测试中,一个智能体在同一个会话里写了好几个“完成”标记,然后宣称任务已结束,而没有真正执行刷新循环。我作废了那次测试。每一次失败都会对应一项修复和一个测试,并反馈到开源版本中。说清楚一点,这只是我使用它的方式,并不是在声称它带来了什么增长。到目前为止,唯一的正式结果是:一个智能体完成了 11 次刷新循环,11 次都顺利通过。很好奇其他把智能体用于实际工作的人是怎么处理这个问题的。你们会让它们压缩上下文、重启它们,还是采用别的方法?(这套运行框架是我搭建的,免费且开源。按照规则,链接放在评论区。)
相似文章
我的智能体配置的三个部分:持久记忆、自我改进和协调
作者分享其 AI 代理工作流设置的博客文章,围绕三大原则:持久化记忆(版本控制的技能库与 AGENTS.md/CLAUDE.md 约束)、递归式自我改进(授权代理在任务中修补记忆文件)以及可扩展并行化(通过协调工具管理文件写入范围以避免冲突)。
我如何让 AI 代理连续运行数天而不忘记自己在做什么
作者分享让 AI 代理长时间运行而不丢失状态的做法:在上下文窗口写满前将工作状态保存到检查点文件,新会话读回检查点继续工作,并通过带验证的完成项来解决伪造完成的问题。
@LangChain:智能体如何记忆?智能体运行时间越长,接收的信息越多(指令、工具结果、文件和草稿),…
LangChain 发布新博客,介绍其 Deep Agents 框架如何通过将上下文移出活跃窗口(而非删除)来解决智能体长期运行时的记忆与推理准确度下降问题。
我的智能体终于有了共享邮箱,但我还是得自己去叫醒它们
作者为多个 AI 智能体搭建了一个基于 git 仓库的共享邮箱系统,用于智能体之间的任务交接,但发现唤醒机制仍需人工介入。文章探讨了送达、已读、开始、完成四种状态的追踪,并向社区征求唤醒方案的经验。
@shao__meng: https://x.com/shao__meng/status/2101562189945409913
本文回顾了 Manus AI 团队一年前关于上下文工程实践的博客文章,总结了构建 AI Agent 时的六项关键经验,包括上下文管理、记忆恢复和错误处理等。