現已釋出!閱讀關於 11 月新增功能和修復的內容。

管理聊天會話

Visual Studio Code 中的聊天功能提供與 AI 進行基於聊天的互動。在探索不同主題或任務時,可以建立多個聊天會話,並將每個會話限定在特定上下文中。VS Code 提供了多種建立和管理聊天會話的方式:在聊天檢視中、作為編輯器選項卡,或在單獨的視窗中。

本文介紹如何建立和管理聊天會話,以及如何使用聊天會話歷史記錄繼續之前的對話。

建立新的聊天會話

聊天會話是指在一次對話中與 AI 互動的歷史記錄,包括該對話中使用的所有提示、響應和上下文。此歷史記錄為後續提示提供了上下文,允許您提出後續問題或細化您的請求。

根據您的工作流程,選擇在聊天檢視、編輯器選項卡或單獨的視窗中建立新的聊天會話。

建立新聊天會話時,會清除對話歷史記錄和上下文。當您想更改主題或避免沿用先前請求的上下文時,請開始新的聊天會話。例如,在從除錯特定問題切換到詢問有關技術概念的通用問題時,開始一個新的會話。

您可以透過聊天會話歷史記錄隨時返回到之前的聊天會話。

在聊天檢視中開啟聊天會話

預設情況下,聊天檢視位於 VS Code 的輔助側邊欄中。當您希望在側邊保留聊天體驗,同時仍然可以使用主側邊欄進行其他檢視(如資源管理器或原始碼管理)時,這非常有用。

開始新的聊天會話並清除對話歷史記錄

  • 開啟聊天檢視,然後選擇 新建聊天 (+) 或按 ⌘N (Windows、Linux Ctrl+N)

  • 使用命令面板中的 Chat: New Chat 命令

在編輯器選項卡中開啟聊天

您可以將聊天會話作為編輯器選項卡開啟,以便在程式碼檔案旁邊擁有聊天體驗。當您想同時開啟多個聊天會話,或者想將聊天會話與程式碼檔案並排放置時,這非常有用。

直接在編輯器選項卡中開啟新的聊天會話

  • 開啟聊天檢視,然後選擇 新建聊天 (+) > 新建聊天編輯器

  • 使用命令面板中的 Chat: New Chat Editor 命令

在編輯器選項卡中開啟現有的聊天會話

  • 選擇聊天檢視右上角的 ... 圖示,然後選擇 在編輯器中開啟聊天

  • 使用命令面板中的 Chat: Open Chat in Editor 命令

在單獨的視窗中開啟聊天

您可以將聊天會話開啟到一個單獨的、浮動視窗中。這對於多顯示器設定很有用,或者當您想在主視窗中處理程式碼時保持聊天會話可見。要使聊天檢視保持在其他視窗之上,請啟用“始終置頂”模式。

您可以從聊天檢視中在新視窗中開啟現有的聊天會話,或者直接在新視窗中建立新的聊天會話。

直接在新視窗中開啟新的聊天會話

  • 開啟聊天檢視,然後選擇 新建聊天 (+) > 新建聊天視窗

  • 使用命令面板中的 Chat: New Chat Window 命令

在單獨的視窗中開啟現有的聊天會話

  • 選擇聊天檢視右上角的 ... 圖示,然後選擇 在新視窗中開啟聊天

  • 使用命令面板中的 Chat: Open Chat in New Window 命令

聊天會話歷史記錄

建立新聊天會話時,將清除之前的對話歷史記錄。但是,所有聊天會話都會儲存在會話歷史記錄中,讓您可以返回到之前的對話並繼續上次的進度。當您想檢視過去的互動、引用之前的響應或恢復早期會話的對話時,這非常有用。

預設情況下,當您開始新的聊天會話時,聊天檢視會顯示您最近的會話,無論是本地執行的、在後臺執行的還是在雲端執行的。選擇 顯示所有會話 以檢視完整的會話歷史記錄,允許您搜尋和篩選列表。列表範圍限於您當前的工作區。如果您沒有開啟工作區,列表將顯示所有工作區中的所有會話。

提示

將聊天檢視變寬以自動切換到並排模式,或使用聊天檢視右上角的切換按鈕。

