代理程式
代理(Agent)是一種能自主規劃並執行程式設計任務的 AI 系統。您只需給予代理一個高階目標,它就會將目標拆解成多個步驟,利用工具執行這些步驟,並在遇到錯誤時進行自我修正。本文將說明代理的核心架構:代理迴圈、代理類型、子代理、記憶體與規劃。
VS Code 讓您能以最適合工作流程的方式使用代理,您可以從兩種介面中選擇並自由切換:
- 聊天檢視(Chat view):當您在編寫程式碼,並希望 AI 在編輯器、偵錯工具和擴充功能旁提供協助時,請維持在 VS Code 主視窗中使用。
- 代理視窗(Agents window)(預覽版):當您想要透過提示詞(Prompts)思考,並跨多個專案編排代理工作階段時,請切換至「代理優先」的介面。
代理迴圈
當您指派任務給代理時,它會遵循「代理迴圈(agentic loop)」。這種模式在現代 AI 助理中非常普遍。在 VS Code 中,代理是負責規劃與採取行動的系統,而語言模型則負責產生指導這些行動的反應。
在每個步驟中,代理都會評估進度並選擇下一個動作。它可能會開啟一個檔案來理解 API、進行編輯,然後執行指令以驗證變更是否生效。每個動作的輸出都會成為下一個決策的輸入。

代理迴圈通常包含三個高階階段:
- 理解(Understand):代理會讀取檔案、搜尋程式碼庫並查閱說明文件,以了解需要變更的內容。
- 行動(Act):代理會修改程式碼、執行終端機指令、安裝相依項目,或透過工具呼叫外部服務。
- 驗證(Validate):代理會執行測試、檢查編譯錯誤並審查自己的變更。若有任何問題,它會繼續進行迭代。
代理使用語言模型來推導最佳行動方案。然而,如果沒有與環境互動的能力,模型將僅限於提供通用的回應。透過工具,代理在每個步驟中發出工具呼叫,以收集資訊並採取行動,例如讀取檔案、修改程式碼、執行終端機指令以及聯絡外部服務。
代理會視需要將這些動作串連起來,直到完成任務。回答有關程式碼庫的問題可能只需讀取幾次檔案;而實作新功能通常會循環進行「編輯、執行測試、診斷失敗、再次編輯」的過程,直到測試通過為止。
在背景中,VS Code 會將當前上下文組裝成提示詞並發送給語言模型。模型會回應文字、程式碼編輯或工具請求。當工具執行時,其輸出會被加入至下一輪迭代的上下文中,此循環會持續進行直到任務完成。
您在整個過程中都保有控制權。您可以發送新的訊息來重新導向代理、增加上下文或建議不同的方法。關於審查變更與管理代理行為的詳細資訊,請參閱信任與安全。
自訂代理迴圈
代理迴圈並非一體適用,可能會因專案而異。以下有幾種選項可用於個人化代理的行為:
- 自訂代理讓您定義不同的角色,每個角色都有自己的指令、可用工具、語言模型,並可選擇將任務移交給另一個代理。
- 透過代理技能,您可以教導代理針對特定領域或任務的新能力。
- 掛鉤(Hooks)會在代理迴圈的特定生命週期點執行自訂指令。
深入了解自訂概念。
代理類型
代理根據您對結果的需求時間以及所需的監管程度,在不同的環境中執行。兩個關鍵維度是:代理執行的位置(您的機器或雲端),以及您與其互動的方式(互動式或在背景自主執行)。

