跳到主要內容

AI 302 · 模組 6

Context Compaction 與 Long-Running Agents

Agent 工作越久,Context 越多,如何避免資訊膨脹與錯誤累積?

開始第一節
已完成 0 / 5
同步我的進度加入梯次後,進度可跨裝置保存,講師也能看到

資訊

加入後,你已完成的模組編號會連同「學員代碼」傳送給講師,講師可以看到你的進度。請使用講師提供的代碼,不要輸入姓名、公司機密或其他個資。進度資料與該梯次的其他資料一起保存。

學習目標

  • 說明 Long-Running Agent 中的 Context Growth 與 Context Budget
  • 說明 Context Compaction、Summarization 與建立全新 Working Context,並指出 Compaction 不是什麼
  • 區分 Persistent State 與 Ephemeral State,並列出絕不能丟棄的內容
  • 辨識 Stale Context 與 Context Drift,並說明 Context Refresh 與 Memory Handoff
  • 完成活動 6,並產出 Context Compaction Policy

Context Growth 與 Compaction

10 分鐘

為什麼 Long-Running Agent 會碰到 Context 上限

短任務很容易放進 Agent 的 Context。Long-Running Agent 則不斷往裡面加東西:指示、工具結果、草稿、修正、人的回覆。時間一久,Context 變得昂貴、緩慢、雜訊多,最後甚至放不下。

核心問題

Agent 工作越久,Context 越多,如何避免資訊膨脹與錯誤累積?

關鍵詞彙
詞彙白話意思
Long-Running Agent跨越許多步驟、多個 Session 或數小時工作的 Agent,而不是一次短暫的對話
Context GrowthAgent 必須攜帶的資訊穩定增加
Context Budget考量大小限制、成本與注意力後,Agent 能有效持有的 Context 量
Working ContextAgent 在執行下一步時實際看到的內容
Historical Context已發生事情的完整紀錄,比 Working Context 大得多
模擬範例

一個模擬的研究 Agent 已經跑了很長的 Session。它的 Context 現在有 40 筆工具結果、三份被放棄的草稿,以及人在一開始下達的一項重要指示。那項指示被埋在中間,Agent 開始忽略它。

重點: Context 隨每一步增長。Long-Running Agent 需要刻意的方法,讓 Working Context 保持精簡且相關。

10 分鐘

Context Compaction:它是什麼,又不是什麼

Compaction 是在保留後續步驟所依賴內容的同時,減少 Execution History。它是有選擇的過程,並有清楚的生命週期。

Context Lifecycle
  1. Execution History:到目前為止發生的所有事
  2. Select Important State:決定後續步驟依賴什麼
  3. Summarize / Compact:濃縮成 State Summary
  4. Preserve Evidence:為被摘要的內容保留來源參照
  5. Build Fresh Working Context:組出乾淨的 Context 繼續執行

資訊

圖示的文字版:五個步驟排成一列。Execution History 接到 Select Important State,再到 Summarize / Compact,然後 Preserve Evidence,最後是 Build Fresh Working Context,也就是 Agent 接下來看到的內容。
Compaction 的對照
Compaction 不是Compaction 是
隨機刪除舊資訊保留與決策相關的 State,同時移除不必要的 Execution History
把所有東西平均縮短謹慎選擇要保留、摘要、封存或丟棄什麼
失去軌跡保留參照,讓細節之後可以再取回
自我檢測

下列哪個說法最能描述 Context Compaction?

下列哪個說法最能描述 Context Compaction?

重點: Compaction 是有選擇的:保留決策所依賴的內容、縮短其餘部分,並保留證據參照。

該保留什麼、該刷新什麼

10 分鐘

Compaction 後必須留下什麼:Persistent State 與 Ephemeral State

壓縮之前,先為 State 分類。Persistent State 在整個執行過程中必須維持正確,且必須撐過 Compaction。Ephemeral State 只在一瞬間有用,結果被記錄後就可以丟棄。

