GitHub Copilot 編碼代理
GitHub Copilot 編碼代理是一個由 GitHub 託管的自主 AI 開發人員,它在後臺獨立工作以完成開發任務。要呼叫編碼代理,請將 GitHub 問題分配給 Copilot 或從聊天中委託任務,代理將使用自己的隔離開發環境自主工作,以在整個儲存庫中實現功能、修復錯誤和進行更改。
這與 在 VS Code 中使用代理 不同,後者提供編輯器內的互動式開發,需要在編碼會話期間積極參與。

工作原理
Copilot 編碼代理工作流
- 分配:您將 GitHub 問題分配給
@copilot,從 VS Code 聊天中委託任務,或使用 TODO 程式碼操作 - 分析:代理分析任務和儲存庫結構
- 開發:Copilot 在其自己的隔離 GitHub Actions 環境中工作,它可以
- 探索您的程式碼庫
- 更改多個檔案
- 執行構建和測試
- 執行 lint 和其他自動化檢查
- 拉取請求:代理建立包含實現內容的拉取請求
- 審查:您審查更改並透過 PR 評論請求修改
- 迭代:代理響應反饋並更新實現
先決條件
在您使用 Copilot 編碼代理之前,您需要
- GitHub Copilot 訂閱:適用於 Copilot Pro、Pro+、Business 或 Enterprise 計劃
- 寫入許可權:您必須具有儲存庫的寫入許可權
- 啟用代理:必須為您的帳戶或組織啟用 Copilot 編碼代理
- VS Code 設定:安裝GitHub Pull Requests 擴充套件
確保您使用正確的 GitHub 帳戶登入到 GitHub Pull Request 擴充套件。

可選:啟用實驗性設定 githubPullRequests.codingAgent.uiIntegration,以在 Copilot Chat 中顯示一個“委託給編碼代理”按鈕,以便更輕鬆地委託任務。
您還可以透過啟用實驗性設定 chat.agentSessionsViewLocation 來從專用的聊天編輯器管理編碼代理會話,並檢視“聊天會話”檢視。
如果您還沒有 Copilot 訪問許可權,可以註冊Copilot 免費計劃以獲得每月互動限制。
在 VS Code 中向 Copilot 編碼代理分配工作
方法 1:將問題分配給 Copilot
您可以透過將 GitHub 問題分配給 Copilot 來觸發 Copilot 編碼代理,類似於您將問題分配給團隊成員的方式。Copilot 編碼代理會自動分析問題並開始處理它。
-
在“GitHub Pull Requests”檢視中,導航到“Issues”部分
-
找到您想要分配給 Copilot 的問題
-
右鍵單擊該問題並選擇“Assign to Copilot”或選擇“Assign”,然後選擇
@copilot提示您也可以直接在 GitHub.com 上將問題分配給
@copilot。編碼代理將以相同的方式工作,建立一個拉取請求,然後您可以在 VS Code 或 GitHub 上審查它。 -
代理將在後臺開始處理問題
-
在 VS Code 中開啟聊天檢視 (⌃⌘I (Windows, Linux Ctrl+Alt+I))

