這是一張有關標題為 使用 GitHub Copilot 的代理模式以提升撰寫程式的效率與開發體驗 的圖片

使用 GitHub Copilot 的代理模式以提升撰寫程式的效率與開發體驗

深入解析 VS Code 代理模式結合 GitHub Copilot 與 MCP,涵蓋環境設定、操作模式、模型與方案比較、PostgreSQL 自然語言查詢示範,提升專案效能與團隊生產力策略;另外探討付費方案與模型間計價差異,最後示範 C 語言專案初始化、自動化指令與知識庫整合,並附個人實際使用心得。

前言

VS Code 於 2025 年 4 月 7 日正式在 Visual Studio Code 穩定版全面推出代理模式(agent mode),並且支援模型上下文協定(model context protocol,MCP)

在深入研究相關說明後,我立即開始使用這項功能,並於隔天向同事推廣與討論。我認為 VS Code 的代理模式已經徹底改變了我的開發流程,大幅提升了開發專案的效率。無論是程式新手還是老手,這都是一項值得盡早掌握的開發工具。

對於新專案開發而言,開發者往往需要了解如何進行基礎環境架設、安裝各種工具、閱讀大量文件等。在這些情境下,透過 VS Code 的代理模式,可以直接讓代理執行相關指令,快速獲得精準的指引和協助,極大地縮短了學習曲線和開發時間。

自本月初代理模式推送至 VS Code 穩定版以來,已約兩週,我已將其全面整合至日常開發流程中,成效顯著。本文將說明本人結合 GitHub Copilot 的實際應用經驗與觀察。

什麼是 GitHub Copilot

GitHub Copilot 是一款由 GitHub 與 OpenAI 共同開發的 AI 程式輔助工具,主要功能是協助開發人員更快速、更輕鬆地撰寫程式碼,讓開發者能將更多精力投入在解決問題與團隊合作上。

主要功能

即時程式碼建議:當開發者在 Visual Studio Code、JetBrains IDE、Neovim 等整合開發環境(integrated development environment,IDE)撰寫程式時,Copilot 能根據當前編輯的內容和上下文,智能地預測並建議下一行甚至整個函式的程式碼,大幅加速開發速度。

自然語言互動:開發人員可使用自然語言(如中文、英文或本地語言)與 Copilot Chat 對話,請求解釋複雜程式碼、生成單元測試、協助除錯、重構現有程式,甚至將程式碼轉換成其他程式語言。

多平台整合:Copilot 不僅能在各種 IDE 中使用,還能在 GitHub Mobile 應用、命令列介面、Windows Terminal 以及 GitHub 網站上提供協助,確保開發體驗無縫銜接。

知識庫與文件生成:企業方案中,團隊可建立專屬的技術知識庫,使 Copilot 更貼近專案需求,同時還能協助自動生成高品質的 pull request 說明文件,節省大量溝通成本。

操作模式

GitHub Copilot 提供三種不同級別的操作模式,每種模式擁有不同的功能權限與應用場景。這些模式依照系統權限與操作範圍遞增排列如下。

詢問模式
(Ask mode)
編輯模式
(Edit mode)
代理模式
(Agent mode)
權限層級唯讀修改程式碼檔案完整系統操作權限與終端機互動
回傳內容形式純文字回答文字回答 + 自動修改/新增程式碼自動化執行開發任務,含套件安裝與結構修改
適用情境程式語法、概念解釋、API 使用說明等程式碼重構、功能實作、樣式調整、錯誤修正開發環境建置、專案初始化、自動化開發任務
實例操作僅分析與建議程式碼直接修改操作專案結構、安裝套件、執行終端命令等
實作能力不進行實際程式碼變更具備程式碼修改與最佳化能力具備全方位自動開發與整合能力

在實際開發過程中,處理簡單查詢和程式碼理解時,我會採用詢問模式;而需要執行更複雜的開發任務,如環境配置、套件安裝或專案結構調整時,則直接使用功能最完整的代理模式

