使用 Copilot 逐步建立和偵錯腳本 它已成為任何開發人員最快捷、最方便的工作方式之一,無論您使用 C# 編程, 蟒蛇,JavaScript, PowerShell的 或使用 FastAPI 設定 API。 Copilot 不只是提供程式碼建議:它還能理解上下文、分析錯誤,並引導您完成整個偵錯過程。
它遠非簡單的自動補全功能, 副駕駛扮演同伴的角色。 程序設計 人工智慧 它與 Visual Studio、VS Code、Edge DevTools 和 Azure 集成,可協助您診斷問題、解釋異常、從頭產生腳本並自動修復錯誤程式碼區段。讓我們清晰明了地了解如何充分利用它來有效地創建和調試腳本。
GitHub Copilot是什麼?它如何幫助你更好地進行調試?
GitHub Copilot 是一個擴展 人工智能 由 GitHub 開發 OpenAI 它可以連接到您常用的 IDE(Visual Studio、VS Code、JetBrains、Vim/Neovim 等),並在編寫和偵錯過程中提供即時程式碼建議、解釋和修正。
Copilot最大的優勢在於調試功能。 它了解技術上下文:呼叫堆疊、幀、變數名稱、當前值、相關文件,並且,當與偵錯器整合時,可以「看到」拋出的異常、出錯的行以及程式在故障發生前的狀態。
除了建議程式碼行或程式碼區塊之外Copilot 可以解釋錯誤、建議重構、產生單元測試、幫助您設定條件斷點,如果您在 Visual Studio 中使用代理模式,它甚至可以安排多個檔案的修改。
使用免費的 GitHub Copilot 層 您每月可獲得約 2.000 次代碼補全和約 50 個聊天訊息,並可選擇高級 AI 模型(例如 GPT-4o 或 Claude 3.5 Sonnet),這已經為個人專案、小型自動化或學習提供了充足的空間。
Copilot 的計劃、基本設定和第一步
在您開始使用 Copilot 建立和偵錯腳本之前 您需要一個 GitHub 帳戶,並安裝您首選的開發環境(例如 Visual Studio 或 VS Code)。之後,只需添加官方的 GitHub Copilot 擴充功能。
在 Visual Studio Code 中開啟擴充視圖(Windows/Linux 系統按 Ctrl+Shift+X,macOS 系統按 Cmd+Shift+X),搜尋“GitHub Copilot”,然後點選「安裝」。安裝完成後,重新啟動 VS Code 以啟動擴充程序,並允許您使用 GitHub 帳戶登入。
在 Visual Studio(2022 或更高版本)中您會在 IDE 的右上角看到 GitHub Copilot 的徽章。如果尚未安裝,您可以從那裡安裝它,然後直接打開聊天視窗登入或註冊免費計劃。
連接後Copilot 將開始在編輯器中提供程式碼補全功能(以灰色顯示),您可以開啟聊天窗口,用自然語言詢問有關程式碼、錯誤或任何技術疑問的問題。
副駕駛使用模式:詢問、編輯與代理
Copilot 支援多種互動模式 這將改變你使用程式碼可以做的事情的範圍:從回答一個特定問題到使用外部工具執行多步驟計劃。
提問模式 這是經典的聊天模式:你輸入“為什麼這個函數回傳了錯誤的值?”或“解釋這個異常”,Copilot 會回覆解釋,通常還會提供程式碼建議。除非你明確地應用建議的更改,否則它不會修改你的文件。
編輯模式 它允許您選擇一段程式碼,並讓 Copilot 根據您的指示進行更改:重構、最佳化、修復錯誤、添加 日誌等等。此模型會產生修改建議,您可以部分接受或拒絕。
代理模式 (在 Visual Studio 17.14 或更高版本中)Copilot 真正扮演著「自主開發代理」的角色:它分析你的請求,生成開發計劃,調用工具(編譯器、測試、 終端(例如,MCP 等),對多個檔案進行更改並迭代,直到接近預期目標。
代理模式不會在發送訊息後停止。相反,它會繼續工作,審查編譯錯誤、測試結果和外部工具的輸出,提出新的修改建議,並在將要在您的機器上執行敏感命令時請求您的確認。
使用 Copilot 建立和偵錯腳本的關鍵命令和快捷方式
引導副駕駛最快的方法之一 這是透過在聊天或內聯模式下使用特殊命令來實現的,尤其是當您選擇程式碼片段並希望將幫助資訊集中在特定內容上時。
最有用的指令之一 要建立和偵錯腳本,可以使用以下方法:
- /doc:產生或展開所選程式碼的文件。
- /編輯:根據指令重寫程式碼區塊(例如,「使其更易讀」或「將其轉換為函數式程式設計」)。
- /解釋:解釋程式碼的功能或它為何以某種方式運行。
- /使固定:分析選定的片段,找出錯誤並提出具體的更正。
- /產生:根據規範建立新程式碼(函數、類別、模組甚至整個檔案)。
- /測試產生針對您選擇的程式碼量身定制的單元測試或整合測試。
在 Copilot Chat 的發送按鈕旁邊 您也可以變更任務類型:「請求」用於查詢,「編輯」用於程式碼修改,「代理」用於複雜的多步驟任務,例如遷移 API 或建立完整的專案架構。
「新增上下文…」選項 在聊天視窗頂部,您可以附加文件、資料夾、程式碼問題或 符號這樣 Copilot 就能獲得更多信息,並產生針對您實際項目的回應和腳本。
Copilot 中的錯誤類型及調試方法
當我們逐步討論腳本偵錯時區分程式中可能出現的不同類型的錯誤非常重要,因為根據具體情況,向 Copilot 尋求幫助的方式會略有不同。
詞彙錯誤 當編譯器或解釋器遇到無法辨識的字元或標記時,就會發生這種情況:例如,符號位置錯誤、關鍵字拼字錯誤或字串閉合不正確。
有效的策略與 Copilot 它包括選擇有問題的行,啟動 /fix 命令,讓它建議精確的更正,或者要求它「解釋為什麼這一行會產生詞法錯誤,並在保持註釋意圖的同時進行修復」。
語法錯誤 當程式碼結構違反語言規則時,就會出現錯誤:缺少括號、程式碼區塊縮排錯誤、函數宣告不正確等等。這時,Copilot 就派上了用場,如果你在註解中告訴它程式碼「應該」做什麼,它就會用正確的語法重寫整個程式碼區塊。
語意錯誤 這些問題尤其棘手,因為程式「編譯並運行」了,但結果卻不正確。 Copilot 可以透過逐步分析函數邏輯、比較實際行為與預期行為,或產生能夠重現故障的測試案例,來幫助您解決這些問題。
最後,運行時錯誤 (IndexError、NullReferenceException、ZeroDivisionError 等)非常適合輔助偵錯模式:Copilot 讀取異常,檢查呼叫堆疊和變數狀態,並建議結構變更(例如新增 try/except 區塊、索引檢查或資料驗證)。
在 Visual Studio 中使用 Copilot 進行逐步偵錯
Visual Studio 將 Copilot 深度整合到偵錯器中。因此,您可以啟動傳統的偵錯工作階段(斷點、F5、F10、F11),並隨時開啟聊天視窗詢問有關目前行、呼叫堆疊或特定異常的問題。
C# 中的典型例子 它啟動一個控制台應用程序,並在解析參數的行上設定斷點(例如)。 int value = Int32.Parse(args);)並檢查變數 args 它的長度為零。從這裡,您可以在編輯器中右鍵單擊並選擇“詢問副駕駛”,即可打開與該行直接關聯的對話。
當問他諸如此類的問題時 「為什麼 args 變數的值為字串?」Copilot 會檢查偵錯器上下文(值、堆疊、檔案),並給出程式參數耗盡原因的合理解釋,同時提供驗證使用者輸入或提供預設值的建議。
如果您接受建議的更正Visual Studio 可以自動將變更套用到檔案。如果您想了解更多信息,可以提出後續問題,例如“如何處理未向程式傳遞任何參數的情況?”,Copilot 將添加相應的錯誤處理。
當發生異常時 (例如,當出現 IndexOutOfRangeException 異常時),偵錯器會暫停執行,通常會顯示一個「詢問 Copilot」按鈕。點擊該按鈕會打開聊天窗口,並將異常訊息、訊息和堆疊資訊作為上下文注入,因此您無需複製和貼上任何內容。
從副駕駛艙的窗口望出去,可以看到副駕駛座的車窗。 它會產生解釋,提出更正建議,提供預覽按鈕以查看差異,如果您確信無誤,可以套用修補程式並重新啟動偵錯器以驗證錯誤是否已消失。
Visual Studio 中代理模式和調度的進階用法
Visual Studio 中的 Copilot 代理模式 它更進一步:它不僅能回答你的問題,還能透過多步驟工作計畫在內部進行自我組織,其中可能包括程式碼編輯、終端命令、運行測試以及使用 MCP 等其他工具。
當您啟動“計劃”選項時 在 GitHub Copilot 的選項中,代理程式會建立兩個工件:一個以可讀的 markdown 格式呈現的計劃,以及一個內部 JSON 文件,用於記錄每個任務的目標、步驟和狀態,從而在整個會話期間保持一致性。
對你這位開發者而言這意味著您可以要求它執行諸如「向此 API 新增 JWT 驗證並建立基本測試」之類的操作,並查看 Copilot 如何提出計劃:要修改哪些檔案、要新增哪些依賴項、要執行哪些建置和測試命令,以及如何驗證每個步驟。
該代理使用一套內部工具 (計劃、計劃調整、進度更新、觀察日誌和計劃完成)可讓您在例如特定編輯後編譯失敗或單元測試開始中斷時做出反應。
您始終擁有控制權。您可以查看「總更改」中列出的更改,只保留一些文件,丟棄整個批次,或者如果您對代理採取的方向不滿意,甚至可以將解決方案狀態恢復到先前的檢查點。
使用 Copilot 在 VS Code 中建立和偵錯腳本(支援 Python 等語言)
在 Visual Studio Code 中,Copilot 與 Python 專案整合得非常好。在編程新手或編寫快速腳本時,類型錯誤、字串拼接或設計不良的循環非常常見。
一個典型案例 是 腳本 如 bugged_dice_battle.py這段程式碼模擬擲骰子,但會失敗並拋出類似「只能將 str(而非 'int')連接到 str」的 TypeError 錯誤。 Copilot 很快就偵測到您試圖在未先轉換的情況下將數字連接到字串,並建議使用 str() 或者字串格式化。
為了利用這種類型的援助只需在 VS Code(或其他軟體)中開啟該檔案即可。 WSL 2 環境),從集成終端運行腳本,複製錯誤消息並將其粘貼到 Copilot 聊天中,同時提出問題:“這個錯誤是什麼意思,我該如何修復這個文件中的錯誤?”
副駕駛回應並解釋了故障的原因指向腳本的特定行,並傳回受影響函數的更正版本,您可以複製該版本或使用 /edit 將其作為補丁套用(如果您已將擴充功能設為內聯修改)。
這同樣適用於類似這樣的腳本。 bugged_factorial_finder.py程式運作正常,但輸出結果過大,因為階乘公式不正確。 Copilot 分析循環並偵測到您乘以了一個額外的值(誤用階乘公式)。 *=) 並提出了正確累加階乘的適當邏輯。
瀏覽器中的輔助工具:使用 Edge DevTools 偵錯 JavaScript
在瀏覽器中調試 JavaScript 時, 微軟邊緣 將 Copilot 整合到 DevTools 中,以便更好地理解原始程式碼,尤其是在處理壓縮檔案或複雜程式庫時。
在“起源”標籤中 您可以載入 JavaScript 文件,使用「格式化」按鈕美化壓縮後的程式碼,然後設定行斷點,在您懷疑錯誤發生的位置暫停執行。
當您暫停在斷點處時 您可以檢查變量,即時修改值,單步執行函數(進入、單步跳過、退出),如果您不完全理解某個函數或某個特別複雜的程式碼片段的作用,也可以使用 Copilot 來「解釋這些程式碼行」。
DevTools 也提供其他方面的協助。 例如,用於繞過已知並非故障原因的第三方庫的腳本列表,或使用以下方式重命名嵌入式程式碼區塊的功能 # sourceURL這樣可以更輕鬆地瀏覽呼叫堆疊和錯誤日誌。
除錯現代 Web 應用程式這些工具的組合(斷點、堆疊檢查、直接瀏覽器編輯以及 Copilot 的輔助功能,用於解釋和建議程式碼)使得尋找和修復邏輯或 DOM 錯誤變得更加容易。
使用 Azure Copilot 產生和偵錯 PowerShell 腳本
Azure Copilot 將這個概念擴展到了 IDE 之外。 它允許您直接從 Azure 介面產生用於管理雲端資源的 PowerShell 腳本。
基於自然語言指令 例如“我該如何列出…” 虛擬機 如果您詢問“如何在 Azure 中使用 PowerShell 運行什麼?”或“建立腳本來停止特定資源組中的所有虛擬機”,Azure Copilot 會傳回一個或多個 cmdlet,您可以將其貼到控制台中。
產生的腳本通常包含佔位符值 (例如,訂閱名稱、資源群組或位置)必須明確標識,您必須先將其替換為實際的名稱、資源群組或位置。 生產環境中不運行任何程序.
對於更長的場景 您可以問:“編寫一個 Azure PowerShell 腳本,該腳本建立一個資源組,並配置一個帳戶…” 存儲 並部署虛擬機器”,Copilot 將按照適當的邏輯順序組裝幾個相互關聯的步驟,包括解釋性註釋。
如果腳本運行不符合預期您可以將其複製到 VS Code 中,在整合終端中運行,如果出現任何錯誤,可以使用 Copilot Chat 來解釋訊息並建議對使用的 cmdlet 或參數進行最少必要的更正。
使用 Copilot 和 FastAPI 和 OpenAI 建立聊天機器人

