VS Code 代理中的記憶功能
Visual Studio Code 中的代理 (Agents) 使用記憶功能在對話間保留上下文。代理不會在每次會話開始時從零開始,而是能回憶起您的偏好、應用從先前任務中學到的經驗,並隨著時間推移累積關於您程式碼庫的知識。
若要了解記憶功能如何融入代理架構的背景資訊,請參閱 代理概念 (Agents concepts)。
本文說明如何在 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 Memory)
Copilot 記憶目前處於預覽階段,與上述的本機記憶工具分開。
Copilot 記憶 是一個由 GitHub 託管的記憶系統,讓 Copilot 能夠在工作時學習並保留特定於儲存庫的見解。與本機記憶工具不同,Copilot 記憶可在多個 GitHub Copilot 介面間共用,包括 Copilot 雲端代理、Copilot 程式碼審查 (Code Review) 和 Copilot CLI。
Copilot 記憶的運作方式
當 Copilot 代理在您的儲存庫中工作時,它們會自動擷取稱為「記憶」的緊密範圍見解。這些記憶具有以下特性:
- 儲存庫範圍 (Repository-scoped):記憶與特定儲存庫連結,且只能由具有寫入權限的貢獻者建立。
- 跨代理 (Cross-agent):一個 Copilot 代理所學到的內容可供其他代理使用。例如,Copilot 程式碼審查發現的模式稍後可以指導 Copilot 雲端代理。
- 使用前驗證:代理會在應用記憶之前針對當前程式碼庫進行驗證,防止陳舊或錯誤的資訊影響結果。
- 自動過期:記憶會在 28 天後刪除,以避免資訊過時。
啟用 Copilot 記憶
Copilot 記憶預設為關閉,必須在您的 GitHub 設定中啟用
- 個人使用者 (Copilot Pro 或 Pro+):在 GitHub 的個人 Copilot 設定中啟用 Copilot 記憶。
- 組織與企業:透過組織或企業設定中的原則設定進行啟用。
此外,您需要在 VS Code 中透過 github.copilot.chat.copilotMemory.enabled 設定來啟用 Copilot 記憶整合。
儲存庫擁有者可以在 Repository Settings (儲存庫設定) > Copilot > Memory (記憶) 中審查並刪除已儲存的記憶。
關於詳細的設定說明,請參閱 GitHub 文件中的啟用與維護 Copilot 記憶 (Enabling and curating Copilot Memory)。
記憶工具與 Copilot 記憶比較
| 記憶工具 | Copilot 記憶 (Copilot Memory) | |
|---|---|---|
| 儲存位置 | 本機(在您的機器上) | GitHub 託管(遠端) |
| 範圍 | 使用者、儲存庫、會話 | 僅限儲存庫 |
| 跨 Copilot 介面共用 | 否(僅限 VS Code) | 是(程式設計代理、程式碼審查、CLI) |
| 建立者 | 您或代理在聊天過程中 | Copilot 代理自動建立 |
| 預設啟用 | 是 | 否(需選擇啟用) |
| 過期機制 | 手動管理 | 自動(28 天) |
這兩個系統是互補的。請針對 VS Code 中的個人偏好設定與會話特定上下文使用本機記憶工具。對於造福整個開發工作流程中所有 Copilot 代理的儲存庫知識,請使用 Copilot 記憶。
相關資源
- 與代理進行規劃
- Agent 工具
- 啟用與維護 Copilot 記憶 (GitHub 文件)
- 為 GitHub Copilot 建立代理記憶系統 (GitHub 部落格)