客服人員如何與 GitHub API 及工作流程互動
AI 代理正在改變開發工作的方式。 代理人不必手動瀏覽倉庫、撰寫程式碼或執行指令,而是能直接在 GitHub 內完成從頭到尾完成任務。
GitHub 支援多層代理驅動的工作。 代理可以使用 GitHub API 讀取倉庫狀態並執行動作,使用 GitHub Actions 工作流程在受控執行器中執行自動化,並使用 GitHub 代理工作流程在 Markdown 描述高階倉庫任務,並在嚴格的防護下與編碼代理一起執行。 代理人員不會繞過 GitHub,而是透過開發者使用的相同系統運作,包括分支、拉取請求、問題與自動化。
在本單元中,您將學習:
- 代理如何透過 API 與 GitHub 互動
- 代理如何將工作流程作為執行環境
- 如何建立與管理儲存庫的變更
- 完整的代理執行流程在 GitHub 上是什麼樣子
客服人員如何與 GitHub 互動
GitHub 代理程式,例如 Copilot 雲端代理程式,會在定義好的倉庫與分支上下文中運作。 當你指派任務時,例如透過問題或提示,代理會開始在該儲存庫內工作。
代理人可以:
- 研究並了解資料庫
- 完成任務所需的計畫變更
- 在新分支上進行程式碼更動
- 提出拉取請求以供審查
代理會利用 GitHub 平台的功能,如 API 和工作流程來執行這些動作。
這些動作可由儲存庫事件(如推送或拉取請求)觸發,按排程執行,或透過持續自動化儲存庫任務的代理式工作流程協調。
使用 GitHub API 執行動作
GitHub 提供 API,讓系統能以程式方式與倉庫互動。
這些 API 可啟用以下操作:
- 建立分支與提交紀錄
- 讀取資料庫資料
- 開啟與更新拉取請求
- 觸發工作流程
所有 API 請求必須使用憑證進行認證,例如個人存取憑證、GitHub 應用程式憑證,或工作流程中提供的GITHUB_TOKEN。
這確保代理執行的每一個動作都受到權限控制且可審計。
代理如何在資料庫中建立變更
當代理進行變更時,會遵循與開發者相同的工作流程。 一個典型的序列如下:
- 選擇一個基本分支
- 建立一個新的工作分支
- 修改或建立檔案
- 提交變更
- 開啟提取要求
每個步驟都有獨立的 API 操作,包括處理 Git 參考、倉庫內容和拉取請求。
這表示代理的行動完全符合 GitHub 的標準開發模式。
使用 GitHub Actions 作為執行層
代理程式不會直接在你的機器上執行任務。 取而代之的是,GitHub 透過由 GitHub Actions 驅動的工作流程提供執行環境。
工作流程是由 YAML 定義的程序,會根據事件執行工作。
客服人員依賴這些工作流程來:
- 執行測試
- 驗證變更
- 執行自動化任務
- 部署應用程式
Copilot 雲端代理運行於 GitHub Actions 驅動的環境,這意味著工作流程是代理執行的基礎。
傳統工作流程與代理式工作流程
傳統的 GitHub Actions 工作流程通常是確定性且由 YAML 定義的:你明確指定每個步驟、觸發點和條件。 GitHub Agentic Workflows 為儲存庫自動化新增了不同的模型。 它們讓你能在 Markdown 中描述想要的結果,在 frontmatter 中定義護欄,並透過 GitHub Actions 中的編碼代理執行該意圖。 它們最適合用於開放式但有限制的儲存庫任務,例如分流、報告、文件維護、CI 故障分析及程式碼改進。 它們不會取代 CI/CD 管線;他們會以 GitHub 所稱的「持續 AI」來擴展這些技術。
代理式工作流程有什麼不同
GitHub 代理式工作流程主要包含兩個部分:
- 用於設定觸發器、權限、工具與安全的輸出之前置資料
- 以自然語言描述工作的 Markdown 說明
Markdown 表達意圖,而前置資料則定義範圍。 工作流程接著被編譯成一個鎖定檔案,由 GitHub Actions 執行。
on: schedule: daily
permissions: contents: read issues: read pull-requests: read
safe-outputs: create-issue: title-prefix: "[repo-status] " labels: [report]
tools: github:
Daily Repository Status Report
Create a daily report for maintainers.
Include:
Recent activity (issues, PRs, commits)
Key highlights and risks
Recommended next steps
Keep the report concise and link to relevant issues and pull requests.
在這個例子中,前言內容(在---之間)定義了工作流程執行的方式和時間、可以存取的內容,以及允許的動作。
以下的 Markdown 以自然語言定義了工作流程的意圖。 代理人會解讀這個意圖,產生結構化輸出,然後透過受控且可審查的步驟來應用這些輸出。
與傳統 GitHub Actions 工作流程明確定義每個步驟不同,代理型工作流程著重於描述結果。 代理人決定如何在前置資料中定義的限制條件下達成目標。
觸發工作流程並與其互動
工作流程可以透過多種方式觸發:
- 透過推送或拉取請求等事件自動進行
- 手動使用 workflow_dispatch 事件
- 透過 GitHub API 以程式方式進行操作
代理程式可以依賴這些觸發器執行任務或在更新儲存庫後驗證變更。
每次工作流程執行工作都在隔離環境中執行,確保執行一致且安全。
代理會話中會發生什麼事
代理會話以可觀察和互動的方式進行。
在療程中,你可以:
- 透過會話日誌監控進度
- 看看代理人採取了哪些行動
- 提供回饋或調整任務內容
- 檢視最後的拉取請求
代理人會根據回饋調整,並持續工作直到任務完成。
端對端代理執行流程
綜合來看,典型的客服人員與 GitHub 互動如下:
- 任務是透過問題單、聊天或命令列介面(CLI)來指派的
- 代理程式選擇儲存庫與基底分支
- 代理程式分析程式碼庫並規劃變更
- API 操作用於建立分支與提交
- 開啟一個提取請求
- 工作流程會執行以驗證或部署變更
- 使用者負責審查、批准或請求更新
此流程確保所有代理人活動為:
- 範圍設定為儲存庫
- 由權限控制
- 透過工作流程執行
- 可見與可檢視
關鍵要點
GitHub 上的代理不會在平台外運作。 它們透過 API、工作流程和儲存庫結構互動,這些結構會強制權限、提供執行環境,並透過拉取請求促進協作。
接著,你將學習模型情境協定(MCP)如何擴展這些能力,讓代理能連接 GitHub 以外的其他工具與服務。