提供模型比較

GitHub Copilot 背後採用多種主流大型語言模型(large language model,LLM)。

截至 2024 年 4 月 21 日,支援的核心模型如下:

模型名稱詢問模式編輯模式代理模式方案
Claude 3.5 SonnetFree
Gemini 2.0 FlashFree
GPT-4.1Free
GPT-4oFree
o3-miniFree
Claude 3.7 SonnetPro
Claude 3.7 Sonnet ThinkingPro
Gemini 2.5 ProPro
o1Pro
o4-miniPro
GPT-4.5Pro+
o3Pro+

上述模型皆經過大量公開程式碼與自然語言資料之訓練,具備處理多種程式語言與產生高品質建議的能力。目前本人主要偏好使用 Claude 3.5 Sonnet 或 Claude 3.7 Sonnet,並視情況切換至 Gemini 2.5 Pro 或 GPT-4.1。

更多模型資訊與使用情境建議,請參考官方文件:Choosing the right AI model for your task

方案費用差異

免費版本雖具一定限制,限制範圍依綁定的 GitHub 帳號為主。若有更高使用需求,建議升級為付費方案,以獲得穩定的服務品質與進階模型存取權限。

免費版本限制條件如下:

  1. 每月最多 2,000 次程式碼自動完成(code completions)。
  2. 每月最多 50 次 Copilot Chat 對話訊息(涵蓋 IDE、終端機與命令列等介面)。
  3. 所有限制均於每月自動重置。

以下為 GitHub Copilot 各方案比較表:

項目FreeProPro+
價格USD 0月繳 USD 10 或年繳 USD 100月繳 USD 39 或年繳 USD 390
程式碼補全次數每月 2,000 次無限制無限制
每月進階請求50 次300 次1,500 次
額外進階請求費用不提供購買USD 0.04/次USD 0.04/次
進階模型存取權限不支援不含 GPT-4.5 與 o3完整支援

模型進階請求倍率(Model multipliers)

使用模型所消耗的進階請求次數如下表所示:

模型名稱進階請求消耗次數
基礎模型(目前為 GPT-4.1)0(付費用戶)、1(Copilot Free)
GPT-4o1
GPT-4.550
Claude 3.5 Sonnet1
Claude 3.7 Sonnet1
Claude 3.7 Sonnet Thinking1.25
Gemini 2.0 Flash0.25
Gemini 2.5 Pro1
o110
o3-mini0.33
  1. GPT-4.5 模型將於 2025 年 7 月 14 日正式從 API 服務中移除。

  2. 進階請求計費將於 2025 年 6 月 4 日開始,適用於所有方案。

    原先個人方案於 2025 年 5 月 8 日 開始收費。然而,為了提升透明度並提供用戶對使用情況與潛在費用的更好控制,GitHub 已將所有方案的計費開始日期延後至 2025 年 6 月 4 日

官方的收費資訊隨時在更新,建議查看GitHub Copilot Premium Requests 說明文件以了解最新消耗次數。

教育與開源社群優惠方案

學生、教育工作者與活躍的開源專案維護者均可免費申請 GitHub Copilot Pro。

學生申請資格相對簡單,只需在個人帳號中輸入學校發放的教育信箱進行認證,並上傳相關身分證明文件(如學生證、在學證明或成績單)。通常審核時間約為 3 至 5 天。若驗證未通過,系統會告知缺少哪些資料,補齊後即可再次提交申請。

學生申請流程

  1. 在 GitHub 個人帳號中綁定學校發放的教育信箱。
  2. 上傳有效身分證明文件(學生證、在學證明或成績單)。
  3. 等待審核約 3-5 個工作天。
  4. 若申請未通過,系統會指明所需補充資料,可再次提交。

