VS Code 代理程式中的記憶
Visual Studio Code 中的代理程式使用記憶來跨對話保留上下文。代理程式不會在每次工作階段都從頭開始,而是會回想您的偏好設定,應用先前任務的經驗,並隨著時間建立有關您的程式碼庫的知識。
如需記憶如何融入代理程式架構的背景資訊,請參閱 代理程式概念。
本篇文章說明如何使用 VS Code 中的記憶工具、如何管理記憶檔案,以及 Copilot 記憶如何將記憶擴展到您的開發工作流程。
記憶工具
記憶工具目前處於預覽階段。您可以使用 github.copilot.chat.tools.memory.enabled 設定來啟用或停用它。
記憶工具是一個內建的代理程式工具,可讓代理程式在工作時儲存和回想筆記。您也可以明確地要求代理程式記住某些內容。所有資料都儲存在您的本機電腦上。記憶工具預設為啟用。
記憶範圍
每個範圍都有不同的用途,具體取決於資訊應保留多久以及適用的位置。
| 範圍 | 路徑 | 跨工作階段保留 | 跨工作區保留 | 用於 |
|---|---|---|---|---|
| 使用者 (User) | /memories/ |
是 | 是 | 偏好設定、模式、常用指令 |
| 存放庫 (Repository) | /memories/repo/ |
是 | 否 (工作區範圍) | 程式碼庫慣例、專案結構、建置指令 |
| 工作階段 (Session) | /memories/session/ |
否 (對話結束時清除) | 否 | 特定任務的上下文、進行中的計畫 |
使用者記憶
使用者記憶會在所有工作區和對話中保留。前 200 行會在每個工作階段開始時自動載入到代理程式的上下文中。使用者記憶可用於一般的偏好設定,以及不論您正在處理哪個專案都適用的見解。
例如,要求代理程式記住程式碼編寫偏好
Remember that I prefer tabs over spaces and always use single quotes in JavaScript
在稍後的對話中,即使是在不同的工作區,代理程式也會回想起此偏好設定並將其應用於產生的程式碼。
存放庫記憶
存放庫記憶的範圍限定在目前的工作區,並在該工作區的對話中保留。將存放庫記憶用於特定程式碼庫的事實,例如架構決策、命名慣例或建置指令。
例如
Remember that this project uses the repository pattern for data access and all API endpoints require authentication
工作階段記憶
工作階段記憶的範圍限定在目前的對話,並在對話結束時清除。將工作階段記憶用於代理程式在處理多步驟任務時追蹤的臨時工作筆記或特定任務上下文。
Plan 代理程式使用工作階段記憶將其實作計畫保留在 plan.md 檔案中。此計畫在工作階段期間可用,且可以使用 Chat: Show Memory Files (對話:顯示記憶檔案) 指令檢視,但在後續工作階段中不可用。進一步了解 與代理程式一起規劃。
儲存與檢索記憶
若要儲存記憶,請使用自然語言要求代理程式記住某些內容。代理程式會判斷適當的範圍並建立或更新對應的記憶檔案。
Remember that our team uses conventional commits for all commit messages
若要檢索記憶,請在新的對話中詢問。代理程式會檢查其記憶檔案並回想相關資訊。
What are our commit message conventions?
代理程式對話回覆中的記憶檔案參考是可點擊的,因此您可以直接檢視記憶檔案的內容。
管理記憶檔案
VS Code 提供指令來檢視和管理您的記憶檔案
- Chat: Show Memory Files (對話:顯示記憶檔案):開啟跨範圍的所有記憶檔案列表。選擇一個檔案以檢視其內容。
- Chat: Clear All Memory Files (對話:清除所有記憶檔案):移除所有範圍內的所有記憶檔案。
目前尚不支援刪除個別記憶檔案。請使用 Chat: Clear All Memory Files 移除所有記憶,或要求代理程式更新特定的記憶檔案以移除過時的資訊。
Copilot 記憶
Copilot 記憶目前處於預覽階段,且與上述的本機記憶工具是分開的。
Copilot 記憶 是一個由 GitHub 託管的記憶系統,可讓 Copilot 在工作時學習並保留特定存放庫的見解。與本機記憶工具不同,Copilot 記憶在多個 GitHub Copilot 介面中共用,包括 Copilot 編碼代理程式、Copilot 程式碼審閱和 Copilot CLI。
Copilot 記憶運作方式
當 Copilot 代理程式在您的存放庫中工作時,它們會自動擷取稱為「記憶」的緊密範圍見解。這些記憶:
- 存放庫範圍:記憶與特定存放庫繫結,且只能由具有寫入權限的參與者建立。
- 跨代理程式:一個 Copilot 代理程式學習到的內容可供其他代理程式使用。例如,Copilot 程式碼審閱發現的模式稍後可以引導 Copilot 編碼代理程式。
- 使用前驗證:代理程式在套用記憶之前會根據目前的程式碼庫驗證記憶,防止過時或錯誤的資訊影響結果。
- 自動到期:記憶會在 28 天後刪除,以避免資訊過時。
啟用 Copilot 記憶
Copilot 記憶預設為關閉,必須在您的 GitHub 設定中啟用
- 個人使用者 (Copilot Pro 或 Pro+):在 GitHub 上的個人 Copilot 設定中啟用 Copilot 記憶。
- 組織和企業:透過組織或企業設定中的策略設定啟用。
此外,您需要使用 github.copilot.chat.copilotMemory.enabled 設定在 VS Code 中啟用 Copilot 記憶整合。
存放庫擁有者可以在 存放庫設定 (Repository Settings) > Copilot > 記憶 (Memory) 中審閱並刪除儲存的記憶。
如需詳細的設定指示,請參閱 GitHub 文件中的啟用與策劃 Copilot 記憶。
記憶工具 vs. Copilot 記憶
| 記憶工具 | Copilot 記憶 | |
|---|---|---|
| 儲存空間 | 本機 (在您的電腦上) | GitHub 託管 (遠端) |
| 範圍 | 使用者、存放庫、工作階段 | 僅限存放庫 |
| 跨 Copilot 介面共用 | 否 (僅限 VS Code) | 是 (編碼代理程式、程式碼審閱、CLI) |
| 建立者 | 您或對話期間的代理程式 | Copilot 代理程式自動建立 |
| 預設啟用 | 是 | 否 (選擇加入) |
| 到期 | 手動管理 | 自動 (28 天) |
這兩個系統是互補的。將本機記憶工具用於 VS Code 中的個人偏好設定和特定工作階段的上下文。將 Copilot 記憶用於有助於整個開發工作流程中所有 Copilot 代理程式的存放庫知識。
相關資源
- 與代理程式一起規劃
- 代理程式工具
- 啟用與策劃 Copilot 記憶 (GitHub 文件)
- 為 GitHub Copilot 建立代理記憶系統 (GitHub 部落格)