Area 4 · Context 工程
4.1 總原則與三大技術
總原則官方原句:"Find the smallest set of high-signal tokens that maximize the likelihood of your desired outcome." 不是塞多,是訊號密度最高的最小集合。
| 技術 | 定義 | 何時用(選型鑰匙) |
| Compaction / summarization | 對話近上限時高保真摘要 + 重開新 window | 接近 context 上限的第一道手段(first lever) |
| Structured note-taking / scratchpad | agent 定期把關鍵狀態寫進 context 外的檔案(NOTES.md),要用再讀回 | 長任務、有明確里程碑的迭代開發;跨 context/session 持久化 |
| Sub-agent isolation | 專門 subagent 用乾淨 context 聚焦探索,只回 1,000–2,000 token 濃縮摘要 | 平行探索有價值的研究/分析;verbose 探索防污染主對話 |
陷阱:三者互補不互斥,但題目會逼你選「這個場景的第一選擇」——快滿 → compaction;跨 session 長任務 → scratchpad;探索污染 → isolation。verbose 污染的修法是隔離,不是壓縮(/compact 丟 rationale)、不是換便宜 model(輸出照進主 context)、不是少讀(犧牲覆蓋)。
4.2 精確資料保存 — 永不過 lossy 層
- Summarization 對 precise details 本質 lossy:數字、百分比、日期、ID、客戶陳述的期望會被壓成模糊敘述 → 交易性事實抽進 persistent structured block(在 summarize 流程之外、每個 prompt 都帶)
- Sliding window(保留最近 N 輪原文、更舊丟掉/摘要)同理:早期的關鍵約束會滑出窗外 → 關鍵約束 pin 進 structured state,敘事性內容才進窗口
- Selective retention 的判準:精確值(要一字不差)→ 結構化保存;敘事(大意即可)→ 可摘要
- Lost in the middle:長 context 開頭結尾可靠、中段 recall 退化 → 長文件拆段做 targeted extraction,不是換更大 window(塞得下 ≠ 讀得到)
- Tool result 瘦身:40+ 欄位只用 5 個 → 進 context 前 deterministic 裁剪(filter/projection),不是 summarize(壓縮有損)
- Retrieval trigger(「偵測到 as I mentioned 再去查」)不可靠:agent proactive 用錯值時根本不會觸發
4.3 Human Review Routing
- 正解方向永遠是針對性路由,不是均勻隨機抽樣。三個路由依據:① 已校準的 field-level confidence(用 labeled validation set 校準——模型自報信心校準差、不可用)② 文件特徵(新 vendor、低品質掃描)③ 欄位模糊度與影響度(金額/帳號 > 備註)
- Aggregate 指標會騙人:97% 總準確率可能掩蓋特定文件型/vendor 的爛表現 → stratified sampling 分層量測
- Escalation 觸發(客服場景):客戶明確要真人(立即轉、別先自查)/ 政策例外或缺口 / 無法有意義推進——sentiment 與自報信心都是複雜度的不可靠 proxy
- 官方定性原則:"grant agents autonomy in proportion to demonstrated reliability"——先人審全部 → 教 agent 主動浮出該給人看的 → 隨實證漸進放權;hard tradeoffs 永遠留人
- 模型「主動喊停問人」是安全性質、是監督機制的一部分——不要為了 UX 把它壓掉,要調整的是門檻不是存在
4.4 探索策略與跨 Session
陌生 codebase 探索(iterative,不是一次讀完):
Grep 入口(main / route / export)→ Read 入口檔
→ 跟著 import 再 Grep → Read → 逐步建構理解
❌ 反模式:一次把 src/ 全讀進來(浪費 context、堆原文 ≠ 理解)
跨 session 長任務:
發現/決策/待辦 → 寫 scratchpad 檔(NOTES.md / manifest)
→ 新 session 讀回 → 不重跑已完成的探索
❌ prior tool result 已 stale → 別 resume,開新 session 塞結構化 summary
- 長 session 後期 context 退化訊號:開始給「typical pattern」而非早先找到的具體 class → 關鍵發現要早點落檔(scratchpad),別靠對話記憶
- Crash recovery:結構化 state export(manifest:done/pending/decisions)—— 比事後從 log 重建可靠
- /compact 的定位:接近上限或階段邊界用;壓縮前先把精確參照寫進檔案(compaction 可能丟 rationale 與精確值)
討論題(讀書會 session 用)
- compaction / scratchpad / sub-agent isolation——三個場景各給我一個「首選它」的題目訊號詞。
- 「15% 折扣被摘要成『討論過促銷』」——這題的正解為什麼不是「改摘要 prompt 要求保留數字」?lossy 層的本質講一遍。
- Review routing 的三個路由依據是什麼?為什麼「模型自報 confidence」不算?
- 找一個你流程裡「跨 session 的長任務」,把 scratchpad pattern 套上去:manifest 該記什麼、新 session 怎麼接手?
- 「lost in the middle」為什麼不能用更大的 context window 解?「塞得下 ≠ 讀得到」背後的機制是什麼?