只看「200K token 情境視窗」這項規格,似乎可以把大多數程式碼庫完整放進去。但實際全部放入後,回應品質反而會大幅下降。
多項研究已確認,模型在較長的情境中可能遺漏中間內容。能夠放入,和能夠善用,是兩回事。
因此有了情境工程這個概念。簡單說,就是把有限的情境視窗視為預算,在每個時刻只保留最有用的資訊。
本文將整理情境為何是一種預算、節省預算的四種策略,以及 CLAUDE.md 等常駐載入檔案的設計準則。
先從重點摘要開始。
- 情境不是越大越好,而是相關性越高越好。
- 策略大致分為四種:選擇性載入、摘要(壓縮)、隔離、外部化(記憶體)。
- 常駐載入檔案(如 CLAUDE.md)只放「永遠成立的事情」,並維持精簡。
- 工具與指示文件也是情境消費者。註冊後卻不使用的工具,就是成本。
為什麼是預算?情境的成本結構
情境視窗會同時產生三種成本。
第一是效能成本。無關內容越多,模型的注意力就越分散。尤其長情境的中間部分較難被取回,這種「lost in the middle」現象已廣為人知。
第二是金錢成本。輸入 token 每次請求都會計費。對話越長,相同內容就會被重複收費。
第三是機會成本。雜物佔據的空間越多,真正需要的程式碼與文件就越沒有容納空間。
情境工程帶來的觀點轉換是:不要問「能放多少」,而要問「這個 token 現在有資格放在這裡嗎?」
策略 1、2:選擇性載入與摘要
選擇性載入(retrieval)是在需要時只取得需要內容的策略。與其讀完 2,000 行檔案,不如只讀相關函式;與其載入整份文件,不如透過搜尋取得相關段落。
Skill 的漸進式載入(平時只顯示一行說明,執行時才載入本文)也是相同原理。
摘要(compaction)會壓縮累積的歷史紀錄。把數十次工具呼叫記錄濃縮成「已修改這些檔案,測試已通過」的一段文字。
這就是程式碼代理人在對話變長時自動執行的壓縮。
請記住,摘要會造成資訊損失。細節可能在折疊過程中消失,因此重要決策最好在摘要前先寫入檔案。
策略 3、4:隔離與外部化
隔離(isolation)是將會干擾情境的工作拆到個別工作階段。讓子代理人進行大規模探索時,檔案傾印會消耗該情境的空間,主工作階段只會收到幾行結論。
這是保護主工作階段預算最可靠的方法。
外部化(memory)使用情境外的儲存空間。工作階段結束後情境會消失,但寫入檔案的內容仍會保留。
將工作狀態記錄為 Markdown,讓下一個工作階段接手,是常見模式。把專案知識累積在 CLAUDE.md 與記憶體檔案中,也屬於這種模式。
| 策略 | 一句話摘要 | 代表案例 |
|---|---|---|
| 選擇性載入 | 只在需要時取得 | 部分讀取、Skill 漸進式載入 |
| 摘要 | 折疊歷史紀錄 | 自動壓縮 |
| 隔離 | 交給其他工作階段 | 子代理人 |
| 外部化 | 寫入檔案 | 記憶體檔案、狀態文件 |
常駐載入檔案的設計準則
CLAUDE.md 等檔案是每個工作階段預算中預先扣除的固定成本。因此,標準必須清楚。
應放入「永遠正確且不可違反的事情」,例如程式碼規範、禁止事項與建置指令。
應移除「偶爾才需要的事情」。特定工作的詳細流程交給 Skill,過去工作的紀錄則移至記憶體檔案。
工具註冊也適用相同邏輯。連接的 MCP(Model Context Protocol)伺服器越多,工具定義就越會以固定成本累積。
十個未使用的伺服器本身就是造成效能下降的因素,值得定期整理。
總結
情境工程歸根究柢就是管理相關性。不是因為視窗變大就全部填滿,而是在每個時刻只把與目前工作相關的內容放到模型的桌面上。
結合「Harness Engineering」篇介紹的執行迴圈與本文的預算管理,就能完成代理人設計的整體藍圖。下一篇將介紹實際組裝這些概念的管線案例。