深入了解如何在 VS Code 中使用代理,包含可幫助您選擇適合任務之代理類型的決策表。
子代理程式
處理複雜任務時,主要代理可以將子任務委派給「子代理」。子代理是一個獨立的 AI 代理,負責執行聚焦的工作(例如研究主題或分析程式碼),並將結果回報給主要代理。
子代理的主要優點是上下文最佳化。如果沒有子代理,研究期間的每次檔案讀取、搜尋結果和中間步驟都會累積在主要代理的上下文視窗中,可能會擠掉重要資訊。子代理會在獨立的上下文視窗中執行工作,並僅回傳摘要,讓主要對話保持專注於當前任務。
子代理的關鍵特性
- 上下文隔離:每個子代理在自己的上下文視窗中執行。它不會繼承主要代理的對話歷史或指令,只會收到任務提示詞。
- 同步執行:主要代理會等待子代理的結果後再繼續,因為子代理的發現通常會影響下一步。
- 平行執行:VS Code 可以同時啟動多個子代理,並行處理例如安全性、效能和存取性分析等任務。
- 聚焦結果:僅將最終結果回傳給主要代理,以保持主要上下文聚焦並減少 Token 使用量。
例如,內建的規劃代理(Plan agent)會在建立實作計畫之前,利用子代理來執行研究與分析。每個子代理都會自主工作並僅回傳其發現。
深入了解如何使用子代理。
程式碼優先與代理優先
在開發過程中,有不同的方式與 AI 協作,正確的方法取決於您的偏好與當前任務。在 VS Code 中,主要有兩種方式與 AI 協作以支援不同的工作流程:
-
程式碼優先(Code-first):您在編輯器中編寫程式碼,並將 AI 作為程式設計助理,協助您實作功能、修復錯誤並重構程式碼。您的主要介面是編輯器,用於檢視、編輯程式碼、測試與偵錯。您使用 AI 來強化現有的程式設計工作流程。
-
代理優先(Agent-first)或任務優先(Task-first):您在聊天介面中描述(高階)任務與需求,並將其交給 AI 代理。代理負責規劃、實作並驗證結果。您的主要介面是聊天視窗與工作階段列表,用於組織工作;編輯器則是輔助介面,僅在必要時用於檢視與微調 AI 的實作。您使用 AI 來轉變工作方式,並專注於定義問題與審查解決方案。
代理視窗是專為代理優先方法設計,並原生整合於 VS Code 中。它提供了一個聚焦的環境,用於跨所有專案管理代理工作階段,並以聊天作為與代理互動的核心介面。代理視窗補充了主視窗中的聊天檢視,後者是針對程式碼優先方法進行最佳化的。
兩種介面共享工作階段與 VS Code 的組態(如設定與快速鍵),因此您無需僅選擇其中一種。當您需要全功能的編輯、偵錯、筆記本、擴充功能生態系統以及遠端開發,並由 AI 輔助程式設計時,請使用聊天檢視。當您想要透過提示詞思考、跨多個專案編排工作,並將 AI 自訂項目(如外掛、技能與 MCP)置於中心時,請使用代理視窗。
聊天工作階段
聊天工作階段是與代理的單一對話,包含所有提示詞、回應以及累積的上下文。每個工作階段都是獨立的,並擁有自己的上下文視窗,因此一個工作階段的工作不會洩漏到另一個。工作階段是組織代理工作的單位:您可以同時執行多個工作階段、在它們之間切換、分支一個工作階段來探索替代方向,或還原到先前的檢查點。
由於聊天檢視和代理視窗共享相同的工作階段,您可以在一個介面中開始任務,並在另一個介面中繼續。無論它們在哪裡執行,工作階段列表都能為您提供所有工作階段的統一視圖。
深入了解管理聊天工作階段。
遠端代理工作階段
代理工作階段不一定要在您的本機機器上執行。您可以在遠端主機上執行工作階段,並從代理視窗、瀏覽器或其他用戶端進行連線。當您希望利用遠端機器的資源、在離開時保持工作階段執行,或從不同裝置監控進度時,這非常有用。遠端機器必須保持開啟狀態並可透過網路存取。
VS Code 支援兩種遠端代理工作階段的運作方式:
| 方法 | 運作原理 |
|---|---|
| 代理視窗 使用遠端連線 |
透過 SSH 或開發通道(dev tunnel)將代理視窗連線至遠端機器。代理視窗會自動在遠端安裝並啟動 VS Code CLI,執行管理工作階段的代理主機程序。 多個用戶端可以同時連線到同一個代理主機,並透過開放的 Agent Host Protocol (AHP) 查看所有工作階段的同步檢視。即使所有用戶端中斷連線,工作階段仍會在遠端持續執行。 深入了解連線至遠端機器。 |
| Copilot CLI 遠端控制 |
在 Copilot CLI 工作階段中使用 /remote on 指令,將工作階段鏡像至 GitHub。隨後您即可在 github.com 或 GitHub 行動應用程式上監控並導向該工作階段,同時它仍會持續在您的機器上執行。深入了解Copilot CLI 工作階段的遠端控制(實驗性)。 |
記憶體
代理使用記憶體來跨對話保留上下文。代理不會在每個工作階段重新開始,而是會回顧您的偏好、應用先前任務的經驗,並隨著時間累積對您程式碼庫的知識。
VS Code 支援兩種互補的記憶體系統:
- 記憶體工具:一個內建工具,將筆記儲存在您機器上的三個範圍中:
- 使用者記憶體 (
/memories/):跨越所有工作區與對話持續存在。前 200 行會自動載入至每個工作階段。 - 儲存庫記憶體 (
/memories/repo/):範圍限於當前工作區,跨對話持續存在。 - 工作階段記憶體 (
/memories/session/):範圍限於當前對話,結束時會清除。
- 使用者記憶體 (
- Copilot 記憶體:由 GitHub 託管的記憶體系統,可跨 Copilot 介面(程式設計代理、程式碼審查、CLI)捕捉儲存庫特定的洞察。這些資訊會在 VS Code 以外的 GitHub Copilot 中共享。
深入了解VS Code 代理中的記憶體。
規劃
對於複雜任務,直接進行程式碼產生可能會導致實作不完整或錯誤的架構決策。內建的「規劃代理(Plan agent)」會與您協作研究任務,並在進行任何程式碼變更前制定詳細的實作計畫。這確保了需求已被理解、邊緣案例已被識別,且在代理開始編寫程式碼前,您已同意該方案。
規劃代理使用 4 階段的迭代工作流程:
- 探索(Discovery):使用唯讀工具與程式碼庫分析來研究任務。
- 對齊(Alignment):提出澄清問題以解決歧義。
- 設計(Design):草擬結構化的實作計畫。
- 精煉(Refinement):根據您的回饋迭代計畫。
規劃代理在計畫經審查並核准前不會進行程式碼變更。一旦核准,您可以將計畫移交給預設代理,或儲存起來以供進一步精煉。
深入了解使用代理進行規劃。