管理 AI 的情境

透過提供適當的內容,您可以從 VS Code 中的 AI 獲得更相關且準確的回應。在本文中,您將了解如何在聊天中管理內容,包括如何使用 #-mentions 來參照檔案、資料夾與符號,如何參照網路內容,或是如何使用自訂指令來引導 AI 的回應。

若要了解內容是什麼以及 VS Code 如何組裝這些內容,請參閱 內容概念

#-mentions(# 提及)

您可以透過輸入 # 後接您想要提及的內容項目,明確地將內容加入您的提示詞(prompt)中。VS Code 支援多種不同類型的內容項目:檔案、資料夾、程式碼符號、工具、終端機輸出、原始碼控制變更等等。

在聊天輸入框中輸入 # 符號即可查看可用內容項目的列表,或是在聊天視圖中選擇加入內容 (Add Context) 來開啟內容選取器。

Screenshot of VS Code Chat view, showing the chat variable picker.

查看完整的 支援內容項目 列表。

將檔案加入為內容

預設情況下,VS Code 會利用工作區索引(workspace indexing)功能,根據對話自動將相關檔案納入為內容。不過,您也可以使用 #-mentions 或內容選取器,明確地將特定的檔案、資料夾或符號加入為內容。當問題較為模糊,可能被視為一般程式設計問題,但您希望確保 AI 在回應時參考您程式碼庫中的特定部分時,此功能將非常實用。

若要將特定的檔案、資料夾或符號作為內容提供,請使用以下方法將它們加入聊天中:

  • 在聊天訊息中透過輸入 # 後接檔案、資料夾或符號名稱來 #-mention 它們。若要參照符號,請務必先在編輯器中開啟包含該符號的檔案。

  • 從檔案總管、搜尋視圖或編輯器索引標籤將檔案或資料夾拖放至聊天視圖,即可將它們加入為內容。

  • 在聊天視圖中選擇加入內容 (Add Context),然後從快速選取器(Quick Pick)中選擇檔案與資料夾 (Files & Folders)符號 (Symbols)

若要明確告知 AI 您想要使用整個程式碼庫作為內容,可以在提示詞中加入 #codebase

參照網路內容

您可以在聊天提示詞中參照網路內容,例如獲取最新的 API 參考文件或程式碼範例。

您可以直接在提示詞中包含網址(URL)以獲取該網頁的資訊,或是使用 #fetch 工具來指示您想要擷取網路內容。例如:

  • "What are the highlights of the latest VS Code release #fetch"
  • "Update the asp.net app to .net 9 #fetch https://learn.microsoft.com/en-us/aspnet/core/migration/80-90"

為了提升效能,VS Code 會在有限時間內快取網頁內容。如果網頁內容有所變更,您可以透過重新啟動 VS Code 強制重新整理。如果無法存取該頁面,快取將在短時間(約五分鐘)後過期。

為了保護您的隱私與安全,VS Code 在存取外部網址前會要求確認。進一步了解 設定網址自動核准

進一步了解 如何在聊天中加入及使用工具

@-mentions(@ 提及)

聊天參與者(Chat participants)是專門的助理,讓您能在聊天中詢問特定領域的問題。您可以將聊天參與者想像成一位領域專家,您將聊天需求轉交給它,後續工作便由它來處理。

聊天參與者與作為代理流程(agent flow)一部分而被呼叫以執行特定任務的「工具」不同。

您可以透過 @-mention 來呼叫聊天參與者:輸入 @ 後接參與者名稱。VS Code 內建了如 @vscode@terminal 等聊天參與者。它們經過最佳化,能回答各自領域的問題。

以下範例展示如何在聊天提示詞中使用 @-mentions:

  • "@vscode how to enable word wrapping"
  • "@terminal what are the top 5 largest files in the current directory"

在聊天輸入框中輸入 @ 即可查看可用聊天參與者的列表。

擴充功能也能貢獻其專屬的 聊天參與者

視覺功能(預覽)

聊天功能支援視覺能力,這表示您可以附加圖片作為聊天提示詞的內容,並針對該圖片提問。例如,附加一段程式碼的截圖並要求說明,或附加 UI 草圖並要求代理程式實作它。

提示

您可以從網頁瀏覽器將圖片拖放至聊天視圖,將其加入為內容。

加入瀏覽器內容(實驗性)

VS Code 內建 整合式瀏覽器,您可以在 VS Code 內部預覽並與網頁互動,例如針對您的網頁應用程式進行快速測試與除錯。

