当前位置: 首页 > news >正文

Agent 上下文窗口的有限与突破

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

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

问题的核心

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

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

健忘社会:一个类比

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

答案是能,但有前提:

  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 仓库 查看完整的文档。

http://www.jsqmd.com/news/677950/

相关文章:

  • RocketMQ 5.0保姆级安装指南:从零搭建到Dashboard可视化监控(含Docker版)
  • Gerbv:你的开源PCB设计验证助手,让Gerber文件查看变得简单高效
  • RWKV7-1.5B-world部署指南:Triton 3.2.0 CUDA内核编译失败的5种典型原因与修复
  • SAP SALV
  • 性能碾压Po-t-u-t-o-r?这个AI代码补全工具真香!
  • 国内运梁车出租厂家实力排行及地址指南:四川二手航吊,二手起重机,二手龙门吊,公路架桥机,双梁起重机,优选推荐! - 优质品牌商家
  • 别再只盯着CMMI认证了!聊聊CMMI-DEV、SVC、ACQ三个模型到底该怎么选?
  • 用AutoJs脚本一键直达小红书任意页面:从个人主页到商品搜索的完整Scheme清单
  • 四川阻燃电缆厂家排行:成都电力电缆,成都电线电缆,成都绝缘电线,成都耐火电线,成都铜芯电线,实力盘点! - 优质品牌商家
  • 从原理到调参:手把手教你用Python复现Steger算法,搞定显微图像中的纤维中心定位
  • 3步掌握STDF-Viewer:从半导体测试数据混乱到清晰洞察
  • 终极解决方案:如何快速无损转换B站m4s缓存视频为MP4格式
  • Mac学Linux新姿势:VMware Fusion装Ubuntu后,用VS Code远程开发真香了
  • ARM裸机环境下的协作式任务调度实现与优化
  • 拆解一个古董设备,发现了宝藏芯片MB85RC64:聊聊FRAM那些被低估的应用场景
  • 无需烦恼查重!AI写教材工具实测,高效生成教材,轻松搞定学术难题!
  • 2026主管护师机构通过率排名揭秘:行业内部白皮书 - 医考机构品牌测评专家
  • 飞秒激光烧蚀下双温方程热力耦合模型研究及应用分析基于Comsol模拟
  • Hearthstone-Script:基于Java/Kotlin的炉石传说游戏自动化解决方案
  • 从RFC函数到可调用的Web Service:SAP ABAP中SOAMANAGER配置全流程避坑指南
  • 别死记硬背了!用Anki和Obsidian打造你的动态英语错题本(研究生备考利器)
  • 别再乱合并电源了!FPGA驱动DDR3时,VDD、VDDQ、Vref、VTT到底该怎么供?
  • 3步掌握Blender 3MF插件:在3D打印工作流中实现完美格式转换
  • 告别广告!用Ubuntu 22.04从零编译你的专属R2S OpenWrt固件(保姆级避坑指南)
  • 3D Tiles Tools实战指南:从GLB到B3DM的格式转换与批量处理技术
  • 别再死磕Activity了!手把手教你用Java仿写钉钉的卡片式审批流(附开源项目地址)
  • 微信单向好友检测终极指南:3步找出谁删除了你
  • 成都包装设计公司AIGC应用能力实测:AI如何改变食品包装设计效率 - 数字营销分析
  • 考研数学避坑指南:极限拆分的‘三要三不要’,别再被加减法坑了
  • 从Button点击到自定义事件系统:手把手教你玩转UnityEvent与C#委托的混合编程