使用 ADO Coding Agent 套件,在 Pipeline 中讓 AI Agent 自動運行各種任務

圖片

前言

你可能有聽過 GitHub Copilot Coding Agent,它是一個可以搭配 GitHub Action,在背景自動執行 AI 任務的工具。甫一推出,就讓開發者們眼睛一亮,因為它讓 AI 能夠在 PR 或 CI/CD Pipeline 流程中,自動化地幫助我們完成許多重複性任務。 可惜的是,它目前只能在 GitHub Repo 上使用。

因此,我試著開發了 ADO Coding Agent 套件。

簡單來說,ADO Coding Agent 就像是 GitHub Copilot Coding Agent 的 Azure DevOps 版本 - 它可以在 Azure DevOps Pipeline 中自動執行你給 AI 的提示詞 (背後是 GitHub Copilot CLI),將 AI 的強大能力與 CI/CD 工作流程無縫整合。

我之前也 Demo 過,如何在 Azure Pipeline 中運行 GitHub Copilot CLI,我對這議題一直很有興趣,因為這讓 AI 驅動的自動化開發變成可能。這意味著,我們未來可能不再需要手動執行重複性的程式碼修改工作,而是可以在每次程式碼提交、或 PR 被觸發時,透過 Pipeline 讓 AI 來執行這些自動化工作。

無論是自動化 Code Review、自動生成單元測試、自動撰寫文件、自動修復 Bugs、或是進行程式碼重構,ADO Coding Agent 都能夠在背景完成,並且把結果直接寫回 Repo 中,這已經不只是效率的提升,而是我一直期待的 24h 自動化 AI 開發團隊的逐漸成形。

具體使用方法:

  1. 在 Pipeline 中添加 ADO Coding Agent Task (套件安裝位置:https://marketplace.visualstudio.com/items?itemName=tw-developer.ado-coding-agent)。

  2. 在 GitHub 站台上申請一個具有 Copilot Requests 權限的 PAT (申請位置:https://github.com/settings/personal-access-tokens/new),這是因為該 task 主要是在 Pipeline 中調用 GitHub Copilot CLI 來完成各種自動化任務,所以你必須先用一個具有 GitHub Copilot 使用權的帳號,建立出具有 Copilot Requests 權限的 PAT( Personal Access Token ) 。
    圖片

  3. 配置 ADO Coding Agent Task,在 Task 配置參數中,除了輸入 PAT,最重要的就是給 AI 的提示詞,也就是要執行的具體任務,例如程式碼生成、bugs 整理,code review…等。
    圖片

  4. 由於我們要讓 AI 對 Repo 作異動,所以需要設定 Repo 的權限,將 Repo 的 Contribute 權限設定給 Pipeline (也就是 Build Services)。
    圖片
    順帶一提,如果你想要在 PR 觸發的 Pipeline 中運行該 task,則需要一併提供 Contribute to pull requests 權限,這樣 task 才能讀寫 PR Comment。

  5. 同時,也需要勾取 Pipeline 的 OAuth 權限,讓 Pipeline 可以對 Repo 作存取操作。
    圖片

  6. 儲存並運行 Pipeline,AI Agent 將會根據你在提示詞中指定的任務自動運行,並將結果寫回 repo 當中(如果你這麼跟AI要求的話)。
    圖片
    例如,上面就是運行完之後,AI 幫我們自動找到的 bugs 清單。
    當然不只可以如此,也可以修改程式碼、建立文件、運行測試…等。

使用 ADO Coding Agent 時的注意事項:

  • Review AI 產生的程式碼 - 雖然 Copilot CLI 很強大,但仍然需要你進行Code Review以確保品質。此外,一般我們不會讓 AI 直接寫入 main 分支,應該要先寫到 feature 分支,經過 code review 後再合併到 main 分支。(後面找時間再介紹如何在 PR 中使用此 task 的方式)

  • PAT 的儲存 - 在正式環境中,PAT Token 應該要使用 Variable 中的 Secret 變數,或是使用 KeyVault 來安全的儲存,並且定期輪換,以確保安全。

  • 清晰的提示詞 - 提示詞寫得愈清晰、詳細、具體(但不是囉嗦),AI 生成的結果和品質就會愈好。

  • 留意重複觸發的 Pipeline - 如果你要求 AI 修改程式碼或產生文件並寫入到特定的分支當中,而你又將 Pipeline 設定為 enable continuous integration ,有可能會讓 Pipeline 一直被重複觸發,請留意。

小結

對我來說,開發這個套件幫我完成了多年前的想像,我一直希望 AI 能夠在夜間自動執行重複性的工作,諸如更新說明文件、測試並建立測試報告,甚至尋找或修改程式碼中的bugs,當這些事情夜晚都能自動完成,那白天的開發人員就可以專注於更具有創造性的工作。

我在想,未來在 CI/CD Pipeline 中,AI 的介入應該會變成一個常態吧,成為軟體開發流程中的一部分。幾年後,這個世界的軟體開發,應該會跟現在大不相同了!

留言

這個網誌中的熱門文章

在 ADO Pipeline 中使用 GitHub Copilot CLI:實現全天候24h開發的夢想

開啟 teams 中的『會議轉錄(謄寫)』與Copilot會議記錄、摘要功能

使用LM Studio輕鬆在本地端以API呼叫大語言模型(LLM)

原來使用 .net 寫個 MCP Server 如此簡單

VS Code的字體大小