在使用 FastAPI 等框架設定 API 時,Copilot 也非常有用。特別是如果您想將其與 OpenAI API 結合使用來創建一個簡單的聊天機器人,並且不想在樣板程式碼上浪費時間。
一個典型的終點範例 是 @app.post("/chat") 接收使用者訊息,呼叫 OpenAI 用戶端,並傳回由已配置模型(例如 gpt-4)產生的回應內容,同時具備基本的錯誤處理能力,並能從檔案中載入環境變數。 .env 以及 向 Teams/Slack 發送提醒.
Copilot 可以產生幾乎完整的骨架。 如果你給出明確的規範:“在 FastAPI 中創建一個名為 /chat 的端點,該端點接收文本,使用存儲在 OPENAI_API_KEY 中的密鑰調用 OpenAI API,並返回助手的響應文本,使用 HTTPException 500 處理可能的異常。”
腳本運行起來之後就沒問題了。如果您發現它在某些情況下會失敗(例如,當訊息為空或未定義鍵時),您可以要求 Copilot 審查程式碼,找出薄弱環節,並添加輸入驗證或更強大的異常處理。
這種動態 它適用於任何類型的腳本:你為它設定一個目標(自動化流程、建立微服務、設定 CLI),Copilot 會產生一個初始版本,你可以藉助聊天和偵錯器來完善。
使用 Copilot 進行調試時提示的最佳實踐
Copilot在建立和偵錯腳本方面的有效性 這很大程度上取決於你如何措辭提問以及你提供了多少背景信息,尤其是在錯誤不明顯或涉及多個文件的情況下。
提示語要具體明確。與其寫“修復這個問題”,不如解釋一下程式碼應該做什麼,你得到了什麼結果,以及你期望得到什麼結果。例如,「這個函數應該會傳回正整數列表的平均值,但它傳回的值卻大得多。問題出在哪裡?」這樣的問法更有幫助。
將註釋用作小型規範 它在程式碼本身也非常有用:如果你在上面寫“# 以下函數應該根據三角形的底和高計算其面積”,然後請求 /fix,模型就能清楚地理解你的意圖。
對於複雜或語義錯誤值得邀請 Copilot 逐步推理:「逐行解釋此函數的作用以及溢出發生在哪一步」或「逐步解釋為什麼當列表為空時此函數會拋出運行時錯誤」。
當模型出現混亂或無法捕捉模式時你可以使用少樣本提示:在註釋中提供一兩個預期輸入/輸出的範例,以便 Copilot 理解你想要概括的行為,並根據該模式調整其建議。
使用、自訂和程式碼審查的最佳實踐
儘管 Copilot 可以自動執行許多任務在生產環境中,尤其是在生產環境中,保持對人工智慧的信任與對生成或修改的程式碼進行批判性判斷之間的平衡非常重要。
根據您的專案自訂 Copilot 使用諸如此類的文件 .github/copilot-instructions.md 以及保存在 .github/prompts 它允許您根據自己的編碼風格、命名約定、框架和內部約束來自訂其回應。
在工作團隊中建議就程式碼審查期間如何使用 Copilot 達成共識:例如,接受風格和重構建議,只要這些建議經過 PR 和人工審查,並且不要在未經事先分析的情況下合併自動產生的變更。
合作也有益處 Copilot 產生的共享回饋和文件非常有價值,因為它們可以幫助新團隊成員更好地理解複雜的模組、業務流程或設計決策,這些可能並不顯而易見。
如果你能很好地平衡自動化和手動編碼,那就很棒了。Copilot 成為一種工具,它能加快您的工作速度,同時不會降低您對系統的理解,讓您從重複性任務中解放出來,專注於設計、架構和解決複雜問題。
使用 Copilot 逐步建立和偵錯腳本 這意味著依靠能夠理解你的程式碼、你的環境和你的目標的 AI,使調試成為一個更有指導性、更少挫敗感、更有效率的過程,無論你是剛開始編程,還是已經編寫專業軟體多年。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。
