管理聊天工作階段

在 Visual Studio Code 中使用聊天功能進行基於對話的 AI 互動。聊天工作階段包含您與 AI 之間的一系列提示詞與回應,以及來自您的程式碼或檔案的任何相關內容。本文說明如何建立與管理聊天工作階段、使用工作階段列表,以及整理您的工作階段。

什麼是聊天工作階段 (Chat session)?

聊天工作階段是與 AI 進行的單次對話,包含所有的提示詞、回應與內容。每個工作階段都是獨立的,因此來自一個工作階段的內容不會帶入另一個工作階段。

關於聊天工作階段的關鍵知識

  • 內容視窗 (Context window):在您進行聊天時,工作階段會累積內容。建立新工作階段會清除歷史紀錄並開啟一個全新的內容視窗。您可以在聊天輸入框中 監控內容視窗的使用量
  • 檢查點 (Checkpoints):您可以隨時還原到之前的狀態,或編輯之前的提示詞來改變對話方向。進一步了解 檢查點
  • 代理程式類型 (Agent types):工作階段可以在本機、背景或雲端中執行。進一步了解 代理程式類型
  • 多重工作階段:您可以並行執行多個工作階段,每個工作階段皆專注於不同的任務。使用 工作階段列表 來監控進行中的工作階段並在它們之間切換。
  • 工作階段深入解析 (Session insights):查詢您的工作階段歷史紀錄,以產生晨會報告、獲取建議,並搜尋過去的工作。進一步了解 工作階段深入解析
提示

當您想要切換主題以協助 AI 提供更相關的回應時,請開始新的聊天工作階段。

開始新的聊天工作階段

當您開始新的聊天工作階段時,即是與 AI 展開一段新的對話。每個工作階段都有其專屬的內容視窗,並可以不同的代理程式類型與權限層級執行。您可以並行執行多個工作階段,每個工作階段皆專注於不同的任務或主題。使用 工作階段列表 來監控並切換您的活動工作階段。

如何開始新的聊天工作階段

  1. 使用聊天檢視中的 新聊天 (+) 按鈕,或使用鍵盤快速鍵 ⌘N (Windows, Linux Ctrl+N)

    Screenshot of the New Chat button in the Chat view.

  2. 使用代理程式目標下拉式選單來選取您要執行代理程式的位置。例如,選取本機可在編輯器中以互動方式執行代理程式,並完全存取您的工作區、工具和模型。

  3. 代理程式 (Agent) 下拉式選單中選取代理程式,為該工作階段選擇角色或身分。例如,選擇 Plan 可讓代理程式在撰寫任何程式碼之前,先建立結構化的實作計畫。您可以在工作階段期間隨時切換代理程式。

  4. 選擇性地從 權限 (Permissions) 下拉式選單中選擇權限層級,以控制代理程式在工具核准方面的自主權。

  5. 在聊天輸入框中輸入您的提示詞,並按下 Enter 以送出。

進一步了解代理程式目標、代理程式與權限層級,請參閱 代理程式總覽

在何處開啟聊天工作階段

您可以根據您的工作習慣,在不同的檢視畫面中開啟聊天工作階段。

  • 側邊欄 (預設):選擇 新聊天 (+) > 新聊天,或執行 Chat: New Chat 指令。最適合在編寫程式碼時保持聊天視窗開啟。

    Screenshot of opening a new chat session in the Chat view in VS Code.

  • 編輯器索引標籤:選擇 新聊天 (+) > 新聊天編輯器,或執行 Chat: New Chat Editor 指令。最適合需要更多聊天空間或並排比較工作階段時使用。

    Screenshot of opening a new chat session in an editor tab in VS Code.

  • 獨立視窗:選擇 新聊天 (+) > 新聊天視窗,或執行 Chat: New Chat Window 指令。最適合多螢幕設定。

    Screenshot of opening a new chat session in a separate window in VS Code.

  • 最大化:選擇聊天檢視標題列中的 最大化 按鈕,或執行 View: Toggle Maximized Panel 指令。聊天將佔據整個編輯器區域,提供最大的空間。再次選擇該按鈕可還原之前的版面配置。

  • 代理程式視窗:一個專用的視窗,以代理程式為核心體驗。最適合「代理程式優先」的工作流程,讓您專注於描述任務並跨多個專案協調代理程式。選擇標題列中的 Open in Agents 按鈕,執行 Chat: Open Agents Window 指令,或從命令列使用 code --agents。進一步了解 代理程式視窗

