
作者 | Sergio De Simone
譯者 | 張衛濱
Cursor 推出了一種新方法,用于減少發送給大語言模型(LLM)的請求上下文的大小。這種方法名為動態上下文發現(Dynamic Context Discovery),它摒棄了以往在請求開始時就包含大量靜態上下文的做法,轉而讓智能體(agent)按需動態檢索所需信息。這種方式不僅顯著減少了 token 消耗,也避免了將可能令人困惑或無關的細節混入上下文。
為了實現動態上下文發現,Cursor 采用了五種不同的技術。這些技術有一個共同特點,即以文件作為 LLM 工具的主要接口,使內容能夠由智能體動態存儲和獲取,而不是一次性塞滿有限的上下文窗口。
隨著編碼智能體能力的快速提升,文件已成為一種簡單而強大的基礎原語(primitive)。相比引入另一種尚無法完全適應未來需求的抽象層,使用文件是一種更安全、更務實的選擇。
Cursor 使用的第一項技術是將大規模輸出(比如,shell 命令或其他工具的輸出)寫入文件,確保關鍵信息不會因上下文截斷而丟失。隨后,智能體可根據需要使用tail等命令讀取文件末尾的內容。
其次,針對上下文過長時被摘要壓縮而導致信息丟失的問題,Cursor 會將完整的交互歷史保存到文件中,使智能體能在后續需要時檢索缺失的細節。同樣,領域特定的能力 被存放在文件中,智能體可通過 Cursor 內置的語義搜索工具 動態發現相關文件。
對于 MCP 工具(Model Context Protocol 工具),傳統做法是在請求初始階段就加載所有 MCP 服務器提供的工具描述,而 Cursor 修改為僅傳遞工具名稱。當任務實際需要某個工具時,智能體才會動態拉取其完整定義。這一策略大幅降低了 token 總量:
智能體現在只接收少量的靜態上下文(包括工具名稱列表),并在任務需要時主動查詢具體工具。在一項 A/B 測試中,對于調用了 MCP 工具的運行實例,該策略平均減少了 46.9% 的總 token 使用量(結果具有統計顯著性,但方差較大,這取決于所安裝 MCP 服務器的數量)。
![]()
此外,這種方法還帶來一個額外的優勢,那就是智能體可以監控每個 MCP 工具的狀態。例如,比如某個 MCP 服務器需要重新認證,智能體可以及時通知用戶,而不是完全忽略該問題。
最后,所有終端會話的輸出會同步到文件系統。這使得智能體能更輕松地回答用戶關于命令失敗原因的問題。同時,通過將輸出存入文件,智能體可使用 grep 等工具僅提取相關的信息,進一步壓縮上下文規模。
在 X 上,用戶 @glitchy 指出,雖然減少 token 是重要目標,但是尚不清楚這種動態機制是否會增加延遲。@NoBanksNearby 則認為,動態上下文發現“在同時運行多個 MCP 服務器時,對開發效率提升巨大”。@casinokrisa 也對此表示贊同:
token 數量幾乎減少了一半,既降低了成本,又加快了響應速度,尤其是在多服務器場景下。
最后,@anayatkhan09提出了可能的優化方向:
下一步應該是向用戶開放動態上下文策略,讓我們能針對不同代碼倉庫調整優化的激進程度,而不是對所有工具一視同仁。
據 Cursor 官方表示,動態上下文發現功能將在未來幾周內向所有用戶開放。
AI-Powered Code Editor Cursor Introduces Dynamic Context Discovery to Improve Token-Efficiency(https://www.infoq.com/news/2026/01/cursor-dynamic-context-discovery/)
聲明:本文為 InfoQ 翻譯,未經許可禁止轉載。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.