Levix

Levix's zone

x
telegram

全面了解 GitHub Copilot 的強大模式

image

上個月,我們發布了 代理模式 作為將 GitHub Copilot 打造成一個不僅與您合作,還能為您工作的系統的重要一步。當您給它一個自然語言提示時,Copilot 的代理模式會代表您執行,自動化原本耗時的流程和工作流,讓您能專注於更高層次的問題解決。
上個月,我們發布了代理模式,這是將 GitHub Copilot 打造為不僅協同工作、更能主動代勞的系統的重要一步。當您輸入自然語言指令時,Copilot 的代理模式會代表您執行操作,自動化原本耗時的流程和工作流,讓您能專注於更高層次的問題解決。

對於編程新手而言,代理模式是開發應用程序時實用的同步工具(而我們在 Copilot 中最新推出的編碼代理預覽版則提供異步任務完成能力)。但同樣甚至更重要的是,它對於追求效率的資深開發者來說也是極其強大的工具。通過代理模式,您可以從提出高層次需求快速推進到測試原型階段。此外,我們持續觀察到不同水平開發者都在發掘新的應用場景。
對於編程新手而言,代理模式是開發應用程序時實用的同步工具(而我們在 Copilot 中最新推出的編碼代理預覽版則提供異步任務完成能力)。但同樣甚至更重要的是,它對於追求效率的資深開發者來說也是極其強大的工具。通過代理模式,您可以從提出高層次需求快速推進到測試原型階段。此外,我們持續觀察到不同水平開發者都在發掘新的應用場景。

讓我們深入了解代理模式的定義、工作原理及使用方法。
讓我們深入了解代理模式的定義、工作原理及使用方法。

但首先,什麼是 GitHub Copilot 代理模式?
但首先,什麼是 GitHub Copilot 代理模式?#

GitHub Copilot 代理模式是一個自主的、具備代理能力的實時同步協作工具,能夠基於自然語言提示執行多步驟編碼任務。簡而言之,它是一個能理解您的意圖、構建解決方案並持續迭代直至正確的智能問題解決者。
GitHub Copilot 代理模式是一個自主的、具備代理能力的實時同步協作工具,能夠基於自然語言提示執行多步驟編碼任務。簡而言之,它是一個能理解您的意圖、構建解決方案並持續迭代直至正確的智能問題解決者。

智能代理模式能夠:

  • 分析您的代碼庫以掌握完整上下文。
    分析您的代碼庫以掌握完整上下文。
  • 規劃並執行多步驟解決方案。
    規劃並執行多步驟解決方案。
  • 執行命令或運行測試。
    執行命令或運行測試。
  • 調用外部工具完成專業任務。
    調用外部工具完成專業任務。
  • 提出架構改進建議。
    提出架構改進建議。
  • 通過代理循環(包括規劃、應用變更、測試和迭代)來運行並優化自身工作。
    通過代理循環(包括規劃、應用變更、測試和迭代)來運行並優化自身工作。

與僅響應請求不同,代理模式會主動為實現您的目標而努力。您只需定義預期結果,它就能自主確定最佳實現路徑 —— 在需要時尋求您的反饋、測試自行提出的解決方案並實時優化工作成果。整個過程中,您可清晰查看其推理邏輯、決策過程及所使用的工具。
與僅響應請求不同,代理模式會主動為實現您的目標而努力。您只需定義預期結果,它就能自主確定最佳實現路徑 —— 在需要時尋求您的反饋、測試自行提出的解決方案並實時優化工作成果。整個過程中,您可清晰查看其推理邏輯、決策過程及所使用的工具。

無論您想讓 Copilot 分析您的代碼庫、提議文件修改還是運行測試,代理模式都能讓 Copilot 獨立完成所有必要的子任務。
無論您想讓 Copilot 分析您的代碼庫、提議文件修改還是運行測試,代理模式都能讓 Copilot 獨立完成所有必要的子任務。

此外,代理模式還能使 Copilot 快速識別錯誤並自動修復。
此外,代理模式還能使 Copilot 快速識別錯誤並自動修復。

以下是代理模式與我們其他 AI 編程工具的對比情況:
以下是代理模式與我們其他 AI 編程工具的對比情況:

工具

功能說明

代理模式

Copilot 能夠自主迭代代碼、識別錯誤並自動修復的工作模式
Copilot 能夠自主迭代代碼、識別錯誤並自動修復的工作模式

GitHub Copilot 編程代理
GitHub Copilot 編程代理