在 VS Code 中使用 GitHub Copilot

  1. 開啟 Visual Studio Code。

  2. 安裝 GitHub Copilot 擴充功能

    • 點擊左側活動欄的「擴充功能」圖示(Extensions)。
    • 在搜尋框輸入 Copilot
    • 找到官方的「GitHub Copilot」與「GitHub Copilot Chat」擴充功能並點擊「安裝」。

    安裝 GitHub Copilot

  3. 登入 GitHub 帳號

    • 安裝完成後,VS Code 會自動彈出通知,提示登入 GitHub。我們可點擊左下角帳戶圖示,手動登入 Copilot。
    • 按照指示完成授權流程,允許 Copilot 存取個人帳號。

    登入 GitHub Copilot

  4. 登入後,VS Code 右下角會顯示 GitHub Copilot 狀態與用量資訊。

    GitHub Copilot 狀態

  5. 點擊 VS Code 上方的 GitHub Copilot 按鈕,或使用快捷鍵 Ctrl + Shift + I 開啟 Copilot 視窗。

    GitHub Copilot Chat 按鈕

    聊天視窗

  6. 可以將資料夾/檔案拖曳至 Copilot Chat 視窗,使 Copilot 能取得專案內容進行分析。此外,亦可透過 # 互動變數提升對話效率與精確度。

    例如常用的 #codebase 可讓 LLM 讀取並分析整個專案目錄;#fetch 則可抓取特定網頁內容後進行分析與回應。

    使用 GitHub Copilot

啟用 GitHub Copilot 代理模式

  1. 開啟 Visual Studio Code 設定

    使用快捷鍵 Ctrl + 逗號,或點選左下角齒輪圖示以開啟設定視窗。

    開啟設定

  2. 搜尋並啟用代理模式功能

    在設定搜尋框中輸入 agent,並啟用 Chat > Agent 選項。啟用後,即可於 GitHub Copilot Chat 中使用代理模式功能。

    啟用代理模式 切換至代理模式

  3. 疑難排解

    我另一台電腦更新 VS Code 至最新版後無法找到 Chat > Agent 選項,進行以下步驟重置使用者設定就出現:

    • 關閉 VS Code。
    • 刪除 %appdata%\Code 目錄。
    • 重新啟動 VS Code。

    以下指令可用於快速刪除該目錄(注意:此操作將清除所有使用者設定與快取資料):

1
cmd /c rmdir /s /q "%appdata%\Code"

後續代理模式操作

例如在一個全新的空目錄底下,我輸入指令:幫我初始化一個 C 專案,建立 main.c

代理模式輸出如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
GitHub Copilot

✔️正在產生計劃以建立新工作區…
✔️正在取得設定資訊…

由於沒有現成的 C 專案模板可用,我會直接在目前資料夾下建立 main.c,內容為簡單的 Hello World 程式,並初始化相關說明文件。接下來會執行以下步驟:

   1. 建立 main.c,內容為 Hello World。
   2. 建立 .github/copilot-instructions.md。
   3. 建立 README.md,說明如何編譯與執行。
   4. 確認專案結構正確。

馬上開始進行。

main.c +7-1
copilot-instructions.md +3-1
README.md +24-1

C 專案已初始化,main.c、README.md 及 Copilot 指令檔都已建立。
如需編譯,請在終端機輸入:gcc main.c -o main
如需執行,請依 README.md 說明操作。

如果需要加入更多功能或有其他需求,請隨時告知!

其中 README.md 說明了如何編譯、以及檔案執行方式。後續有任何需求,也只需要透過代理模式要求修改並進行產出即可。

使用 PostgreSQL MCP 伺服器

