管理 AI 上下文
透過提供正確的上下文,您可以從 VS Code 中的 AI 獲取更相關、更準確的響應。在本文中,您將學習如何管理聊天中的上下文,包括如何使用 #-提及 來引用檔案、資料夾和符號,如何引用 Web 內容,或者如何使用自定義指令來指導 AI 的響應。
工作區索引
VS Code 使用索引來快速準確地搜尋您的程式碼庫以查詢相關的程式碼片段。此索引可以由 GitHub 維護,也可以儲存在您本地計算機上。
以下工作區索引選項可用
- 遠端索引:如果您的程式碼託管在 GitHub 儲存庫中,您可以構建一個遠端索引來快速搜尋您的程式碼庫,即使對於大型程式碼庫也是如此。
- 本地索引:使用儲存在您本地計算機上的高階語義索引,為您的程式碼庫提供快速準確的搜尋結果。
- 基本索引:如果本地索引不可用,您可以使用針對大型程式碼庫本地最佳化的更簡單的演算法。
詳細瞭解 工作區索引。
隱式上下文
VS Code 會根據您當前的操作自動為聊天提示提供上下文。以下資訊隱式包含在聊天上下文中
- 當前活動編輯器中選定的文字。
- 活動編輯器的檔名或筆記本名稱。
- 如果您使用的是“詢問”或“編輯”,則會自動將活動檔案包含在上下文中。
- 當使用代理時,代理會根據您的提示自主決定是否需要將活動檔案新增到聊天上下文中。

#-提及
您可以透過鍵入 # 後跟要提及的上下文項來顯式地將上下文新增到您的提示中。VS Code 支援不同型別的上下文項:檔案、資料夾、程式碼符號、工具、終端輸出、原始碼管理更改等。
在聊天輸入欄位中鍵入 # 符號以檢視可用上下文項列表,或在“聊天”檢視中選擇新增上下文以開啟上下文選擇器。

