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

GitHub Copilot 編碼代理

GitHub Copilot 編碼代理是一個由 GitHub 託管的自主 AI 開發人員,它在後臺獨立工作以完成開發任務。要呼叫編碼代理,請將 GitHub 問題分配給 Copilot 或從聊天中委託任務,代理將使用自己的隔離開發環境自主工作,以在整個儲存庫中實現功能、修復錯誤和進行更改。

這與 在 VS Code 中使用代理 不同,後者提供編輯器內的互動式開發,需要在編碼會話期間積極參與。

GIF showing how to assign an issue to Copilot coding agent from within VS Code.

工作原理

Copilot 編碼代理工作流

  1. 分配:您將 GitHub 問題分配給 @copilot從 VS Code 聊天中委託任務,或使用 TODO 程式碼操作
  2. 分析:代理分析任務和儲存庫結構
  3. 開發:Copilot 在其自己的隔離 GitHub Actions 環境中工作,它可以
    • 探索您的程式碼庫
    • 更改多個檔案
    • 執行構建和測試
    • 執行 lint 和其他自動化檢查
  4. 拉取請求:代理建立包含實現內容的拉取請求
  5. 審查:您審查更改並透過 PR 評論請求修改
  6. 迭代:代理響應反饋並更新實現

先決條件

在您使用 Copilot 編碼代理之前,您需要

確保您使用正確的 GitHub 帳戶登入到 GitHub Pull Request 擴充套件。

Screenshot showing the accounts menu, highlighting the sign in to GitHub Pull Request action.

可選:啟用實驗性設定 githubPullRequests.codingAgent.uiIntegration,以在 Copilot Chat 中顯示一個“委託給編碼代理”按鈕,以便更輕鬆地委託任務。

您還可以透過啟用實驗性設定 chat.agentSessionsViewLocation 來從專用的聊天編輯器管理編碼代理會話,並檢視“聊天會話”檢視。

提示

如果您還沒有 Copilot 訪問許可權,可以註冊Copilot 免費計劃以獲得每月互動限制。

在 VS Code 中向 Copilot 編碼代理分配工作

方法 1:將問題分配給 Copilot

您可以透過將 GitHub 問題分配給 Copilot 來觸發 Copilot 編碼代理,類似於您將問題分配給團隊成員的方式。Copilot 編碼代理會自動分析問題並開始處理它。

  1. 在“GitHub Pull Requests”檢視中,導航到“Issues”部分

  2. 找到您想要分配給 Copilot 的問題

  3. 右鍵單擊該問題並選擇“Assign to Copilot”或選擇“Assign”,然後選擇 @copilot

    提示

    您也可以直接在 GitHub.com 上將問題分配給 @copilot。編碼代理將以相同的方式工作,建立一個拉取請求,然後您可以在 VS Code 或 GitHub 上審查它。

  4. 代理將在後臺開始處理問題

  5. 在 VS Code 中開啟聊天檢視 (⌃⌘I (Windows, Linux Ctrl+Alt+I)) 螢幕截圖顯示 GitHub Pull Requests 檢視,突出顯示分配給 Copilot 的操作,以及分配給 Copilot 的工作的 PR 查詢。

方法 2:從聊天中委託