PostgreSQL MCP 伺服器允許 AI 工具(如 Claude Desktop 或 Visual Studio Code)直接與 PostgreSQL 資料庫互動,透過自然語言查詢來分析和操作資料。

  1. 首先,開啟專案目錄。
  2. F1 呼叫功能視窗,輸入 mcp,選擇MCP: 新增伺服器
  3. 選擇 NPM 套件,並輸入 @modelcontextprotocol/server-postgres
  4. 照著流程安裝,伺服器識別碼可以預設也可以是專案名稱,最後儲存在專案目錄下。
  5. 此時專案目錄會多一個 mcp.json,將預設的連線 URL postgresql://localhost/mydb 改為對應的伺服器網址與資料庫。
  6. 修改完畢後,開始這個 MCP 伺服器。
  7. 在代理模式下,選擇該 MCP 伺服器。

新增 MCP 伺服器 MCP 類型為 NPM 套件

輸入套件名稱 儲存在專案目錄下

開始伺服器 顯示 MCP 伺服器 選擇 MCP 伺服器

  1. 後續詢問伺服器相關的內容,代理模式下可以執行 SQL 相關指令,並回饋資料庫狀態。

    例如我輸入「使用 MCP 告訴我資料庫狀態」,以下為輸出結果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
GitHub Copilot:

讓我幫您查看與資料庫相關的狀態。我會使用 9f1_query 這個工具來查詢資料庫的狀態:

已執行
{
  "sql": "SELECT current_database(), version(), current_timestamp;"
}

根據查詢結果,我可以告訴您以下資料庫相關資訊:

目前使用的資料庫名稱是:welldone
資料庫系統是:PostgreSQL 17.3(Debian 版本)
資料庫系統時間:2025 年 4 月 21 日 08:46:27 UTC

讓我進一步查看資料庫中的表格資訊:

已執行
{
  "sql": "SELECT table_name, table_type FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name;"
}

我可以看到資料庫中有以下三個表格:

prices(價格表)
products(產品表)
source(來源表)

結論

GitHub Copilot 代理模式的導入,為我解決長期停滯的專案瓶頸帶來突破性的轉變。面對模糊、不熟悉或難以定義的問題,以往往往需要耗費大量時間查找資料、嘗試錯誤,如今僅需透過自然語言描述需求,即可快速獲得具體、可執行的解決方案。

以我目前的開發經驗而言,無論是前端應用的快速實作、技術問題的診斷排除,或是整體開發流程的加速與簡化,Copilot 均展現出高度的實用性與穩定性。只要清楚定義目標與規格,代理模式便能自動化完成大部分開發任務,極大提升開發效率與專案推進速度。

PostgreSQL MCP 伺服器與開發環境的整合,有效連接了自然語言與資料庫操作的技術鴻溝。這對不熟悉複雜 SQL 語法的開發人員尤為實用,提供了簡化的資料存取與分析方式。實際操作中,只需透過日常語言表述即可完成資料庫查詢、結構檢視及基本的增刪改查,大幅減少了學習曲線與開發阻力。此功能特別適合快速開發階段或跨領域團隊合作,讓資料庫操作不再是專案推進的瓶頸,而成為加速開發的實用工具。

綜合而言,GitHub Copilot 搭配 MCP 代理模式,不僅是一項強大的輔助工具,更代表一種革新的開發思維與合作模式。也建議將其融入日常開發工作流程中,以提升開發效率,節省解決技術問題的時間,並降低處理複雜資料操作的門檻。這些實質性的改進能為開發團隊帶來顯著的生產力提升和更流暢的專案進度。

參考文獻

  1. Agent mode: available to all users and supports MCP
  2. March 2025 (version 1.99)
  3. What is GitHub Copilot? - GitHub Docs
  4. VS Code Agent Mode Just Changed Everything
  5. About premium requests - GitHub Docs
  6. Deprecations - OpenAI API
  7. Introducing the Model Context Protocol \ Anthropic
  8. modelcontextprotocol/servers: Model Context Protocol Servers
  9. Enforcement of Copilot premium request limits moved to June 4, 2025 - GitHub Changelog
主題 Stack 由 Jimmy 設計