您可以隨時在不同檢視之間移動聊天工作階段。選擇聊天檢視、編輯器索引標籤或聊天視窗中的 ... 選單,並選擇 Move Chat into... 選項之一。或者,從命令面板使用對應的 Chat: Move Chat 指令。

工作階段列表

聊天檢視提供統一的檢視介面來管理您的所有工作階段,無論它們在哪裡執行。它會顯示您的工作階段,並包含有關其狀態、類型與檔案變更的資訊。

使用搜尋與篩選選項來尋找特定的工作階段。您也可以釘選重要的工作階段,使其保持在列表頂部以便存取。將滑鼠游標移至工作階段上方並選擇圖釘圖示,即可釘選或取消釘選。

工作階段列表的範圍限於您的工作區 (workspace)。如果您沒有開啟任何工作區,列表會顯示所有工作區中的工作階段。工作階段會依照時間區段分組,例如 今天上週

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

在列表中的工作階段上按右鍵,可查看其他動作,例如開啟工作階段詳細資料的不同選項、封存工作階段,或是特定代理程式類型的動作(例如針對雲端代理程式工作階段簽出 Pull Request)。

若要從聊天檢視中隱藏工作階段列表,請在空白的聊天區域按右鍵並取消勾選 Show Sessions ( chat.viewSessions.enabled 在 VS Code 中開啟 在 VS Code Insiders 中開啟 )。

聊天檢視以兩種模式運作:精簡模式與並排模式。您可以使用聊天檢視右上角的切換控制項,手動在精簡模式與並排模式之間切換。

  • 精簡模式 (Compact):

    在精簡檢視中,工作階段列表嵌入於聊天檢視內。當您從列表中選擇一個工作階段時,聊天檢視會切換至該工作階段。使用返回按鈕可回到工作階段列表。

    Screenshot of the Chat view in compact mode showing recent agent sessions.

  • 並排模式 (Side-by-side)

    在並排檢視中,工作階段列表會與聊天檢視並排顯示。從列表中選擇工作階段,即可在聊天檢視中查看其詳細資料。

    Screenshot of the Chat view in expanded mode showing full agent session history.

    當您將聊天檢視拉寬時,它會自動切換為並排模式。在工作階段列表上按右鍵並選擇 Sessions Orientation 以變更此行為 ( chat.viewSessions.orientation 在 VS Code 中開啟 在 VS Code Insiders 中開啟 )。您也可以使用切換按鈕。

注意

延伸模組開發人員可以學習如何透過使用建議的 API chatSessionsProvider 來與工作階段檢視進行整合。此 API 目前處於建議狀態,且可能會有所變更。

工作階段狀態指示器 (實驗性功能)

工作階段狀態指示器讓您能直接從標題列的命令中心快速存取工作階段。指示器會顯示未讀訊息與執行中工作階段的視覺化徽章,讓您無需切換檢視即可隨時掌握 AI 活動。

Screenshot showing the session status indicator in the command center with unread and in-progress badges.

指示器顯示內容

  • 未讀工作階段徽章:顯示含有新訊息的聊天工作階段計數。選擇該徽章可篩選工作階段列表,僅顯示未讀的工作階段。
  • 執行中工作階段徽章:顯示代理程式執行中的工作階段計數。選擇該徽章可篩選工作階段列表,僅顯示執行中的工作階段。
  • 閃亮圖示 (Sparkle icon):提供對聊天與工作階段管理選項的快速存取。

您可以使用 chat.agentsControl.enabled 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定來配置狀態指示器的可見度。

在歡迎頁面檢視工作階段

