跳到正文

MODULE 03 · STEP 08 · 可練習

上下文與壓縮 ​

本課型別

本課以理解與工作習慣為主。只有當重要資訊已經寫入檔案,且你確實想練習壓縮時,才需要輸入 /compact。

對話變長以後,你可能會看到底部的上下文佔用逐漸升高。上下文可以暫時理解為“模型這一輪能同時參考的內容”。它包括系統指令、專案規則、你的訊息、模型回覆和工具結果。

上下文不是永久記憶,也不等同於磁碟上的工作階段檔案。工作階段可以儲存很久,但模型一次能夠接收的內容有上限。

為什麼需要壓縮 ​

自動壓縮預設啟用:當對話接近模型的上下文限額時,Pi 可以保留較近的訊息,同時把更早的部分整理成摘要。你也可以在互動介面手動輸入:

text
/compact

這條命令輸入在 Pi 底部編輯區,按 Return 後等待壓縮完成。介面回到可以繼續輸入的狀態後,讓 Pi 複述當前目標、已做決定和下一步,再與你的專案檔案核對。不確定時不要連續反覆執行。

壓縮能讓工作繼續,但不可能無損保留所有細節。一段很長的除錯過程,模型後續收到的可能只剩“已排除 A 和 B,下一步檢查 C”以及較近訊息。更早的原始條目仍留在 JSONL 工作階段樹中;壓縮不會恢復或修改磁碟檔案。如果某個精確錯誤、命令輸出或決策原因必須保留,就不要只讓它留在模型後續收到的上下文裡。

把重要結果寫進檔案 ​

處理長任務時,可以讓 Pi 維護三類產物。下面的檔名是本書建議的工作方法,不是 Pi 要求的固定檔案:

  • plan.md 記錄目標、階段和未完成項。
  • decisions.md 記錄做過的選擇及原因。
  • verification.md 記錄檢查方法、實際結果和遺留問題。

這些檔案能被你、Pi 和後續工作階段重新讀取。它們不取代 Git,卻可以防止關鍵決定只存在於某次模型回覆中。

先做一份最小交接 ​

在普通終端機確認自己位於 pi-practice,再建立一個工作記錄目錄:

bash
mkdir -p worklog

回到 Pi 編輯區,把下面這段任務交給 Pi。這裡不要求你真的把工作階段撐到很長;目標是先得到一份可以重新讀取的交接檔案。

text
請在 worklog/handoff.md 建立本任務的交接記錄,只寫五部分:
目標、範圍、已經完成、未解決問題、下一步。
依據當前工作階段填寫;不知道的內容寫“未知”,不要猜測。
寫完後重新讀取檔案,並告訴我它的路徑。

獨立檢查檔案確實存在:

bash
test -f worklog/handoff.md && echo "PASS: 交接檔案存在"

如果沒有出現 PASS,先不要壓縮。回到 Pi 核對寫入路徑;仍找不到時保留當前工作階段,在普通終端機執行 pwd 和 find worklog -maxdepth 1 -type f,確認檔案是不是寫到了別處。

一個長任務的節奏 ​

  1. 開始前寫清目標和驗收標準。
  2. 每完成一個階段,更新產物和待辦。
  3. 除錯進入岔路時,用 /tree 回到正確節點。
  4. 上下文接近上限前,檢查重要資訊是否已經落到檔案。
  5. 壓縮後重新讀取目標、決策和驗收記錄,再繼續。

在真實終端機中核對數量與檢查點記錄

這張實作圖展示的是“把狀態寫出工作階段以後怎樣驗收”:先比較輸入與索引數量,再檢視檢查點中記錄的已完成檔案和失敗項。它能證明進度記錄與磁碟產物可以獨立核對,但不能證明 /compact 已經成功;壓縮是否完成,仍要以 Pi 回到可輸入狀態以及壓縮後的複述核對為準。

想實際練習 /compact 時 ​

只有在 worklog/handoff.md 已存在,而且裡面的目標、範圍和下一步與你的理解一致時,才在 Pi 編輯區輸入:

text
/compact

壓縮完成、Pi 再次等待輸入後,傳送:

text
請先讀取 worklog/handoff.md,再列出當前目標、不能越過的範圍、
已經完成的事情和唯一下一步。若工作階段記憶與檔案衝突,以檔案為核對依據並指出衝突。

壓縮不會撤銷或恢復磁碟檔案。若命令報錯、長時間沒有回到可輸入狀態,停止重複執行,保留錯誤文字和當前 handoff.md;重新啟動並恢復工作階段後,先從檔案重建上下文。

本課驗收 ​

  • worklog/handoff.md 能在普通終端機中確認存在。
  • 檔案寫清目標、範圍、已完成、未知和下一步,沒有用猜測補空白。
  • 你能說清:工作階段用於找回對話,上下文是模型本輪能參考的內容,檔案或 Git 才是可獨立檢查和恢復的產物。
  • 如果做了壓縮,壓縮後複述與交接檔案一致;有衝突時已經明確列出。

配套實驗:真正對照壓縮前後 ​

完成本課的最小交接後,進入 CASE 02 · 壓縮前後對照。它提供固定簡報、磁碟檢查點、壓縮前記錄、壓縮後記憶回答和重新讀取後的恢復記錄,不需要新增課程,也不會把快取數字當成任務品質。

一個容易忽略的區別

工作階段可攜帶性、上下文壓縮和檔案版本管理是三個不同問題。想繼續對話,關心工作階段;想繼續模型當前的思考線索,關心上下文;想恢復檔案,使用 Git 或備份。

推薦繼續閱讀官方授權譯文 Pi 中的壓縮機制 和 無法隨身帶走的工作階段,對照理解壓縮過程與工作階段可移植性。

想把工作階段、提示快取和可調整的上下文連起來思考,可以讀小墨同學的譯文串讀。

本章依據 ​