Persistent 與 Ephemeral State
種類意思模擬範例
Persistent為了讓執行保持正確且可追責而需要目標、有效的限制條件、人的決定
Ephemeral只對單一步驟有用,結果記錄後可安全丟棄已摘要過的原始工具回應、被捨棄的草稿
Compaction 後應該留下什麼
項目為什麼不能丟
Goal沒有它,Agent 會偏離方向
Current state下一步取決於執行進行到哪裡
Active constraints丟掉限制,Agent 就可能違反它
Key decisions忘記它們會造成重複或反覆的選擇
Unresolved issues未解決的問題不能悄悄消失
Evidence references主張必須能追溯到來源
Pending actions被遺忘的待辦動作不是沒做,就是做了兩次
Important human instructions人仍然主導,他的指示不能遺失

注意

Compaction 時,絕不可丟掉人的指示、有效的限制條件或安全規則。遺失它們,可能讓 Agent 做出超出人所核准範圍的事。
自我檢測

Compaction 時,遺失下列哪一項最危險?

Compaction 時,遺失下列哪一項最危險?

重點: 保留 Goal、State、限制、決定、未解決問題、證據、待辦動作與人的指示。只丟棄 Ephemeral 的部分。

10 分鐘

Stale Context、Context Drift、Refresh 與 Memory Handoff

舊的 Context 不會一直保持正確。Stale Context 是曾經正確、現在已不正確的資訊。Context Drift 是隨著摘要疊摘要,Agent 逐漸偏離原本目標。兩者都會讓充滿自信的 Agent 出錯。

讓長時間執行保持健康
概念白話意思
Context Refresh依據目標、State 與來源重建 Working Context,而不是信任越來越長的歷史
Memory Handoff把必要的 State 交給新的 Session 或 Agent,讓工作在沒有完整歷史的情況下繼續
Evidence Retention保留主張背後的證據,讓它能被再次檢查
Source References指向資訊來源的指標,讓細節之後可以取回,而不必一直帶著
模擬範例

Compaction 之後,一個模擬 Agent 的摘要寫著「廠商清單已核准」。後來有人移除了其中一家廠商。因為摘要保留了來源參照與時間戳記,最後一步之前的 Refresh 就能發現清單已變動。

資訊

概念的文字版:在規劃好的時間點,不要只是在舊 Context 上繼續累加。請依據目標、目前 State 與來源重建,並檢查關鍵事實是否仍然成立。

資訊

僅為範例,並非必修:LangGraph 這類 Stateful 框架,會把執行 State 與模型看到的訊息分開保存,讓 Refresh 更容易實作。上述概念適用於任何框架。
自我檢測

壓縮很長的歷史時,為什麼要保留來源參照?

壓縮很長的歷史時,為什麼要保留來源參照?

重點: 依據目標、State 與來源刷新 Working Context。保留證據參照,讓摘要可以被檢查。

實作與成果

10 分鐘

活動 6:Compact the Context 與 Context Compaction Policy

選一份模擬的長時間 Execution History,或用你自己 Workflow 設計中的一份。依每個項目該如何處理來分類,讓 Agent 能從乾淨的 Working Context 繼續工作。

  1. 列出歷史
    寫下 Execution History 中的 10 到 15 個項目:指示、工具結果、草稿、決定、未解決問題。
  2. 保留(Keep)
    標出必須留在 Working Context 的項目,例如目標、有效限制與人的指示。
  3. 摘要(Summarize)
    標出要濃縮成 State Summary 的項目,並寫出摘要。
  4. 封存並稍後取回(Archive and retrieve later)
    標出要存放在 Working Context 之外的項目,並附上來源參照,需要時可以取回。
  5. 丟棄(Discard)
    標出可以丟棄的 Ephemeral 項目,並說明為什麼安全。

注意

隱私提醒:請使用模擬或已公開的資訊。請勿輸入公司機密、客戶個人資料或未經授權的敏感資訊。

資訊

成果:Context Compaction Policy。它說明何時 Compact、什麼必須保留、摘要、封存與丟棄、如何保留證據,以及何時刷新 Working Context。請保留,用於你的 Agent Harness & Reliability Canvas。
自我檢測

你的歷史中,有人寫了「只使用已核准的來源」。它該放在哪裡?

你的歷史中,有人寫了「只使用已核准的來源」。它該放在哪裡?

重點: 把歷史分成保留、摘要、封存與丟棄,保護人的指示與限制,並記錄在你的 Context Compaction Policy 中。

接下來做什麼?