D3:管理記憶、狀態與執行
D3-O1 實作代理記憶策略
代理每次繼續工作,都需要知道哪些資訊值得帶入脈絡。保存全部聊天看似完整,卻會把已推翻假設、舊版檔案與無關討論一起帶入,增加誤用機會。記憶設計的重點是讓正確資訊在需要時可被找到,並能判斷它是否仍有效。
保存期限與存放位置是不同維度
短期記憶服務當前任務;長期記憶保存跨任務仍有用的知識;外部記憶描述存放方式,例如版本化文件或資料庫。因此外部記憶不必然是長期記憶:一份暫存 checkpoint 也可能只在本次執行期間有效。
| 資訊 | 適合的處理 | 重新驗證時機 |
|---|---|---|
| 專案的 CSV 格式約定 | 放入可追溯的專案文件 | 格式需求或實作契約變更時 |
| 本次已修正哪個案例 | 保存於任務狀態 | 恢復工作或切換版本時 |
| 上次服務回傳的錯誤 | 保留必要診斷摘要 | 不能直接當成目前狀態 |
| 憑證與完整敏感輸出 | 不放入一般記憶 | 由專用管理機制處理 |
Expiry 設定資訊何時需要重新確認,pruning 移除過期或重複內容,reset 則在任務或信任脈絡改變時重新建立工作基準。這些是設計規則,不表示所有代理產品都有同名選項。
GitHub Copilot Memory 是具體產品功能,與一般記憶架構不能混為一談。截至本次核對,官方文件描述 repository facts 會附上程式碼引用,使用時對照目前分支驗證;功能仍標示為 public preview。教材不把產品記憶當成備份、完整執行日誌或必定可用的狀態儲存。
判斷練習: 記憶寫著「匯出測試在舊版執行階段通過」,目前專案已換版本,可以沿用結論嗎?
解析: 可以把它當成查找歷史證據的線索,不能當成現況保證。先讀專案目前的版本設定並重跑相關測試,再記錄新的適用範圍。若原資訊沒有版本與來源,更應降低信任程度。
來源:About GitHub Copilot Memory(GH-DOC-23,2026-09-22 核對)。表格與保存規則為教學設計。
D3-O2 保留狀態並管理脈絡漂移
記憶告訴代理「哪些知識可能有用」,狀態告訴它「這個任務現在在哪裡」。若只保存「匯出修正完成一半」,下一次執行不知道哪些檔案已改、哪些測試已跑,也不知道是否已建立遠端 PR。
能安全恢復的 checkpoint
一份可用的 checkpoint 至少應連結任務目標、目前版本、已完成步驟及其證據、待處理事項與已發生的外部副作用。未提交差異也要有可重建的位置,不能只記 branch 名稱。以下是教學用欄位,不是工具設定格式:
| 欄位 | 匯出案例的內容 |
|---|---|
| 目標與限制 | 修正 CSV 逗號欄位;不改資料庫與部署 |
| 基準與產物 | 基底 commit、目前 commit 或保存的 patch |
| 已驗證 | 逗號案例通過,附指令與結果位置 |
| 未驗證 | 引號與換行案例尚未執行 |
| 副作用 | 已建立遠端 PR,附可查詢的識別 |
| 下一步 | 確認版本未變後執行剩餘測試 |
恢復時先把紀錄與環境對帳,再繼續下一步。checkpoint 說 PR 已建立,應查遠端確認;說測試通過,應核對目前檔案是否仍是受測版本。恢復不等於從頭重做,也不等於照單相信舊紀錄。
脈絡漂移如何發生
代理修正匯出時發現資料模型不一致,可能逐漸轉向「統一整個資料層」。新方向看似有價值,卻可能不再服務原目標。用目標、允許範圍、驗收與待決假設定期比對行動,可以提早發現漂移。必要時保存現況、提出新增範圍並等待決策,而不是把新方向偷偷寫成已核准事項。
判斷練習: checkpoint 指出測試已通過,但目前工作樹有另一位開發者的新修改。可以直接從「開 PR」繼續嗎?
解析: 先確認修改歸屬與對測試的影響。若無法證明目前產物就是受測產物,應補驗;不能覆寫他人的變更以符合舊 checkpoint。這是在恢復可信狀態,不是忽略既有進度。
技能範圍:GH600-SG。Repository instructions(GH-DOC-04)可描述恢復流程,但不能代替實際 checkpoint 與產物保存。
D3-O3 確保跨工具與環境連續性
從 IDE 交接到 CI,或從實作代理交接給審查代理時,共享聊天摘要並不足夠。接手者需要可取得的產物、明確的版本與相同的驗收定義。原環境的暫存路徑、記憶體變數或未推送分支,不會因為被提到就自動出現在另一個環境。
決定哪份資料具有權威
Source of truth 應按資料類型指定:需求由已核准 issue 或規格決定,程式碼由版本化產物決定,執行結果由對應 run 的紀錄決定。不能單純把「時間較新」當成勝出規則;較新的代理摘要也可能誤讀較早的核准決策。
當兩份狀態衝突,先比對任務識別、基底版本、寫入者與證據。例如 A 說「引號測試通過」,B 說「測試未執行」,可能是兩者指向不同 commit,而非其中一方說謊。若仍無法判定,停止依賴該結論的步驟,由指定整合者裁決並留下理由。
跨環境還要重新確認權限與可達資源。本機能讀取內部文件,不代表 CI 身分也應取得相同權限。交接資料應傳遞必要引用與核准邊界,不把原身分的能力一併複製。
判斷練習: 接手代理收到本機絕對路徑與「檢查已通過」,但路徑不存在於它的 runner。應否改為相信摘要?
解析: 先取得可存取且可核對版本的 artifact;拿不到就把對應結果標為未驗證。可以繼續不依賴該證據的工作,但不能把缺失證據改寫成通過。可靠交接的驗收方式,是讓接手者在自己的環境找到相同產物並重現關鍵檢查。
技能範圍:GH600-SG;產品記憶的共享範圍另見 GH-DOC-23,不可將單一產品的共享能力外推至所有工具。