Cursor团队最新文章解读丨动态上下文发现,重新定义AI记忆

4 阅读1分钟

Cursor 的核心理念:动态上下文,少即是多

今天,看到Cursor团队一篇文章,挺有用的,简单总结一下,跟大家分享。** 原文地址👉cursor.com/cn/blog/dyn…

随着 AI 模型上下文窗口(Context Window)越来越大,我们似乎养成了一个习惯:恨不得把所有的文档、代码和规则一股脑地塞进 Prompt 里,生怕 AI 漏掉了什么。

但 Cursor 团队的文章中,他们发现了一个反直觉的现象,在构建编程智能体(AI Agent)时,往往“少即是多”。

这就是所谓的“动态上下文发现”(Dynamic Context Discovery)**。

与其一开始就塞给模型一堆它可能用不上的“静态上下文”,不如只给最关键的线索,让 Agent 学会自己去“抓取”需要的信息。而实现这一点的核心载体,竟然是我们最熟悉的“文件”。

Cursor 发现,将文件作为数据交互的接口,不仅能大幅节省 Token,还能因为减少了无关信息的干扰,让 AI 的回答质量变得更高。

这套逻辑听起来很性感,但具体是怎么落地的?Cursor 在以下五个具体的工程场景中,将这一理念发挥到了极致:

1. 告别截断:将冗长的工具返回结果文件化

我们在开发 Agent 时常遇到一个头疼的问题:调用某个工具(比如 Shell 命令或复杂的 API)后,返回了一个巨大的 JSON 或日志。为了不撑爆上下文窗口,传统的做法简单粗暴——截断。但这往往会导致关键报错信息被切掉。

Cursor 的解法是:不直接把结果喂给模型,而是写入一个临时文件。

Agent 获得读取该文件的权限。它先看文件的末尾(类似 tail 命令),如果觉得不够,再自行决定是否读取更多。这样既没有浪费 Token,又保证了数据的完整性,避免了因为上下文超限而被迫进行的无意义对话总结。

2. 拒绝“健忘”:用文件引用替代有损压缩

当对话太长时,大多数系统会触发总结机制,腾出新的窗口空间。但总结本质上是有损压缩,Agent 经常在这个过程中把之前的关键代码细节给忘了。

在动态上下文的逻辑下,聊天记录本身就是一份文件。

当触发总结时,系统会给 Agent 一个指向“历史记录文件”的引用。如果 Agent 发现当前的摘要里缺了点什么,它可以通过搜索这份历史文件,把丢失的记忆找回来。这相当于给 AI 挂载了一个外置硬盘,而不是强迫它死记硬背。

3. 技能按需加载:支持 Agent Skills 开放标准

我们通常会把 Agent 需要遵守的 Rules(规则)和 Skills(技能)写在 System Prompt 里。但随着技能越来越多,Prompt 会变得极其臃肿。

Cursor 选择将每个 Skill 定义为一个独立的文件。

在初始 Prompt 中,只保留技能的名称和简介(静态上下文)。当 Agent 面对特定任务时,它可以使用语义搜索或 grep 工具,动态地从这些技能文件中“拉取”具体的执行细节。

这让 System Prompt 保持了极度的轻量化。

4. 驯服 MCP 工具:高效加载,节省 47% Token

MCP(模型上下文协议)是连接外部数据源的神器,但很多 MCP 服务器自带一大堆工具和冗长的描述,哪怕你根本用不上,它们也占据了宝贵的上下文空间。

Cursor 的策略是:只给 Agent 看工具名字。

详细的工具描述被同步到一个文件夹中。只有当任务真的需要用到某个工具时,Agent 才会去查阅详情。

实测数据显示,这种策略将 MCP 任务的 Token 消耗减少了惊人的 46.9%。更有趣的是,这种机制还允许 Agent 主动感知工具的状态(比如提醒用户某个 MCP 需要重新认证),而不是简单地装傻。

5. 终端即文件:自动同步调试信息

你是不是还在手动复制终端里的报错信息粘贴给 AI 吗?

这已经过时了。

Cursor 将集成终端的所有输出直接同步为本地文件。

当你问“为什么刚才的命令报错了?”,Agent 不需要你粘贴任何东西,它直接用 grep 去搜索那个同步的终端日志文件。对于分析服务器长时间运行后的报错,这种方式极其高效且精准。

写在最后

当大家都在忙着发明各种复杂的向量数据库、RAG 架构或是全新的抽象层时,Cursor 却返璞归真,证明了**“文件”**才是最简单、最强大且最安全的交互基元(Primitive)。

这不仅仅是节省 Token 成本的问题,更是一种工程哲学的转变。

未来的 AI 交互,或许不再是把海量数据“推”给模型,而是构建一个环境,赋予模型足够的能力,让它根据需求自己去“拉”取信息。

这种从 Static 到 Dynamic 的转变,或许正是通往更强 AI Agent 的必经之路。