一種自主的軟件工程代理,可異步代表您工作,從解決問題到處理人類反饋無所不包
一種自主的軟件工程代理,可異步代表您工作,從解決問題到處理人類反饋無所不包

代碼補全
代碼補全

Copilot 的一項功能,在支持的 IDE 中提供自動補全式建議
Copilot 的一項功能,在支持的 IDE 中提供自動補全式建議

GitHub Copilot 的代理模式如何工作?
GitHub Copilot 的代理模式如何工作?#

Flowchart diagram illustrating how a user interacts with Copilot, which communicates with a machine, workspace, and tools, all connected through a loop involving a large language model (LLM).

代理模式的核心是作為一個協調器,通過系統提示將多種工具和變量(如您的提示和工作區)組織起來,指示 Copilot 持續迭代其輸出直至達到最終狀態。
代理模式的核心是作為一個協調器,通過系統提示將多種工具和變量(如您的提示和工作區)組織起來,指示 Copilot 持續迭代其輸出直至達到最終狀態。

當您向 Copilot 代理模式發送自然語言提示時,我們的後端系統提示會對其進行增強。這包括您的查詢、工作區結構摘要、機器上下文和工具描述。
當您向 Copilot 代理模式發送自然語言提示時,我們的後端系統提示會對其進行增強。這包括您的查詢、工作區結構摘要、機器上下文和工具描述。

以下是使用 Copilot 代理模式時的運作流程分解:
以下是使用 Copilot 代理模式時的運作流程分解:

  • 你向 Copilot 明確提出期望的最終結果要求。
    你向 Copilot 明確提出期望的最終結果要求。
  • Copilot 解析問題後,會詢問 AI 語言模型如何解決該任務,然後開始工作。
    Copilot 解析問題後,會詢問 AI 語言模型如何解決該任務,然後開始工作。
  • Copilot 會監控首次迭代中的錯誤,並確定如何修復它們。
    Copilot 會監控首次迭代中的錯誤,並確定如何修復它們。
  • 代理模式能自主運用多種工具來達成最終結果。
    代理模式能自主運用多種工具來達成最終結果。

在運行命令並應用編輯後,代理模式會檢測語法錯誤、終端輸出、測試結果和構建錯誤。根據這些結果,它會決定如何進行修正,無論是通過額外編輯、終端命令還是執行工具調用。
在運行命令並應用編輯後,代理模式會檢測語法錯誤、終端輸出、測試結果和構建錯誤。根據這些結果,它會決定如何進行修正,無論是通過額外編輯、終端命令還是執行工具調用。

LLM 擁有不斷擴展的可調用工具集,每個工具都能幫助 Copilot 完成任務 —— 而您可自主選擇代理模式使用哪些工具。諸如 read_fileedit_filerun_in_terminal 等每個工具,會向 Copilot 提供詳細的使用時機和方法說明。這些工具使 Copilot 能夠搜索您的工作區、讀取文件內容、運行終端命令、從編輯器獲取錯誤並應用建議更改等。
LLM 擁有不斷擴展的可調用工具集,每個工具都能幫助 Copilot 完成任務 —— 而您可自主選擇代理模式使用哪些工具。諸如 read_fileedit_filerun_in_terminal 等每個工具,會向 Copilot 提供詳細的使用時機和方法說明。這些工具使 Copilot 能夠搜索您的工作區、讀取文件內容、運行終端命令、從編輯器獲取錯誤並應用建議更改等。

您不僅限於使用內置工具。通過從模型上下文協議(MCP)伺服器或擴展安裝更專業的工具,您可以擴展代理模式的功能。MCP 是一個開放標準,使 AI 模型能夠通過統一接口與外部工具和服務交互。我們最近發布了 GitHub MCP 伺服器,它允許您:
您不僅限於使用內置工具。通過從模型上下文協議(MCP)伺服器或擴展安裝更專業的工具,您可以擴展代理模式的功能。MCP 是一個開放標準,使 AI 模型能夠通過統一接口與外部工具和服務交互。我們最近發布了 GitHub MCP 伺服器,它允許您:

  • 自動化 GitHub 工作流和流程。
    自動化 GitHub 工作流和流程。
  • 從 GitHub 倉庫中提取並分析數據。
    從 GitHub 倉庫中提取並分析數據。
  • 構建與 GitHub 生態系統交互的 AI 驅動工具和應用程序。
    構建與 GitHub 生態系統交互的 AI 驅動工具和應用程序。