瀏覽器工具列上有一個加入至聊天 (Add to Chat) 分割按鈕,其動作可讓您將目前頁面的不同類型的內容附加到您的聊天提示詞中:

  • 將元素加入至聊天 (Add Element to Chat):從頁面選取 HTML 元素以加入為內容,包括其 CSS 樣式與截圖。
  • 將截圖加入至聊天 (Add Screenshot to Chat):擷取目前瀏覽器視窗的截圖並以圖片形式附加。
  • 將主控台記錄加入至聊天 (Add Console Logs to Chat):擷取頁面的主控台輸出並附加為內容,對於除錯執行階段錯誤非常實用。

若要將整合式瀏覽器的元素加入至聊天提示詞:

  1. 啟動您的網頁應用程式。

  2. 透過指令面板(Command Palette)執行 Browser: Open Integrated Browser 指令來開啟整合式瀏覽器。

  3. 輸入您想要互動的網頁網址。

  4. 選擇將元素加入至聊天 (Add Element to Chat) 按鈕。現在您可以將滑鼠懸停在網頁元素上並選取它們,即可將其作為內容加入您的聊天提示詞中。

您可以設定加入元素時所包含的資訊:

  • 附加 CSS: chat.sendElementsToChat.attachCSS 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定
  • 附加圖片: chat.sendElementsToChat.attachImages 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定

進一步了解 瀏覽器至聊天動作

與瀏覽器頁面互動

注意

代理程式的瀏覽器工具目前處於實驗階段。

代理程式可以使用內建的瀏覽器工具,直接讀取並與 整合式瀏覽器 中的頁面進行互動。這使代理程式能夠導覽至網址、讀取頁面內容與主控台錯誤、擷取螢幕畫面、點擊元素、輸入文字等,而無需外部 MCP 伺服器。

若要啟用瀏覽器工具,請將 workbench.browser.enableChatTools 在 VS Code 中開啟 在 VS Code Insiders 中開啟 此設定由組織管理。請聯絡您的管理員以進行變更。 設定設為 true

您也可以與代理程式分享您已經開啟的瀏覽器頁面。選擇瀏覽器工具列中的分享給代理程式 (Share with Agent) 按鈕,即可讓代理程式存取您的頁面,包括您現有的工作階段與登入狀態。代理程式也能偵測未分享的索引標籤,並在必要時(例如當您提到代理程式無法看到的頁面時)提示您分享。

例如,您可以請代理程式開啟您的網頁應用程式、檢查版面配置問題,或驗證功能是否正常運作。代理程式會開啟瀏覽器、與頁面互動,並回報其發現的結果。

進一步了解 代理程式的瀏覽器工具

監控內容視窗使用量

聊天輸入框會顯示一個內容視窗控制項,呈現模型內容視窗的使用量。此視覺指標能協助您了解何時可能會發生聊天摘要,或何時應該開始新的工作階段。

Screenshot of VS Code Chat view, showing the context window usage control in the chat input box.

內容視窗控制項提供以下資訊:

  • 視覺填滿指標:陰影列顯示目前內容視窗的使用比例。
  • 總使用量與分類細節:將滑鼠懸停在控制項上,可查看 Token 的確切計數與總可用內容的比例(例如 15K/128K),以及各類別的使用量細節。

當您在對話中發送更多請求時,該控制項會隨之更新以反映增加的內容使用量。總可用內容(分母)會根據您選擇的 AI 模型而改變,因為不同模型擁有不同的內容視窗大小。

提示

當內容視窗填滿時,VS Code 會自動壓縮對話紀錄以釋放空間。

內容壓縮

隨著對話增加,累積的訊息與內容可能會填滿模型的內容視窗。內容壓縮會摘要對話紀錄以釋放空間,讓您可以在不遺失重要細節的情況下繼續在同一工作階段中工作。壓縮也能減少每次後續請求所發送的 Token 數量,有助於管理 AI 點數消耗

自動壓縮

當內容視窗填滿時,VS Code 會透過摘要早期訊息來自動壓縮對話。此過程會在背景透明地進行,因此您可以持續聊天而不會中斷。

若要停用自動壓縮,請將 github.copilot.chat.summarizeAgentConversationHistory.enabled 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設為 false

手動壓縮

您也可以隨時手動觸發壓縮,例如為了重新聚焦對話或減少早期交流中的雜訊。手動壓縮功能適用於本機、背景與 Claude 代理程式工作階段。

若要手動壓縮對話,請使用以下其中一種方法:

  • 在聊天輸入框中輸入 /compact。您可以選擇在指令後加入自訂說明來引導摘要的產生方式,例如 /compact focus on the database schema decisions

  • 選取聊天輸入框中的內容視窗控制項,然後選擇壓縮對話 (Compact Conversation)

如果您想要完全重設內容,請開始一個 新的聊天工作階段

© . This site is unofficial and not affiliated with Microsoft.