方法 2:從聊天中委託
您還可以直接從聊天對話中將工作交給 Copilot 編碼代理。您無需讓代理立即在編輯器中實現更改,而是可以將任務委託給編碼代理,讓其在後臺自主處理。
-
在 VS Code 中開啟聊天檢視 (⌃⌘I (Windows, Linux Ctrl+Alt+I))
-
就您想要實現的功能或更改進行對話
-
準備就緒後,使用以下方法之一委託給代理
使用委託按鈕(實驗性)
啟用實驗性設定 githubPullRequests.codingAgent.uiIntegration,以在已啟用代理的儲存庫的聊天檢視中顯示一個“委託給編碼代理”按鈕。選擇此按鈕可將您當前的聊天上下文移交給編碼代理。
當您委託任務時,包括檔案引用在內的附加上下文會轉發給編碼代理,使您能夠為編碼代理精確規劃要完成的任務。一個新的聊天編輯器會開啟,即時顯示編碼代理的進度。
使用 #copilotCodingAgent 工具
您還可以直接在提示中引用
#copilotCodingAgent工具,要求 Copilot 在後臺繼續進行本地更改。此工具會自動將掛起的更改推送到遠端分支並啟動編碼代理會話
-
代理將建立一個拉取請求並開始實現所討論的更改。當您啟動編碼代理會話時(透過
#copilotCodingAgent或使用“委託給編碼代理”操作),拉取請求將作為卡片呈現在聊天檢視中。
方法 3:使用編碼代理修復 TODO
程式碼中以 TODO 開頭的註釋現在會顯示一個程式碼操作,用於快速啟動編碼代理會話。這提供了一種方便的方法,可以直接從程式碼中委託特定任務。
TODO 關鍵字可透過 githubIssues.createIssueTriggers 設定進行配置。您可以自定義哪些註釋關鍵字會觸發編碼代理程式碼操作。
-
導航到程式碼中的
TODO註釋 -
查詢燈泡圖示或使用 ⌘. (Windows, Linux Ctrl+.) 開啟“快速修復”選單
-
從可用的程式碼操作中選擇“Delegate to coding agent”

-
編碼代理將分析 TODO 註釋並在新的拉取請求中實現請求的更改
跟蹤代理進度
瞭解編碼代理工作流
當您將工作分配給 Copilot 編碼代理時,它會遵循特定的工作流,這可能與您的預期有所不同
-
初始拉取請求建立:代理立即建立一個包含初始空提交的拉取請求。這建立了將進行所有更改的工作區和分支。
-
後臺處理:編碼代理在 GitHub 的雲基礎設施(GitHub Actions 環境)中工作,而不是在您的本地計算機上。這意味著
- 所有開發都在 GitHub 的伺服器上遠端進行
- 代理可以訪問完整的儲存庫上下文
- 即使您關閉 VS Code,工作也會繼續
-
增量更新:在初始提交之後,代理將在開發解決方案時推送包含實際程式碼更改的額外提交。
如果您看到一個沒有更改的初始提交,這是預期行為。代理將在後續提交中繼續推送實際程式碼更改,因為它正在處理您的任務。
在 VS Code 中監視工作
GitHub Pull Requests 擴充套件提供了一個專用的“Copilot on My Behalf”部分,顯示
- 所有活動的 Copilot 編碼代理會話
- 代理建立的拉取請求
- 每個任務的進度狀態
- 指示新更改或更新的數字徽章

您還可以透過 GitHub.com 監視您分配給 @copilot 的工作 - 所有活動會話和拉取請求都將顯示在此部分中,無論您在哪裡啟動它們。
檢視詳細的會話日誌
-
在 Pull Requests 檢視中,在“Copilot on My Behalf”下找到代理的工作
-
選擇“View Session”以檢視代理所做的所有操作的詳細日誌
- 執行的命令
- 修改的檔案
- 執行的測試
- 決策過程

使用專用聊天編輯器管理會話(實驗性)
您可以從專用的聊天編輯器管理編碼代理會話,使您能夠
- 即時跟蹤編碼代理的進度
- 直接從聊天中提供後續說明
- 在專用環境中檢視代理的響應
- 直接從聊天編輯器檢視或應用程式碼更改並簽出拉取請求
- 體驗從本地聊天到 GitHub 代理任務的無縫過渡,具有改進的連續性
- 受益於具有改進視覺清晰度的更好會話渲染
- 享受更快的會話載入,以獲得更靈敏的體驗
啟用實驗性設定 chat.agentSessionsViewLocation 來試用此功能
-
當設定為
view時,您將在 VS Code 側邊欄中看到一個“Chat Sessions”檢視,用於管理本地和編碼代理會話。該檢視現在包含帶有詳細上下文的豐富描述,可幫助您快速找到相關資訊。
-
當設定為
showChatsMenu時,編碼代理會話將與本地聊天曆史記錄一起顯示
當您啟動會話時,編碼代理建立的拉取請求也會作為卡片呈現在聊天檢視中,從而提供更好的視覺整合。
改進的委託體驗
從 VS Code 到 GitHub 編碼代理的委託體驗在最近的更新中得到了顯著增強
- 更好的上下文轉發:當您從聊天中委託任務時,包括檔案引用在內的附加上下文會自動轉發給 GitHub 編碼代理
- 即時進度:新的聊天編輯器開啟,即時顯示編碼代理的進度
- 無縫過渡:從本地聊天到 GitHub 代理任務的連續性得到改進
- 增強的視覺整合:拉取請求作為互動式卡片呈現在聊天檢視中,以實現更好的導航
這些改進使您可以更輕鬆地為編碼代理精確規劃任務並監視其進度,而無需離開 VS Code。
取消正在執行的會話
如果您需要停止代理,您可以留在 VS Code 中並使用 PR 概述頁面上的“Cancel coding agent”按鈕。
您也可以從 GitHub.com 取消會話
- 轉到 GitHub.com 上的 GitHub 儲存庫
- 導航到“Actions”選項卡
- 找到正在執行的 Copilot Coding Agent 工作流
- 選擇“Cancel workflow”
審查和迭代
工作完成
在 Copilot 編碼代理分析您的程式碼並確定完成任務所需的更改後,它將執行以下步驟
- 建立包含所有更改的拉取請求
- 將 PR 分配給您進行審查
- 請求您作為審閱者
- 包含詳細的描述解釋實現
- 在適用時新增螢幕截圖(用於 UI 更改)

提供反饋
您可以透過拉取請求評論來指導代理的工作。確保在評論中標記 @copilot,以便代理會做出響應
-
請求更改:留下關於需要修改內容的具體反饋
@copilot Please update the login form to include password strength validation -
請求改進:要求新增功能或改進
@copilot Can you add error handling for network timeouts?
代理將響應您的反饋,進行請求的更改,並更新拉取請求。
當使用編碼代理建立的拉取請求時,#activePullRequest 工具會自動為您的聊天會話啟用。這為聊天提供了關於您的 PR 的上下文,包括更改了哪些檔案、分配給了誰以及狀態(草稿或準備審查)。然後,您可以在聊天中詢問有關此 PR 的資訊並進一步迭代它。
常見問題
Copilot 編碼代理與使用代理有什麼區別?
VS Code 提供了兩種自主編碼體驗。雖然在 VS Code 中使用代理提供編輯器內的互動式開發,但 Copilot 編碼代理在 GitHub 上獨立工作,在後臺實現功能。
| 功能 | Copilot 編碼代理 | 使用代理 |
|---|---|---|
| 執行位置 | GitHub 雲 | 您的 VS Code 編輯器 |
| 獨立性 | 完全自主 | 涉及使用者互動和迭代 |
| 輸出 | 建立拉取請求 | 直接編輯檔案 |
| 最適合 | 定義明確的任務、後臺工作 | 互動式開發、即時反饋 |
瞭解有關在 VS Code 中使用代理的更多資訊。
為什麼代理沒有啟動?
- 驗證您的 GitHub 帳戶上的 Copilot 訪問許可權
- 確保您對儲存庫具有寫入許可權
- 檢查是否為您的組織啟用了 Copilot 編碼代理
為什麼初始提交顯示為空?
當 Copilot 編碼代理開始工作時,它會建立一個初始空提交以建立拉取請求和工作分支。這是預期行為 - 代理將在 GitHub 的雲環境中工作時推送包含實際程式碼更改的後續提交。
您可以透過拉取請求、GitHub Pull Request 擴充套件的“Copilot on My Behalf”部分或“Chat Sessions”檢視中的會話日誌來監視進度。
為什麼實現不完整?
- 檢視會話日誌中遇到的任何錯誤
- 檢查代理工作期間測試是否失敗
- 在您的問題描述中提供更詳細的要求
Copilot 編碼代理有哪些安全保護?
Copilot 編碼代理包含內建安全保護,並在 GitHub 的安全框架內執行。有關安全措施、許可權和分支保護相容性的詳細資訊,請參閱GitHub Copilot 編碼代理安全文件。
我可以使用外部工具擴充套件 Copilot 編碼代理嗎?
對於高階場景,您可以使用模型上下文協議 (MCP) 伺服器擴充套件 Copilot 編碼代理,使其能夠訪問
- 外部資料庫
- 雲服務
- API 和第三方整合
- 自定義開發工具
瞭解有關使用 MCP 擴充套件 Copilot 編碼代理的更多資訊。
當前的侷限性是什麼?
- 跨儲存庫更改:只能在分配了問題的儲存庫中工作
- 每個任務多個 PR:每個分配的任務只打開一個拉取請求
- 現有 PR 修改:無法處理它沒有建立的拉取請求
有關侷限性、相容性和使用成本的詳細資訊,請參閱GitHub Copilot 編碼代理文件。
後續步驟
- 按照GitHub 設定指南啟用 Copilot 編碼代理
- 嘗試在 VS Code 聊天中使用代理以獲得即時、互動式編碼幫助