动态上下文发现:Cursor的最新思路,优化AI上下文管理
大家好,我是猫头虎!今天来给大家分享一篇有意思的文章,最近Cursor刚刚发布了《Dynamic Context Discovery》这篇文章(原文链接,译文链接)。这篇文章详细讲述了他们如何优化AI模型的上下文管理。虽然它和Manus的Peak曾在访谈中提到的想法很相似,但也给我们带来了一些值得深思的新思路。说起来,AI上下文的管理真是越来越成为技术开发中的核心问题,今天我就带大家一起拆解一下Cursor的这篇文章。
文章目录
- 动态上下文发现:Cursor的最新思路,优化AI上下文管理
- 上下文管理:不仅仅是多塞信息
- 1. 动态上下文发现的五个优化技巧
- 场景一:长输出变成文件
- 场景二:聊天历史变成可查档案
- 场景三:按需加载技能
- 场景四:MCP工具的瘦身术
- 场景五:终端会话也是文件
- 2. 为什么是“文件”
- 3. 个人思考
- 总结
上下文管理:不仅仅是多塞信息
在之前的访谈中,Manus的Peak曾说过:
所以Peak说当他们读到一些模型公司发布的研究博客时,心情是“既开心又无奈”。开心是因为这些博客验证了他们的方向,无奈是因为博客里写的东西,基本都是他们早就在做的。
Cursor的这篇文章实际上间接印证了Peak的这个观点。虽然不能说Cursor抄袭了Manus的技术,但我们能明显看出,无论是Manus还是Cursor,都把上下文管理作为AI模型运行的关键。而管理好上下文的一个核心理念,就是“不要总是把信息塞给AI模型”。
很多人用AI时,总怕AI不知道、记不住,想方设法把整个项目的文档、历史记录、工具说明全塞进模型里。问题是,随着模型越来越聪明,过多的背景信息反而可能帮倒忙。不仅浪费了有限的token,还可能干扰模型的判断。想象一下,你把所有公司文件堆在员工桌子上,虽然你希望他能了解一切,但他可能只需要翻开一两份文件就能完成任务。AI也是如此。
这就是Cursor提出的“动态上下文发现”模式(Dynamic Context Discovery):不急着把信息全部塞给模型,而是让模型根据需要自己去找。
1. 动态上下文发现的五个优化技巧
说到这里,你可能会好奇,具体怎么实现呢?Cursor分享了五个他们实际使用的优化手段,真的都挺巧妙的,跟大家逐个分析一下。
场景一:长输出变成文件
问题:当AI调用外部工具(比如运行shell命令或者调用MCP服务)时,返回的结果可能非常长,比如一大串日志或整个网页的内容。传统做法是截断,只保留一部分信息,但这样可能错失后续需要的关键信息。
Cursor的做法:把长输出写成文件,然后给AI一个读取文件的能力。这样,AI可以根据需要用tail命令先看结尾,若觉得有必要,再往前读。既避免了浪费token,也不丢失信息。
场景二:聊天历史变成可查档案
问题:如果对话历史太长,超过了上下文窗口的限制,通常我们会通过“总结”步骤压缩内容给AI,但这会有信息丢失的风险,导致AI无法记住重要细节。
Cursor的做法:将完整的聊天记录存成文件,AI得到的是摘要,但如果它意识到有遗漏,它可以随时回溯查看原始记录。这就像你给员工发了一份会议纪要,但完整的会议录音也存着——随时可以回头查找。
场景三:按需加载技能
Cursor提出了“Agent Skills”的扩展机制,也就是告诉AI如何处理特定领域任务的说明书。问题是,这些说明书有很多,不需要每次都加载所有。
Cursor的做法:在系统提示里只放技能的“目录”,即技能的名字和简短描述。当AI需要某个技能时,再通过搜索工具把完整的说明拉入。这就像你不需要背下整座图书馆,只需要携带一本索引卡片。
场景四:MCP工具的瘦身术
MCP是让AI连接外部服务的标准协议,问题是,有些MCP服务器提供的工具非常多,且描述非常长,占用上下文窗口的空间非常大。而且很多工具在一次任务中根本用不到。
Cursor的做法:只在提示词里放工具的名字,完整描述保存在文件夹中。当AI需要用某个工具时,它可以去查具体的使用说明。通过A/B测试,这个策略帮助他们减少了46.9%的Token消耗,几乎节省了一半的成本。
场景五:终端会话也是文件
很多AI编程工具都会遇到一个问题——你可能问“我刚才那个命令为什么失败了”,但AI根本不知道你运行过什么命令。你需要手动把终端输出复制粘贴给AI。
Cursor的做法:把集成终端的输出自动同步到本地文件系统。AI可以直接访问终端历史记录,甚至能用grep等工具查找特定内容。这对于那些运行时间很长的服务日志来说,特别实用。
2. 为什么是“文件”
你可能已经注意到,Cursor的这五个优化技巧有一个共同点:它们都是把信息转化成文件。
为什么是文件,而不是其他抽象形式呢?
Cursor的解释是:
我们不确定未来LLM工具的最佳接口是什么,但文件是一个简单且强大的基础单元,比发明一套新抽象要安全得多。
这种思路与Manus的理念非常契合。Peak在Manus的技术博客《AI智能体的上下文工程:构建Manus的经验教训》中提到过,他们把文件系统当作“终极上下文”——无限容量、持久性强,而且AI可以直接操作。一个网页的内容可以从上下文里删掉,但只要URL还在,AI随时能找回来;一个文档的全文可以省略,但只要路径还在,AI随时可以加载。这种“可恢复的压缩”比简单的截断或删除更聪明,也更高效。
3. 个人思考
从Cursor的实践中,我们得到的一个启示是:上下文工程的核心问题,或许不是“怎么塞更多信息”,而是“如何让模型高效地获取需要的信息”。随着AI能力的提升,给模型更多主动权,让它自己去获取和理解信息,已经成为一种趋势。
另一个启示是“简单抽象的力量”。在技术开发中,我们常常迷恋复杂的设计,但像文件这种经过时间检验的简单抽象,往往比复杂的新发明更耐用。
总结一句话,模型足够聪明时,少塞点信息、让它自己去找,效果反而会更好。也许“少即是多”才是AI上下文管理的真谛。
总结
通过Cursor的《动态上下文发现》文章,我们看到了一种更高效、更智能的上下文管理方式。传统的做法往往是尽可能将所有相关信息都塞进模型,但随着AI模型的进步,过多的上下文信息反而可能适得其反。Cursor的五个优化手段,从长输出的文件化到按需加载技能,再到MCP工具的瘦身,都体现了“动态上下文发现”这一思路,即让AI根据需要动态地去寻找相关信息,而不是一开始就全部塞给它。
这种方法不仅有效节省了计算资源,降低了token消耗,还能提高模型的灵活性和判断力。而将文件作为基础单元的设计,也突显了简单抽象的力量,提醒我们在复杂技术设计中,往往最有效的方案是那些经得起时间考验的简单工具。
总的来说,随着AI技术的不断发展,我们正在进入一个“让AI自己去找信息”的时代,如何合理管理上下文、如何让AI在海量信息中快速准确地获取需要的内容,已经成为提升AI系统性能的关键所在。
那今天就聊到这里,大家对Cursor的这些优化策略有什么看法呢?欢迎留言交流!