VS Code 的歡迎頁面可以作為您開始處理聊天工作階段的啟動體驗。它提供對您近期聊天工作階段的快速存取、用於開始新任務的嵌入式聊天小工具,以及常見任務的快速動作。

若要將 VS Code 歡迎頁面設定為您的啟動體驗,請將 workbench.startupEditor 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定為 agentSessionsWelcomePage

封存工作階段

為了保持工作階段列表整潔,請將已完成或非活動的工作階段封存。封存工作階段不會刪除它,而是將其移出活動工作階段列表。您可以隨時取消封存工作階段,將其還原至活動工作階段列表。

若要封存工作階段,請將滑鼠游標移至工作階段列表中的該工作階段上方,並選擇 封存 (Archive)。封存後,它將從列表中消失。同樣地,您可以透過相同方式取消封存。

Screenshot of archiving an agent session in the sessions view.

若要檢視已封存的工作階段,請使用工作階段列表中的篩選選項,並選擇 已封存 (Archived) 篩選條件。

刪除工作階段

若要永久刪除工作階段,請在工作階段列表中的該工作階段上按右鍵並選擇 刪除 (Delete)。刪除工作階段是永久性的,且無法復原。對於 Copilot CLI 工作階段,刪除工作階段也會一併移除為該工作階段建立的任何相關聯工作樹 (worktrees)。

如果多個 Copilot CLI 工作階段共用同一個工作樹(例如在您 fork 了某個工作階段後),刪除其中一個工作階段時,只要還有其他工作階段正在使用該工作樹,就不會移除該共用工作樹。工作樹僅會在最後一個關聯的工作階段被刪除或封存後才會移除。

注意

刪除工作階段是不可逆的。如果您只是想隱藏某個工作階段,建議改為 封存 它。

在請求執行期間傳送訊息

您不需要等待回應完成即可傳送下一則訊息。當請求處理中時,送出 (Send) 按鈕會變更為下拉式選單,為您提供處理新訊息的三種選項。

Screenshot of the Send button dropdown menu showing options to queue, steer, or stop and send a new message.

  • 加入佇列 (Add to Queue):您的訊息會等待,並在目前的回應完成後自動送出。目前的回應會不間斷地完成。
  • 訊息導向 (Steer with Message):訊號告知目前請求在完成當前工具執行後讓出 (yield)。目前的回應會停止,並立即處理您的新訊息。當代理程式往錯誤方向進行時,請使用此選項來導正它。
  • 停止並送出 (Stop and Send):完全取消目前的請求,並立即送出您的新訊息。

送出 (Send) 按鈕的預設動作可進行設定。使用 chat.requestQueuing.defaultAction 在 VS Code 中開啟 在 VS Code Insiders 中開啟 將其設定為 steer (預設) 或 queue

重新排列待處理訊息

當您有多個待處理訊息(佇列或導向)時,可以透過拖放來變更它們的處理順序。當有超過一個同類型的訊息處於待處理狀態時,滑鼠懸停時會出現拖曳控制把手。

Screenshot of pending messages in the chat input box with drag handles to reorder them.

分叉聊天工作階段

Fork 聊天工作階段會建立一個全新的、獨立的工作階段,該工作階段會繼承原始工作階段的對話歷史。Fork 出來的工作階段與原始工作階段完全分開,因此一個工作階段中的變更不會影響另一個。新工作階段標題會加上 "Forked:" 前綴,以協助您識別。

對於使用工作樹隔離的 Copilot CLI 工作階段,Fork 出來的工作階段會繼續使用與原始工作階段相同的工作樹。

當您想要探索替代方案、提出額外問題,或在不丟失原始內容的情況下將冗長的對話分支到不同方向時,Fork 功能非常實用。