檢視 支援的上下文項 的完整列表。
新增檔案作為上下文
要將特定檔案、資料夾或符號作為上下文提供,請使用以下方法將它們新增到聊天中
-
在您的聊天訊息中透過鍵入
#後跟檔案、資料夾或符號的名稱來 #-提及 該檔案、資料夾或符號。要引用符號,請確保首先在編輯器中開啟包含該符號的檔案。 -
將檔案或資料夾從“資源管理器”檢視、“搜尋”檢視或編輯器選項卡拖放到“聊天”檢視中,以將它們新增為上下文。
-
在“聊天”檢視中選擇新增上下文,然後從“快速選擇”中選擇檔案和資料夾或符號。
如果可能,當您附加檔案時,將包含檔案的全部內容。如果內容太大而無法放入上下文視窗,將包含檔案的輪廓,其中包含函式及其描述,但不包含實現。如果輪廓也太大,那麼檔案將不是提示的一部分。
執行程式碼庫搜尋
您可以讓 VS Code 自動查詢程式碼庫中的正確檔案,而不是手動新增單個檔案。當您不知道哪些檔案與您的問題相關時,這可能很有用。
在您的提示中新增 #codebase 或選擇新增上下文 > 工具 > codebase 以啟用工作區的程式碼搜尋。
以下提示示例顯示瞭如何使用程式碼庫搜尋
"解釋 #codebase 中的身份驗證如何工作""資料庫連線字串配置在哪裡? #codebase""為更新地址 #codebase 新增新的 API 路由"
如果您使用 代理,代理將在確定需要額外上下文來回答您的問題時自動使用程式碼庫搜尋。如果您的問題可能被解釋為不同的方式,並且您想確保代理使用程式碼庫搜尋,您仍然可以新增 #codebase。
引用 Web 內容
您可以在聊天提示中引用 Web 內容,例如獲取最新的 API 參考或程式碼示例。
-
#fetch <URL>使用
fetch工具從特定網頁檢索內容。要使用此工具,請鍵入#fetch後跟您要引用的頁面的 URL。fetch工具會在有限的時間內快取網頁的內容以提高效能。如果頁面內容發生更改,您可以嘗試透過重啟 VS Code 來強制重新整理。如果無法訪問該頁面,快取將在短時間內(約五分鐘)過期。VS Code 會在訪問外部 URL 之前提示您進行確認,以保護您的隱私和安全。詳細瞭解 配置 URL 自動批准。
使用
fetch工具的示例提示"VS Code 1.100 的亮點是什麼? #fetch https://vscode.com.tw/updates/v1_100""將 asp.net 應用更新到 .net 9 #fetch https://learn.microsoft.com/en-us/aspnet/core/migration/80-90"
-
#githubRepo <repo name>使用
githubRepo工具在 GitHub 儲存庫中執行程式碼搜尋。鍵入#githubRepo後跟儲存庫名稱。使用
githubRepo工具的示例提示"next.js 中的路由是如何工作的? #githubRepo vercel/next.js""執行程式碼審查以驗證它是否與 #githubRepo microsoft/typescript 一致"
引用工具
在使用代理時,代理會自主決定使用工具來執行特定任務。如果您想在聊天提示中顯式引用工具,您可以使用 #-提及。鍵入 # 後跟工具名稱和可選引數
"總結 #fetch https://vscode.com.tw/updates""路由是如何工作的? #githubRepo vercel/next.js""我有什麼未解決的問題 #github-mcp"(使用 GitHub MCP 伺服器的工具)
如果您透過名稱引用工具集或 MCP 伺服器,則該集或伺服器的所有工具都將可用於代理以處理當前提示。
詳細瞭解 在聊天中新增和使用工具。
@-提及
聊天參與者是專門的助手,可讓您在聊天中提出特定領域的問。將聊天參與者想象成一個領域專家,您將聊天請求交給它,它會處理其餘的。
聊天參與者與 工具 不同,工具是在代理流程中呼叫的,以貢獻和執行特定任務。
您可以透過 @-提及 來呼叫聊天參與者:鍵入 @ 後跟參與者名稱。VS Code 包含多個內建聊天參與者,如 @vscode、@terminal 或 @workspace。它們經過最佳化,可以回答有關其各自領域的問題。
以下示例顯示瞭如何在聊天提示中使用 @-提及
"@vscode 如何啟用自動換行""@terminal 當前目錄中最大的 5 個檔案是什麼"
在聊天輸入欄位中鍵入 @ 以檢視可用聊天參與者列表。
擴充套件也可以貢獻自己的 聊天參與者。
視覺
聊天支援視覺能力,這意味著您可以將影像作為上下文附加到您的聊天提示中並對其提問。例如,附加程式碼塊的截圖並要求解釋它,或者附加 UI 的草圖並要求代理實現它。
您可以將影像從 Web 瀏覽器拖放到“聊天”檢視中,以將其新增為上下文。
新增瀏覽器元素(實驗性)
VS Code 包含一個內建瀏覽器,您可以使用它在 VS Code 中預覽和與網頁進行互動,例如對 Web 應用程式進行快速測試和除錯。
您可以將 Simple Browser 視窗中的元素新增為聊天提示的上下文。當您需要幫助處理網頁的特定部分(例如 HTML 元素、CSS 樣式或 JavaScript 程式碼)時,這很有用。
要將 Simple Browser 的元素新增到您的聊天提示
-
使用 chat.sendElementsToChat.enabled 設定啟用從 Simple Browser 選擇。
-
啟動您的 Web 應用程式。
-
透過從命令面板執行Simple Browser: Show命令開啟 Simple Browser 檢視。
-
選擇開始按鈕以開始從當前頁面選擇元素。
-
將滑鼠懸停在網頁的元素上並單擊即可將它們新增到聊天提示中。
請注意,選定的元素已作為上下文新增到當前聊天提示中。
您可以配置包含在上下文中的資訊
- 附加 CSS - 使用 chat.sendElementsToChat.attachCSS 設定啟用。
- 附加影像 - 使用 chat.sendElementsToChat.attachImages 設定啟用。
此功能也適用於 Live Preview 擴充套件(預釋出版)。