訊息平台

AI程式代理「上下文視窗」效率戰:開發者學到關鍵一課

商傳媒|責任編輯/綜合外電報導

AI輔助程式開發工具(俗稱AI程式代理)日益普及,但如何有效率地使用這些工具,仍是開發者面臨的挑戰。軟體工程師傑夫·巴茨(Jeff Butts)透過自身經驗分享,指出將過多「模型上下文協議」(MCP)伺服器載入AI程式代理,會嚴重耗損其上下文視窗(Context Window),進而影響開發效率。

根據巴茨的觀察,當AI程式代理在執行任務前,會將所有已載入的MCP伺服器工具定義預先傾倒至其記憶體中。即便這些工具並非任務所需,也會佔用大量Token(AI處理資訊的基本單位)。例如,巴茨曾嘗試載入包含NotebookLM MCP伺服器、Adobe應用程式、Canva、Notion、Slack、Gmail、GitHub、資料庫伺服器、Vercel、Playwright、Read AI等眾多服務。他發現,在未啟用「Tool Search」功能時,光是172個工具的定義就消耗了多達14.1萬個Token,約佔一個20萬Token上下文視窗的七成,大幅壓縮了AI程式代理可用來處理程式碼和檔案的空間。此外,過多的工具也增加了AI選擇錯誤工具或停滯不前的可能性,尤其當工具名稱相似時。

為了解決此問題,巴茨改採兩種策略提升效率:一是啟用「Tool Search」功能,二是運用「skill」來替代部分MCP伺服器。「Tool Search」功能可以在AI程式代理需要時才載入工具定義,而非預先全部載入。實測顯示,啟用此功能後,172個工具的初始Token消耗降至0。在執行任務時,同樣的工具組只消耗了2.6千個Token,相較於未啟用時的14.1萬個Token,上下文視窗的用量減少了超過50倍。這不僅能節省成本,也能讓AI程式代理更專注於當前任務。

另一個方法是導入「skill」。Skill是一種以Markdown檔案描述程序的資料夾,AI如Claude Code在啟動時只會載入其名稱和簡短描述,完整指令會在需要時才讀取。每個skill在被呼叫前通常僅消耗40到170個Token,對於不需連結外部系統的程序來說,這是一種更具成本效益的選擇。巴茨強調,精簡已連結的MCP伺服器清單,不僅能提高AI程式代理的效率,也是限制對帳戶和資料潛在存取的一項重要安全措施。此外,開發者也可透過設定disabledMcpjsonServers來拒絕特定伺服器,或設定alwaysLoad: true讓特定伺服器免於「Tool Search」的延遲載入。