惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
B
Blog
Stack Overflow Blog
Stack Overflow Blog
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
MongoDB | Blog
MongoDB | Blog
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
Recent Announcements
Recent Announcements
U
Unit 42
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
腾讯CDC
D
DataBreaches.Net
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
M
MIT News - Artificial intelligence
P
Proofpoint News Feed
罗磊的独立博客
L
LangChain Blog
V
Visual Studio Blog
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
宝玉的分享
宝玉的分享

博客园_首页

Linux实操--组管理、权限管理和定时任务 Java + EasyExcel 实现单个接口导出多个Excel Mem0 源码解析系列(二):提示词工程的深度剖析 Openclaw TaskFlow究竟是什么?和普通Skill技能有什么区别 博文阅读密码验证 - 博客园 嘉立创开源:应该是全网MicroPython教程最多的开发板 Hermes Agent 集成实践:从协议到生产 2026年AI编程工具横评:Cursor、Codex、Claude Code、Zed、Windsurf Java程序员必看的RAG入门教程 2026 AI效率神器:Superpowers + Claude Code 保姆级教程 本地大模型部署全攻略:从 0 到 1 玩转 Ollama 【从0到1构建一个ClaudeAgent】内存管理-上下文压缩 .NET 高级开发 | 设计、实现一个事件总线框架 电子小白入门之NE555 3. WorkBuddy:隐藏玩法,一键召唤专家,让 AI 以"专家身份"给你干活 和AI一起搞事情#3:Claude Teammate 游戏开发翻车实录 【OpenClaw】通过 Nanobot 源码学习架构---(7)Memory C# .NET 周刊|2026年3月3期 我在 Debian 11 上把 K8s 单机搭起来了,过程没你想的那么顺(/opt 目录版) 深度学习进阶(七)Data-efficient Image Transformer CLI+Skill搭建浏览器AI自动化框架,告别一切重复枯燥任务 告别Token账单无底洞:OpenClaw本地部署,重塑企业数据主权的唯一解 FastAPI+Vue:文件分片上传+秒传+断点续传,这坑我帮你踩平了! SBTI 爆火后,我做了个程序员版的 CBTI。。已开源 + 附开发过程 多模态检索开始进入工程期:用 Sentence Transformers 搭建可落地的 Multimodal RAG 100多行代码实现一个最简单的Agent(用ReAct) Claude Code 通关手册(八):推荐 5 个 Hooks,代码质量提升 3 倍 老板:“有人截图了!”。安全部门:“收到,马上查暗水印!” - why技术 技术之外,皆是人间 C#/.NET/.NET Core技术前沿周刊 | 第 69 期(2026年4.01-4.12)
Agent 上下文窗口的有限与突破
sha0dow · 2026-04-21 · via 博客园_首页

大语言模型驱动的智能体有一个绕不开的限制:上下文窗口容量固定。一旦对话历史超过窗口上限,最早的内容就会被丢弃。这相当于要求一个程序员在维护大型项目时,只能记住最近几分钟看过的代码——其他一切都要靠翻笔记。

问题是,笔记怎么记?记在哪里?怎么才能保证翻笔记的时候不翻错?

问题的核心

这不是一个“把窗口做大一点”就能彻底解决的问题。窗口再大,也赶不上项目历史的积累。真正的挑战在于:当短期记忆注定失效时,我们需要一套什么样的外部系统来充当长期记忆?

我整理了一个笔记仓库,里面有几个相关设想,不做具体实现方案,只讨论可能的方向。

健忘社会:一个类比

假设一个社会里,每个人都患有严重健忘症,只能同时记住三到五件事。执行几个动作之后,之前的记忆全部清零。这样的社会还能不能完成复杂工程?

答案是能,但有前提:

  1. 外部化:所有中间状态必须写到外部便签上,不能依赖人脑。
  2. 原子化:每一步任务所需的记忆量不能超过上限。
  3. 提示机制:人脑清空后,必须靠外部线索(便签的位置、信号灯)知道下一步该做什么。

当个体记忆小到只剩两个槽位时,单干连稍复杂一点的任务都处理不了,必须两人协作,通过共享便签来模拟更强的计算能力。但协作人数超过某个临界点后,沟通开销反而拖累效率。

Agent 的上下文窗口,就是那个健忘个体的记忆槽。我们需要为它设计一套好用的外部便签系统。

几个方向上的设想

以下内容不是成熟方案,而是方向性的设计草图。大部分工程细节需要由 Agent 运行时的系统层处理,而非让模型在提示词里自己折腾。

Issue 树:给每条消息一个地址

像 Git 用 SHA-1 给每次提交一个唯一标识一样,我们能不能给对话历史里的每条消息一个路径式的地址?比如 /0/1/2。配合每条消息的类型标记(是提问、是陈述、还是无意义内容),Agent 就能像访问文件系统一样精确回溯任何一条历史消息,而不是靠语义搜索去猜。

平方根边界:一种自检指标

通过一个简单的类比推导,可以得到一个启发式边界:如果把 N 个 token 的上下文压缩成 k 个 token,当 (k \le \sqrt{N}) 时,信息损失几乎必然发生。同理,如果解决一个问题明明只需 k 个 token 的核心信息,实际却消耗了超过 (k^2) 个 token 的上下文,就说明对话中存在结构性冗余。

这两个数字不是精确定理,但可以作为 Agent 判断当前上下文是否健康的简单信号。

惰性工具调用:占位符代替输出

工具调用产生的输出常常冗长且充满噪音,直接塞回对话历史既浪费 token 又分散注意力。设想一种机制:工具执行后只返回一个占位符(如 @lazy{{...}}),系统后台维护占位符与真实输出的映射。Agent 知道有这么个结果,但不需要把整份结果背在身上,需要时再去取。

脚本库:让每次操作留下资产

Agent 经常执行相似的 Shell 命令序列,出错后重试,重试后再忘。与其每次动态拼命令,不如让 Agent 把稳定下来的操作固化成脚本文件,存放在按目标分类的目录里(比如 git/commit/auto-sign.exp.sh)。脚本文件名本身就是提示词。随着时间的推移,这些脚本积累成 Agent 的操作经验库。

人类到底特殊在哪?

工具、语言、文字,动物都有雏形。但动物没有“记录与读取”的外部循环。一只猩猩发明了更好的取食技巧,如果没来得及教给同伴就死了,这个技巧就从地球上永远消失。人类把知识刻在骨头、泥板、纸张和磁盘上,让任何个体的偶然发明都能变成整个种群的永久资产。每一次存储介质的成本骤降,都会带来一轮技术爆发。

对于上下文有限的 Agent,我们需要为它补上的,正是这一层外部记录与读取系统。


以上想法仍在设想阶段,没有实验数据支撑,仅作为一份公开的设计笔记。如果你对这类话题有兴趣,欢迎访问 GitHub 仓库 查看完整的文档。