Screenshot of an agent session in VS Code showing code changes and chat interaction.

當您從列表中選擇一個會話以開啟之前的聊天會話時,該會話中的所有提示、響應和上下文都會在聊天檢視中恢復。

詳細瞭解代理和檢視和管理代理會話

儲存和匯出聊天會話

您可以儲存聊天會話以保留重要的對話,或稍後重複使用它們來完成相似的任務。

將聊天會話匯出為 JSON 檔案

您可以匯出聊天會話以供以後參考或與他人共享。匯出聊天會話會建立一個包含會話中所有提示和響應的 JSON 檔案。

匯出聊天會話

  1. 在聊天檢視中開啟您想匯出的聊天會話。

  2. 從命令面板(⇧⌘P (Windows、Linux Ctrl+Shift+P))執行 Chat: Export Chat... 命令。

  3. 選擇一個位置儲存 JSON 檔案。

或者,您可以透過右鍵單擊訊息並選擇 複製 來將單個提示或響應複製到剪貼簿。要以 Markdown 格式複製整個聊天會話,請右鍵單擊聊天檢視並選擇 全部複製

將聊天會話儲存為可重用提示

您可以將聊天會話儲存為可重用提示,以供相似的任務重複使用。

將聊天會話儲存為可重用提示

  1. 在聊天檢視中開啟您想儲存的聊天會話。

  2. 在聊天輸入框中鍵入 /savePrompt 並按 Enter

    該命令會建立一個 .prompt.md 檔案,將您當前的聊天對話概括為可重用提示。提示檔案會在適當的地方包含佔位符。

  3. 根據需要審閱和編輯生成的提示檔案,然後將其儲存到您的工作區。

上下文隔離的子代理

子代理使您能夠在聊天會話中將任務委派給一個隔離的、自主的代理。子代理獨立於主聊天會話執行,並擁有自己的上下文視窗。這對於最佳化複雜的多步任務(如研究或分析)的上下文管理非常有用。

子代理不會非同步或在後臺執行,但是,它們會自主執行,無需使用者反饋。當子代理完成其任務時,它只會將最終結果返回給主聊天會話,從而使主上下文視窗專注於主要對話。

子代理使用相同的代理,並可以訪問主聊天會話可用的相同工具,但不能建立其他子代理。它們還使用與主聊天會話相同的 AI 模型。

呼叫子代理

在提示中呼叫子代理

  1. 在工具選擇器中啟用 runSubagent 工具

    如果您使用自定義提示檔案自定義代理,請確保在 tools frontmatter 屬性中指定 runSubagent

  2. 在聊天提示中,要求使用子代理執行任務。

    以下示例說明了如何呼叫子代理

    • 使用子代理研究 Web 應用程式的最佳身份驗證方法。總結髮現。
    • 執行 #runSubagent 使用只讀工具全面研究使用者的任務。當您有 80% 的信心獲得足夠的上下文來起草計劃時,停止研究。返回此上下文。

使用自定義代理和子代理(實驗性)

預設情況下,子代理繼承主聊天會話的代理。您可以將子代理配置為使用不同的內建或自定義代理。例如,如果您想作為開發任務的一部分執行研究任務,您可以在使用研究代理的子代理中啟動該研究任務。

使用特定代理執行子代理

  1. 透過 chat.customAgentInSubagent.enabled 設定啟用對子代理中自定義代理的支援

  2. 確保自定義代理的 infer 屬性未設定為 false,因為這會阻止代理在子代理中使用。

  3. 提示 AI 有哪些可作為子代理使用的代理。您的自定義代理應列出。

    Which subagents can you use?
    
  4. 提示 AI 使用自定義或內建代理作為子代理。例如

    • 使用研究代理作為子代理,研究此專案的最佳身份驗證方法。
    • 在子代理中使用計劃代理為我的功能建立一個實現計劃。然後將計劃儲存在 plans/myfeature.plan.md 中
注意

要阻止自定義代理被用作子代理,請在 *.agent.md 檔案中將元資料屬性 infer 設定為 false

代理會話

注意

代理會話檢視目前處於預覽狀態。