結合智能代理模式與 MCP 的強大功能,意味著 LLM 的知識庫在連接到您的服務和數據源後將得到進一步擴展。✨
結合智能代理模式與 MCP 的強大功能,意味著 LLM 的知識庫在連接到您的服務和數據源後將得到進一步擴展。✨

GitHub Copilot 代理模式能做什麼?有哪些使用場景?
GitHub Copilot 代理模式能做什麼?有哪些使用場景?#

代理模式為 GitHub Copilot 引入了智能化工作流,可在您的工作流程中實時同步地協助處理任意數量的任務。
代理模式為 GitHub Copilot 引入了智能化工作流,可在您的工作流程中實時同步地協助處理任意數量的任務。

無論您是讓代理自主執行想法,還是逐步引導並控制其路徑,您始終掌握著主導權,而 Copilot 正如其名 —— 始終作為您的副駕駛。
無論您是讓代理自主執行想法,還是逐步引導並控制其路徑,您始終掌握著主導權,而 Copilot 正如其名 —— 始終作為您的副駕駛。

根據我的個人經驗,代理模式徹底改變了從小型項目和概念驗證起步的方式。當我需要現代化我們的開源歷史可視化腳本時,我同時使用 GPT-4o 和 Claude 3.7 模型測試了代理模式。結果令人驚嘆 —— 僅需少量指導,它就將基礎的 matplotlib 直方圖轉化成了精緻的基於 SVG 的動畫折線圖。最讓我印象深刻的是 Copilot 首次嘗試就生成了完美的 SVG 直方圖。這種智能輔助不僅加速了開發,還從根本上改變了我對原型設計和代碼重構的思維方式。
根據我的個人經驗,代理模式徹底改變了從小型項目和概念驗證起步的方式。當我需要現代化我們的開源歷史可視化腳本時,我同時使用 GPT-4o 和 Claude 3.7 模型測試了代理模式。結果令人驚嘆 —— 僅需少量指導,它就將基礎的 matplotlib 直方圖轉化成了精緻的基於 SVG 的動畫折線圖。最讓我印象深刻的是 Copilot 首次嘗試就生成了完美的 SVG 直方圖。這種智能輔助不僅加速了開發,還從根本上改變了我對原型設計和代碼重構的思維方式。

劉哲有,Apache Airflow 提交者
劉哲有,Apache Airflow 提交者

以下是我們觀察到的 GitHub 內外開發者使用代理模式的一些方式:
以下是我們觀察到的 GitHub 內外開發者使用代理模式的一些方式:

  • 重構代碼
    重構代碼
  • 將項目遷移至另一種編程語言或技術棧
    將項目遷移至另一種編程語言或技術棧
  • 編寫測試
    編寫測試
  • 現代化改造遺留代碼(或許這樣你就不必學習過時的編程語言)
    現代化改造遺留代碼(或許這樣你就不必學習過時的編程語言)
  • 自動修復代碼生成錯誤
    自動修復代碼生成錯誤
  • 為應用程序添加新功能
    為應用程序添加新功能
  • 基於功能規格或 UI 草圖原型設計新應用
    基於功能規格或 UI 草圖原型設計新應用
  • 實現非功能性需求或樣板代碼
    實現非功能性需求或樣板代碼
  • 規劃並確定實現新功能的工作範圍
    規劃並確定實現新功能的工作範圍
  • 非代碼生成任務,例如文檔編寫
    非代碼生成任務,例如文檔編寫

需要注意的一點是:Copilot 由 LLMs 驅動,這些模型具有非確定性特徵,這意味著即使使用相同的提示和上下文,其建議也可能有所不同。
需要注意的一點是:Copilot 由 LLMs 驅動,這些模型具有非確定性特徵,這意味著即使使用相同的提示和上下文,其建議也可能有所不同。

如何開始使用代理模式?
如何開始使用代理模式?#

在 VS Code 中打開 Copilot Chat 視圖,從聊天模式下拉列表中選擇代理模式。您也可以 在 Visual Studio 中預覽 此功能。
在 VS Code 中打開 Copilot Chat 視圖,從聊天模式下拉列表中選擇代理模式。您也可以在 Visual Studio 中預覽此功能。

集成在 VS Code 的聊天體驗中,代理模式可訪問您的整個工作區和開發環境,因此具備準確完成請求所需的上下文。要擴展代理模式的功能,請選擇工具按鈕進行配置或添加工具。
集成在 VS Code 的聊天體驗中,代理模式可訪問您的整個工作區和開發環境,因此具備準確完成請求所需的上下文。要擴展代理模式的功能,請選擇工具按鈕進行配置或添加工具。