Fork 聊天工作階段有兩種方式

  • Fork 整個工作階段:在聊天輸入框中輸入 /fork 並按下 Enter。系統會開啟一個新工作階段,其中複製了目前工作階段的完整對話歷史。

  • 從檢查點 Fork:將滑鼠游標移至對話中的某個聊天請求上方,並選擇 Fork 對話 (Fork Conversation) 按鈕。系統會開啟一個新工作階段,其中僅包含直到該檢查點(包含該檢查點)為止的請求。

    Screenshot of the Fork Conversation button in the checkpoint toolbar in the Chat view.

接收關於聊天回應的通知

當您在其他視窗或應用程式中工作時,VS Code 可以傳送 OS 通知讓您知道重要的聊天事件,因此您無需持續檢查。

使用 chat.notifyWindowOnResponseReceived 在 VS Code 中開啟 在 VS Code Insiders 中開啟 來配置接收聊天回應時的 OS 通知。通知內容包含回應的預覽,點選該通知會將焦點帶回該聊天工作階段。

使用 chat.notifyWindowOnConfirmation 在 VS Code 中開啟 在 VS Code Insiders 中開啟 來配置當代理程式需要您的輸入或確認才能繼續時的 OS 通知。

這兩個設定皆有三個可能的值

  • off:從不顯示通知
  • windowNotFocused (預設):僅在 VS Code 視窗失去焦點時顯示通知
  • always:即使 VS Code 視窗擁有焦點時也顯示通知
提示

如果您希望在處理 VS Code 其他部分的工作時(例如在背景執行長時程的代理程式任務時)掌握聊天活動,請將值設定為 always

在聊天工作階段中的提示詞 (Prompts) 之間導覽

使用下列鍵盤快速鍵在聊天工作階段的提示詞之間導覽

  • ⌥⌘↑ (Windows, Linux Ctrl+Alt+Up):移至聊天工作階段中的上一個提示詞。
  • ⌥⌘↓ (Windows, Linux Ctrl+Alt+Down):移至聊天工作階段中的下一個提示詞。
  • ⌥⌘PageUp (Windows, Linux Ctrl+Alt+PageUp):移至聊天工作階段中的上一個程式碼區塊。
  • ⌥⌘PageDown (Windows, Linux Ctrl+Alt+PageDown):移至聊天工作階段中的下一個程式碼區塊。

儲存並匯出聊天工作階段

您可以儲存聊天工作階段,以保留重要對話或稍後重複使用於類似任務。

將聊天工作階段匯出為 JSON 檔案

您可以匯出聊天工作階段,以便稍後參考或與他人分享。匯出聊天工作階段會建立一個包含該工作階段所有提示詞與回應的 JSON 檔案。

如何匯出聊天工作階段

  1. 在聊天檢視中開啟您想要匯出的聊天工作階段。

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

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

將聊天工作階段儲存為可重複使用的提示詞

您可以將聊天工作階段儲存為 可重複使用的提示詞 (reusable prompt),以用於類似任務。

如何將聊天工作階段儲存為可重複使用的提示詞

  1. 在聊天檢視中開啟您想要儲存的聊天工作階段。

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

    此指令會建立一個 .prompt.md 檔案,這是一個可重複使用的 提示詞檔案 (prompt file),它將您目前的對話轉換為帶有預留位置 (placeholders) 的範本。您可以使用提示詞檔案在不同的專案或程式碼庫中執行相同類型的任務。

  3. 視需要審閱並編輯產生的提示詞檔案,然後將其儲存至您的工作區。

將聊天訊息複製為 Markdown

聊天檢視支援將聊天訊息以 Markdown 格式複製到剪貼簿的多種選項,您可以在按右鍵點選訊息或聊天背景時透過內容選單使用這些選項。

  • 複製 (Copy):複製單一提示詞或回應到剪貼簿 - Markdown 內容包含回應文字、思考步驟與工具呼叫。

  • 全部複製 (Copy All):以 Markdown 格式複製整個聊天工作階段,包含所有提示詞、回應、思考步驟與工具呼叫。

  • 複製最終回應 (Copy Final Response):僅複製代理程式回應中最後的 Markdown 部分(在最後一次工具呼叫之後)。這對於分享或重複使用最終輸出結果且不包含中間過程步驟非常有用。

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