客服人員如何與 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。

這確保代理執行的每一個動作都受到權限控制且可審計。

代理如何在資料庫中建立變更

當代理進行變更時,會遵循與開發者相同的工作流程。 一個典型的序列如下:

  1. 選擇一個基本分支
  2. 建立一個新的工作分支
  3. 修改或建立檔案
  4. 提交變更
  5. 開啟提取要求

每個步驟都有獨立的 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 互動如下:

  1. 任務是透過問題單、聊天或命令列介面(CLI)來指派的
  2. 代理程式選擇儲存庫與基底分支
  3. 代理程式分析程式碼庫並規劃變更
  4. API 操作用於建立分支與提交
  5. 開啟一個提取請求
  6. 工作流程會執行以驗證或部署變更
  7. 使用者負責審查、批准或請求更新

此流程確保所有代理人活動為:

  • 範圍設定為儲存庫
  • 由權限控制
  • 透過工作流程執行
  • 可見與可檢視

關鍵要點

GitHub 上的代理不會在平台外運作。 它們透過 API、工作流程和儲存庫結構互動,這些結構會強制權限、提供執行環境,並透過拉取請求促進協作。

接著,你將學習模型情境協定(MCP)如何擴展這些能力,讓代理能連接 GitHub 以外的其他工具與服務。