您還可以直接從聊天對話中將工作交給 Copilot 編碼代理。您無需讓代理立即在編輯器中實現更改,而是可以將任務委託給編碼代理,讓其在後臺自主處理。

  1. 在 VS Code 中開啟聊天檢視 (⌃⌘I (Windows, Linux Ctrl+Alt+I))

  2. 就您想要實現的功能或更改進行對話

  3. 準備就緒後,使用以下方法之一委託給代理

    使用委託按鈕(實驗性)

    啟用實驗性設定 githubPullRequests.codingAgent.uiIntegration,以在已啟用代理的儲存庫的聊天檢視中顯示一個“委託給編碼代理”按鈕。選擇此按鈕可將您當前的聊天上下文移交給編碼代理。

    當您委託任務時,包括檔案引用在內的附加上下文會轉發給編碼代理,使您能夠為編碼代理精確規劃要完成的任務。一個新的聊天編輯器會開啟,即時顯示編碼代理的進度。

    使用 #copilotCodingAgent 工具

    您還可以直接在提示中引用 #copilotCodingAgent 工具,要求 Copilot 在後臺繼續進行本地更改。此工具會自動將掛起的更改推送到遠端分支並啟動編碼代理會話

    Screenshot showing handing off a session to Copilot coding agent

  4. 代理將建立一個拉取請求並開始實現所討論的更改。當您啟動編碼代理會話時(透過 #copilotCodingAgent 或使用“委託給編碼代理”操作),拉取請求將作為卡片呈現在聊天檢視中。

    Screenshot of a coding agent PR card in the Chat view.

方法 3:使用編碼代理修復 TODO

程式碼中以 TODO 開頭的註釋現在會顯示一個程式碼操作,用於快速啟動編碼代理會話。這提供了一種方便的方法,可以直接從程式碼中委託特定任務。

提示

TODO 關鍵字可透過 githubIssues.createIssueTriggers 設定進行配置。您可以自定義哪些註釋關鍵字會觸發編碼代理程式碼操作。

  1. 導航到程式碼中的 TODO 註釋

  2. 查詢燈泡圖示或使用 ⌘. (Windows, Linux Ctrl+.) 開啟“快速修復”選單

  3. 從可用的程式碼操作中選擇“Delegate to coding agent

    Screenshot of a code action above a 'TODO' comment called 'Delegate to coding agent'

  4. 編碼代理將分析 TODO 註釋並在新的拉取請求中實現請求的更改

跟蹤代理進度

瞭解編碼代理工作流

當您將工作分配給 Copilot 編碼代理時,它會遵循特定的工作流,這可能與您的預期有所不同

  1. 初始拉取請求建立:代理立即建立一個包含初始空提交的拉取請求。這建立了將進行所有更改的工作區和分支。

  2. 後臺處理:編碼代理在 GitHub 的雲基礎設施(GitHub Actions 環境)中工作,而不是在您的本地計算機上。這意味著

    • 所有開發都在 GitHub 的伺服器上遠端進行
    • 代理可以訪問完整的儲存庫上下文
    • 即使您關閉 VS Code,工作也會繼續
  3. 增量更新:在初始提交之後,代理將在開發解決方案時推送包含實際程式碼更改的額外提交。

注意

如果您看到一個沒有更改的初始提交,這是預期行為。代理將在後續提交中繼續推送實際程式碼更改,因為它正在處理您的任務。

在 VS Code 中監視工作

GitHub Pull Requests 擴充套件提供了一個專用的“Copilot on My Behalf”部分,顯示

  • 所有活動的 Copilot 編碼代理會話
  • 代理建立的拉取請求
  • 每個任務的進度狀態
  • 指示新更改或更新的數字徽章

Screenshot showing status of multiple coding agent pull requests

提示

您還可以透過 GitHub.com 監視您分配給 @copilot 的工作 - 所有活動會話和拉取請求都將顯示在此部分中,無論您在哪裡啟動它們。

檢視詳細的會話日誌

  1. 在 Pull Requests 檢視中,在“Copilot on My Behalf”下找到代理的工作

  2. 選擇“View Session”以檢視代理所做的所有操作的詳細日誌

    • 執行的命令
    • 修改的檔案
    • 執行的測試
    • 決策過程

    Screenshot showing the session log of a coding agent session.

使用專用聊天編輯器管理會話(實驗性)

您可以從專用的聊天編輯器管理編碼代理會話,使您能夠

  • 即時跟蹤編碼代理的進度
  • 直接從聊天中提供後續說明
  • 在專用環境中檢視代理的響應
  • 直接從聊天編輯器檢視或應用程式碼更改並簽出拉取請求
  • 體驗從本地聊天到 GitHub 代理任務的無縫過渡,具有改進的連續性
  • 受益於具有改進視覺清晰度的更好會話渲染
  • 享受更快的會話載入,以獲得更靈敏的體驗

啟用實驗性設定 chat.agentSessionsViewLocation 來試用此功能

  • 當設定為 view 時,您將在 VS Code 側邊欄中看到一個“Chat Sessions”檢視,用於管理本地和編碼代理會話。該檢視現在包含帶有詳細上下文的豐富描述,可幫助您快速找到相關資訊。

    Screenshot showing the Coding Agents view.

  • 當設定為 showChatsMenu 時,編碼代理會話將與本地聊天曆史記錄一起顯示

    Screenshot showing the Coding Agent Sessions Quick Pick.

當您啟動會話時,編碼代理建立的拉取請求也會作為卡片呈現在聊天檢視中,從而提供更好的視覺整合。

改進的委託體驗

從 VS Code 到 GitHub 編碼代理的委託體驗在最近的更新中得到了顯著增強

  • 更好的上下文轉發:當您從聊天中委託任務時,包括檔案引用在內的附加上下文會自動轉發給 GitHub 編碼代理
  • 即時進度:新的聊天編輯器開啟,即時顯示編碼代理的進度
  • 無縫過渡:從本地聊天到 GitHub 代理任務的連續性得到改進
  • 增強的視覺整合:拉取請求作為互動式卡片呈現在聊天檢視中,以實現更好的導航

這些改進使您可以更輕鬆地為編碼代理精確規劃任務並監視其進度,而無需離開 VS Code。

取消正在執行的會話

如果您需要停止代理,您可以留在 VS Code 中並使用 PR 概述頁面上的“Cancel coding agent”按鈕。

您也可以從 GitHub.com 取消會話

  1. 轉到 GitHub.com 上的 GitHub 儲存庫
  2. 導航到“Actions”選項卡
  3. 找到正在執行的 Copilot Coding Agent 工作流
  4. 選擇“Cancel workflow

審查和迭代

工作完成

在 Copilot 編碼代理分析您的程式碼並確定完成任務所需的更改後,它將執行以下步驟

  • 建立包含所有更改的拉取請求
  • 將 PR 分配給您進行審查
  • 請求您作為審閱者
  • 包含詳細的描述解釋實現
  • 在適用時新增螢幕截圖(用於 UI 更改)

Screenshot showing a pull request from Copilot coding agent displayed in VS Code with an included screenshot of the implemented feature.

提供反饋

您可以透過拉取請求評論來指導代理的工作。確保在評論中標記 @copilot,以便代理會做出響應

  1. 請求更改:留下關於需要修改內容的具體反饋

    @copilot Please update the login form to include password strength validation
    
  2. 請求改進:要求新增功能或改進

    @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 編碼代理文件

後續步驟

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