代理模式由 您選擇的模型 驅動。您可以通過模型下拉列表選擇要使用的模型。
代理模式由您選擇的模型驅動。您可以通過模型下拉列表選擇要使用的模型。

有哪些相關工具和功能可以配合代理模式使用?
有哪些相關工具和功能可以配合代理模式使用?#

代理模式功能強大,但通過與 GitHub Copilot 的其他特性結合使用,您可以進一步擴展其能力。例如,您可以為 Copilot 提供 自定義指令,使其所有響應都能契合您的日常編碼實踐、工具和開發工作流程。
代理模式功能強大,但通過與 GitHub Copilot 的其他特性結合使用,您可以進一步擴展其能力。例如,您可以為 Copilot 提供自定義指令,使其所有響應都能契合您的日常編碼實踐、工具和開發工作流程。

在 GitHub,我們經常使用自定義指令為 Copilot 指定測試框架,同時設置單元測試的防護機制、框架和指導原則。這使您能夠定制 Copilot 在代理模式下的編碼方式,就像給團隊成員下達指令一樣。
在 GitHub,我們經常使用自定義指令為 Copilot 指定測試框架,同時設置單元測試的防護機制、框架和指導原則。這使您能夠定制 Copilot 在代理模式下的編碼方式,就像給團隊成員下達指令一樣。

您也可以使用其他 Copilot Chat 模式,如編輯模式和詢問模式。
您也可以使用其他 Copilot Chat 模式,例如編輯模式和詢問模式。

模式

它的用途

一個應用場景

編輯模式

輕鬆在代碼庫中跨多個文件進行編輯。
輕鬆在代碼庫中跨多個文件進行編輯。

直接在項目中應用代碼修改,以實現新功能、修復錯誤或重構代碼。
直接在項目中應用代碼修改,以實現新功能、修復錯誤或重構代碼。

詢問模式

向 Copilot 提問,以便更好地理解您的代碼庫或技術概念。
向 Copilot 提問,以便更好地理解您的代碼庫或技術概念。

了解一段代碼的工作原理,為軟件構思創意,或探索新技術。
了解一段代碼的工作原理,為軟件構思創意,或探索新技術。

代理模式

啟動一個自主的智能編碼工作流程,只需少量指導即可實現預期結果。
啟動一個自主的智能編碼工作流程,只需少量指導即可實現預期結果。

通過代理模式實現新功能或項目的高層需求,該模式會自動識別並應用必要的更改。
通過代理模式實現新功能或項目的高層需求,該模式會自動識別並應用必要的更改。

隨身攜帶這份指南
隨身攜帶這份指南#

與任何其他開發者合作一樣,您提供的上下文越豐富、對預期結果的描述越具體,從 GitHub Copilot 獲得的效果就越好 —— 這一點在代理模式下尤為明顯。它需要合適的工具來完成正確的工作,但通過為代理模式提供自定義指令來適配您的編碼偏好,或是通過 MCP 集成擴展其能力,它就能完美契合您特定的軟件開發風格。
與任何其他開發者合作一樣,您提供的上下文越豐富、對預期結果的描述越具體,從 GitHub Copilot 獲得的效果就越好 —— 這一點在代理模式下尤為明顯。它需要合適的工具來完成正確的工作,但通過為代理模式提供自定義指令來適配您的編碼偏好,或是通過 MCP 集成擴展其能力,它就能完美契合您特定的軟件開發風格。

與所有由 LLMs 驅動的技術一樣,代理模式的建議也需要您這位 "駕駛員" 親自審查代碼,確保一切按預期運行。但代理模式的非凡之處在於,您可以完全按照自己的意願使用它。它是您的編程伙伴 —— 無論是用來構建原型應用、處理現有代碼庫,還是解答問題並自動化工作流中的基礎環節,都取決於您的需求。祝您編碼愉快!
與所有由 LLMs 驅動的技術一樣,代理模式的建議也需要您這位 "駕駛員" 親自審查代碼,確保一切按預期運行。但代理模式的非凡之處在於,您可以完全按照自己的意願使用它。它是您的編程伙伴 —— 無論是用來構建原型應用、處理現有代碼庫,還是解答問題並自動化工作流中的基礎環節,都取決於您的需求。祝您編碼愉快!

原文鏈接:

https://github.blog/ai-and-ml/github-copilot/agent-mode-101-all-about-github-copilots-powerful-mode/

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。