
現(xiàn)在很多模型的上下文窗口已經(jīng)很大。大到足以塞進長文檔、代碼庫摘要、會議記錄、工具輸出和一大段歷史對話。于是很多人會自然地產(chǎn)生一個判斷既然窗口夠大就不用太管理上下文了。這個判斷很危險因為長上下文解決的是容量問題不是質(zhì)量問題也不是成本問題。更不是狀態(tài)管理問題。窗口變大以后你確實可以放更多東西。但你仍然要回答哪些內(nèi)容值得長期保留 哪些內(nèi)容應該壓縮 哪些內(nèi)容應該緩存 哪些內(nèi)容應該落盤 哪些內(nèi)容應該忘掉如果這些問題沒解決長上下文只是讓垃圾堆變大。一、長上下文的三個代價1.1 成本。更多 token 意味著更多輸入成本。如果每次請求都重復帶上系統(tǒng)提示、工具說明、項目說明、歷史對話、檢索片段成本會很快變成隱性稅。你可能不是被單次調(diào)用拖垮而是被每一步重復攜帶的上下文拖垮。1.2 延遲。上下文越長模型處理越慢。尤其是多步 Agent。一次慢一點不明顯。循環(huán)多步以后延遲會被放大。1.3 注意力。長上下文不等于模型會同等重視每一段信息。無關(guān)內(nèi)容越多關(guān)鍵狀態(tài)越容易被淹沒。這不是模型“忘了”。是你把工作臺堆滿了。真正成熟的上下文系統(tǒng)不是盡可能多塞。而是讓每一步上下文保持可讀、可控、可恢復。二、Compaction 不是摘要很多人一聽壓縮就想到摘要。把長歷史總結(jié)成短文字。這只是最低層的做法。Agent 的 context compaction 不是文學摘要它要保留任務狀態(tài)。一個好的 compaction 至少要保留當前目標 用戶約束 已完成動作 關(guān)鍵事實 決策理由 已調(diào)用工具 產(chǎn)生的副作用 未解決問題 下一步計劃 驗證結(jié)果注意這里有幾個詞決策理由、副作用、未解決問題、驗證結(jié)果。這些比“剛才聊了什么”更重要。因為 Agent 不是在寫會議紀要。它是在恢復執(zhí)行狀態(tài)。如果壓縮只保留結(jié)論不保留為什么做這個結(jié)論后續(xù) Agent 很容易重復走彎路如果壓縮丟掉副作用后續(xù) Agent 可能重復執(zhí)行危險動作如果壓縮丟掉 open issues任務會看起來完成實際還有洞。三、Prompt Caching 解決的是重復成本Prompt caching 經(jīng)常被誤解成提升模型質(zhì)量的技巧。它不是。它主要解決重復上下文的成本和延遲。適合緩存的內(nèi)容通常有這些系統(tǒng)提示 工具定義 項目規(guī)則 代碼庫摘要 長文檔 產(chǎn)品手冊 穩(wěn)定 policy 少變化的 examples這些內(nèi)容在很多請求里重復出現(xiàn)。如果每一步都重新付全價就很浪費。但緩存也有邊界。它適合穩(wěn)定前綴。不適合頻繁變化的任務狀態(tài)。比如當前進度 最新工具輸出 用戶剛剛修正的約束 待確認問題 執(zhí)行錯誤這些東西不應該為了命中緩存而硬塞進穩(wěn)定前綴。緩存是成本優(yōu)化。不是上下文設計的替代品。更不是把所有東西固定住的理由。四、工具輸出應該落盤Agent 系統(tǒng)里最容易膨脹的上下文往往不是聊天歷史。而是工具輸出。比如測試日志 構(gòu)建日志 grep 結(jié)果 網(wǎng)頁 HTML 數(shù)據(jù)庫查詢 代碼 diff 長 PDF 提取內(nèi)容這些東西直接塞回上下文會導致三個問題貴 慢 污染下一步推理更好的方式是 offloading也就是把原始輸出放到上下文之外。比如artifacts/test-log-20260623.txt artifacts/search-results.json artifacts/page-snapshot.md artifacts/query-result.csv然后只把三類內(nèi)容放回上下文4.1 結(jié)構(gòu)化摘要。比如測試失敗 3 個集中在 auth/session 模塊。 首個失敗是 TokenRefreshTest錯誤為 expired token not refreshed。4.2 關(guān)鍵片段。比如錯誤行、堆棧頂部、相關(guān)文件路徑。4.3 索引引用。告訴 Agent 原始輸出在哪里需要時再讀。這就像人工作時不會把整份日志背下來。你會記錄摘要、錯誤位置和文件路徑。五、遺忘是設計不是事故很多人把 memory 設計成“盡量多記”。這是另一個坑。生產(chǎn)系統(tǒng)需要遺忘機制。因為上下文里有很多東西會過期。比如用戶臨時偏好 過期需求 舊版本 API 已解決 bug 上一次任務的假設 一次性授權(quán) 錯誤的中間結(jié)論如果這些東西不被清理它們會變成污染源。遺忘不是模型能力不足。遺忘是系統(tǒng)能力。一個好的記憶系統(tǒng)應該支持scope這條記憶屬于用戶、項目、任務還是系統(tǒng) ttl什么時候過期 owner誰能修改 source從哪里來 confidence可信度多高 delete能否刪除 audit誰在什么時候用了它尤其是用戶相關(guān)記憶。不能因為模型覺得“這個偏好可能有用”就永久寫入。長期記憶應該是可解釋、可編輯、可刪除的。六、狀態(tài)文件模式長任務 Agent 不能只靠聊天歷史恢復。它需要外部狀態(tài)。我建議至少拆成四類狀態(tài)文件。6.1 progress.md。記錄任務進度當前目標 已完成步驟 正在處理什么 下一步是什么6.2 decisions.md。記錄關(guān)鍵決策選擇了什么方案 為什么這么選 拒絕了什么方案 決策依據(jù)是什么6.3open-issues.md。記錄未解決問題缺少什么信息 哪里需要用戶確認 哪些測試失敗 哪些風險還沒處理6.4 verification.md。記錄驗證狀態(tài)跑過哪些測試 結(jié)果是什么 哪些沒法驗證 為什么沒法驗證這些文件不是為了形式主義。它們有兩個作用。第一讓 Agent 可以恢復。上下文壓縮后下一輪還能知道任務狀態(tài)。第二讓人類可以審計。你不需要翻 200 輪對話才能知道 Agent 為什么這么做。七、一個長任務上下文生命周期可以把長任務 Agent 的上下文設計成一個生命周期Initialize - Load Stable Context - Plan Task - Execute Step - Offload Tool Output - Update State Files - Compact Working Memory - Verify - Continue / Pause / Escalate這里的關(guān)鍵是分層穩(wěn)定上下文比如系統(tǒng)提示、項目規(guī)則、工具定義可以緩存。任務狀態(tài)比如進度、決策、問題要寫入外部文件。工具輸出原始內(nèi)容落盤摘要進入上下文。工作記憶階段性壓縮。驗證結(jié)果單獨記錄。人類輸入標記來源和有效范圍。這樣做之后Agent 不再依賴“聊天記錄還在不在”。它有可恢復的任務狀態(tài)。八、常見反模式8.1 長期把完整歷史塞進上下文。看似保險實際貴、慢、亂。8.2 把 compaction 做成普通摘要。丟掉決策理由和副作用后續(xù)執(zhí)行會失真。8.3 為了緩存命中犧牲上下文正確性。緩存應該服務系統(tǒng)不應該綁架系統(tǒng)。8.4 工具輸出原樣回填。日志和 HTML 最容易污染上下文。8.5 memory 永不過期。長期記憶如果不能更新和刪除就不是資產(chǎn)是風險。8.6 沒有恢復點。Agent 一旦中斷只能重跑或靠模型猜前面發(fā)生了什么。九、實踐 checklist設計長上下文 Agent 前先問這些問題[ ] 哪些上下文是穩(wěn)定前綴可以緩存 [ ] 哪些上下文是任務狀態(tài)必須外部化 [ ] 工具原始輸出是否落盤 [ ] 進入模型的是摘要、關(guān)鍵片段還是整段原文 [ ] compaction 是否保留目標、決策、風險和下一步 [ ] 哪些記憶有 TTL [ ] 用戶記憶是否可編輯、可刪除 [ ] 任務中斷后能否從狀態(tài)文件恢復 [ ] 驗證結(jié)果是否單獨記錄 [ ] 哪些信息應該被主動遺忘這張表決定了長任務 Agent 是可運行還是只是長對話。十、長上下文不是免管理長上下文是一種能力不是一種架構(gòu)。它讓我們可以放更多材料。但生產(chǎn)系統(tǒng)真正需要的是壓縮保留任務狀態(tài) 緩存降低重復成本 落盤外置原始輸出 遺忘避免舊信息污染 恢復讓任務可以繼續(xù)到這里Context Engineering 的第二階段就完整了。第 4 篇我們講每一步該看什么。第 5 篇我們講 RAG 只是取回候選材料真正難的是上下文裝配。第 6 篇我們講長上下文時代仍然需要壓縮、緩存和遺忘。下一篇系列進入第三階段Harness Engineering模型之外的一切。Prompt 和 Context 解決“模型怎么想”。Harness 要解決的是模型如何在真實系統(tǒng)里安全、可控、可驗證地行動。參考資料Effective context engineering for AI agents | Anthropic EngineeringContext engineering for agents | LangChainAnthropic Prompt Caching docsEffective harnesses for long-running agents | Anthropic Engineering參考文獻長上下文時代的壓縮、緩存與遺忘