代理使您能夠非同步地在後臺執行 AI 編碼任務。這允許您在代理處理您的請求時繼續在 VS Code 中工作。這些代理與 VS Code 中的聊天會話不同,因為代理在後臺工作,而聊天會話是互動式的,需要您的即時輸入。代理還可以在不同的環境中執行,例如在本地計算機上或遠端在雲端。

提示

OpenAI Codex 代理允許您使用您的 Copilot Pro+ 訂閱進行身份驗證和訪問 Codex,而無需額外設定。在 GitHub 文件中獲取有關GitHub Copilot 計費和高階請求的更多資訊。

代理會話檢視

代理會話檢視提供了一個集中的位置來管理您的活動聊天會話,包括 VS Code 中的本地會話以及其他環境中後臺代理建立的會話,例如 Copilot 編碼代理、GitHub Copilot CLI 或 OpenAI Codex。使用 chat.agentSessionsViewLocation 設定啟用代理會話檢視。

代理會話檢視目前支援以下編碼代理整合:GitHub Copilot 編碼代理、GitHub Copilot CLI 和 OpenAI Codex。我們正在努力在未來擴充套件對更多編碼代理的支援。

代理會話檢視按源組織列出了所有活動聊天會話。該檢視分為 VS Code 中的本地聊天會話和編碼代理會話部分。

Screenshot of the Agent Sessions view in the Primary Side Bar, showing a view for local chat sessions, and coding agents like Copilot coding agent, Copilot CLI and Codex.

您可以直接從代理會話檢視為特定代理開始一個新的聊天會話,方法是選擇相應部分中的 + 控制元件。

選擇一個聊天會話將其作為聊天編輯器選項卡開啟並監視其進度。右鍵單擊會話可選擇在新視窗或聊天檢視中開啟它。

代理可能提供標準聊天會話之外的附加功能,例如取消正在進行的任務、檢出或關閉相關的拉取請求,或將它們的更改直接應用於您的工作區。右鍵單擊代理會話檢視中的代理會話,即可檢視可用選項。

注意

擴充套件程式開發人員可以透過提議的 API chatSessionsProvider 瞭解如何與代理會話檢視整合。該 API 目前處於提議狀態,可能會發生更改。

將任務委派給代理

要將任務委派給代理,您可以直接從代理會話檢視開始一個會話。如果您已經開始了一個本地聊天會話,您也可以在該會話中將任務委派給 Copilot 編碼代理。委派給代理可以使您將複雜或耗時的任務解除安裝給代理,同時您可以繼續工作。

將任務從本地聊天會話委派給 Copilot 編碼代理

  1. 開啟聊天檢視或聊天編輯器選項卡。

  2. 在聊天輸入框中鍵入提示或開啟現有的聊天會話。

  3. 選擇 委派給代理 將提示傳送到編碼代理。如果您啟用了多個代理,請從列表中選擇代理。

    Screenshot of the Chat view with the Delegate to Agent button highlighted.

    將建立編碼代理會話,並提供本地聊天會話的上下文。

  4. 在代理會話檢視中監視編碼代理會話的進度。

在編輯器中,您還可以透過選擇 TODO 註釋上方的相關程式碼透鏡來委派任務。然後,您可以在代理會話檢視中跟蹤委派任務的進度。

Screenshot of a code editor with a Delegate to Agent code lense above a TODO comment.

管理聊天會話的技巧

考慮以下提示,以幫助您有效使用聊天會話

  • 為不同主題開始新會話:開始新的聊天會話以避免沿用不相關對話的上下文。這有助於您獲得更相關的響應。

  • 為並排比較使用編輯器選項卡:將多個聊天會話作為編輯器選項卡開啟,以並排比較不同的方法或解決方案。

  • 為多顯示器設定使用單獨的視窗:在第二個顯示器上將聊天開啟到單獨的視窗,以便在主視窗中處理程式碼時保持可見。

  • 使用遠端代理進行後臺任務:使用遠端編碼代理在後臺執行 AI 任務,同時您可以在 VS Code 中繼續工作。

  • 互動式代理會話:使用本地代理會話執行需要即時輸入和反饋的互動式任務。

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