Interaktion von Agents mit GitHub APIs und Workflows

Abgeschlossen

KI-Agenten ändern, wie die Entwicklung erledigt wird. Anstatt manuell in Repositorys zu navigieren, Code zu schreiben und Befehle auszuführen, können Agents direkt in GitHub arbeiten, um Aufgaben von Anfang bis Ende auszuführen.

GitHub unterstützt die agentgesteuerte Arbeit über mehrere Ebenen. Agents können GitHub-APIs verwenden, um den Repository-Status zu lesen und Aktionen auszuführen. Sie können GitHub Actions Workflows nutzen, um Automatisierung in kontrollierten Runnern auszuführen, und GitHub Agentic Workflows, um höhere Repository-Aufgaben in Markdown zu beschreiben und sie unter strengen Schutzvorkehrungen mit Code-Agents auszuführen. Anstatt GitHub zu umgehen, arbeiten Agents durch dieselben Systeme, die Entwickler verwenden, einschließlich Verzweigungen, Pullanforderungen, Probleme und Automatisierung.

In dieser Lektion lernen Sie Folgendes:

  • Interaktion von Agents mit GitHub über APIs
  • Verwendung von Workflows als Ausführungsumgebungen durch Agents
  • Wie Repositoryänderungen erstellt und verwaltet werden
  • Wie ein vollständiger Agent-Ausführungsablauf bei GitHub aussieht

Interaktion von Agents mit GitHub

GitHub Agents, z. B. Copilot Cloud-Agent, arbeiten innerhalb eines definierten Repository- und Verzweigungskontexts. Wenn Sie eine Aufgabe zuweisen, z. B. durch eine Einreichung oder Anforderung, beginnt der Agent im Repository zu arbeiten.

Agents können Folgendes:

  • Recherchieren und Verstehen des Repositorys
  • Planen von Änderungen, die zum Abschließen einer Aufgabe erforderlich sind
  • Vornahme von Codeänderungen in einem neuen Branch
  • Öffnen einer Pull-Anforderung zur Überprüfung

Agents führen diese Aktionen mithilfe GitHub Plattformfunktionen wie APIs und Workflows aus.

Diese Aktionen können durch Repositoryereignisse (z. B. Push- oder Pull-Anforderung) ausgelöst werden, auf einem Zeitplan ausgeführt oder über agentische Workflows koordiniert werden, die Repositoryaufgaben im Laufe der Zeit kontinuierlich automatisieren.

Verwenden von GitHub-APIs zum Ausführen von Aktionen

GitHub stellt APIs bereit, mit denen Systeme programmgesteuert mit Repositorys interagieren können.

Die APIs ermöglichen Aktionen wie:

  • Erstellen von Branches und Commits
  • Lesen von Repositorydaten
  • Öffnen und Aktualisieren von Pullanforderungen
  • Auslösen von Workflows

Alle API-Anforderungen müssen mithilfe von Token wie persönlichen Zugriffstoken, GitHub App-Token oder der in Workflows bereitgestellten GITHUB_TOKEN authentifiziert werden.

Dadurch wird sichergestellt, dass jede Aktion, die ein Agent ausführt, berechtigungsgesteuert und auditierbar ist.

Wie Agents Änderungen in einem Repository erstellen

Wenn ein Agent Änderungen vorgibt, folgt er demselben Workflow wie ein Entwickler. Eine typische Sequenz sieht wie folgt aus:

  1. Auswählen eines Basiszweigs
  2. Erstellen einer neuen Arbeitszweigung
  3. Ändern oder Erstellen von Dateien
  4. Committen von Änderungen
  5. Öffnen einer Pullanforderung

Es gibt separate API-Vorgänge für jeden dieser Schritte, einschließlich der Arbeit mit Git-Verweisen, Repositoryinhalten und Pullanforderungen.

Dies bedeutet, dass Agentaktionen vollständig an GitHub Standardentwicklungsmodell ausgerichtet sind.

Verwenden von GitHub Actions als Ausführungsebene

Agents führen keine Aufgaben direkt auf Ihrem Computer aus. Stattdessen stellt GitHub Ausführungsumgebungen über Workflows bereit, die von GitHub Actions unterstützt werden.

Ein Workflow ist ein YAML-definierter Prozess, der Aufträge als Reaktion auf Ereignisse ausführt.

Agents verlassen sich auf diese Workflows, um:

  • Tests ausführen
  • Überprüfen von Änderungen
  • Ausführen von Automatisierungsaufgaben
  • Bereitstellen von Anwendungen

Copilot Cloud-Agent arbeitet in einer GitHub Actions-basierten Umgebung, was bedeutet, dass Workflows die Grundlage für die Agentausführung bilden.

Herkömmliche Workflows im Vergleich zu agentischen Workflows

Herkömmliche GitHub Actions Workflows sind in der Regel deterministisch und YAML-definiert: Sie geben explizit jeden Schritt, Trigger und Bedingung an. GitHub Agent-Workflows fügen ein anderes Modell für die Repositoryautomatisierung hinzu. Sie ermöglichen es Ihnen, das gewünschte Ergebnis in Markdown zu beschreiben, Leitplanken im Frontmatter zu definieren und das Vorhaben mithilfe eines Codierungs-Agents in GitHub Actions auszuführen. Sie eignen sich am besten für offene, aber gebundene Repositoryaufgaben wie Triage, Berichterstellung, Dokumentationswartung, CI-Fehleranalyse und Codeverbesserung. Sie ersetzen keine CI/CD-Pipelines; sie erweitern sie mit dem, was GitHub als "Kontinuierliche KI" beschreibt.

Was macht einen agentischen Workflow anders

Ein GitHub Agentic Workflow hat zwei Hauptteile:

  • Frontmatter für die Konfiguration, wie zum Beispiel Trigger, Berechtigungen, Tools und sichere Ergebnisse
  • Markdown-Anweisungen zur Beschreibung des Auftrags in natürlicher Sprache

Der Markdown drückt Absicht aus, während der Frontmatter die Grenzen definiert. Der Workflow wird dann in eine Sperrdatei zusammengeführt, die von GitHub Actions ausgeführt wird.

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.

In diesem Beispiel definiert der Frontmatter (zwischen ---), wie und wann der Workflow ausgeführt wird, worauf er zugreifen kann und welche Aktionen zulässig sind.

Im folgenden Markdown wird die Absicht des Workflows in natürlicher Sprache definiert. Ein Agent interpretiert diese Intention und erzeugt strukturierte Ausgaben, die dann durch kontrollierte, überprüfbare Schritte angewendet werden.

Im Gegensatz zu herkömmlichen GitHub Actions Workflows, die jeden Schritt explizit definieren, konzentrieren sich agentische Workflows auf die Beschreibung von Ergebnissen. Der Agent bestimmt, wie das Ziel innerhalb der im Frontmatter definierten Einschränkungen erreicht wird.

Auslösen und Interagieren mit Workflows

Workflows können auf mehrere Arten ausgelöst werden:

  • Automatisches Durchlaufen von Ereignissen wie Push- oder Pullanforderung
  • Manuelle Verwendung des workflow_dispatch-Ereignisses
  • Programmgesteuert über die GitHub-API

Agents können sich auf diese Trigger verlassen, um Aufgaben auszuführen oder Änderungen zu überprüfen, nachdem Aktualisierungen an einem Repository vorgenommen wurden.

Jeder Workflow führt Aufträge in isolierten Umgebungen aus, um eine konsistente und sichere Ausführung sicherzustellen.

Was während einer Agentsitzung geschieht

Agentsitzungen sind beobachtbar und interaktiv.

Während einer Sitzung haben Sie folgende Möglichkeiten:

  • Überwachen des Fortschritts über ein Sitzungsprotokoll
  • Anzeigen, welche Aktionen der Agent ausgeführt hat
  • Geben Sie Feedback ein, oder passen Sie die Aufgabe an.
  • Überprüfen der endgültigen Pullanforderung

Der Agent passt sich basierend auf Feedback an und arbeitet weiter, bis die Aufgabe abgeschlossen ist.

Ausführungsfluss des End-to-End-Agents

Eine typische Agentinteraktion mit GitHub sieht wie folgt aus:

  1. Eine Aufgabe wird über ein Problem, einen Chat oder eine CLI zugewiesen.
  2. Der Agent wählt das Repository und den Base Branch aus.
  3. Der Agent analysiert die Codebasis und plant Änderungen.
  4. API-Vorgänge werden zum Erstellen von Verzweigungen und Commits verwendet.
  5. Eine Pullanforderung wird geöffnet.
  6. Workflows werden ausgeführt, um Änderungen zu überprüfen oder bereitzustellen
  7. Der Benutzer überprüft, genehmigt oder fordert Aktualisierungen an.

Dieser Ablauf stellt sicher, dass alle Agentaktivitäten:

  • Im Repository eingeschränkt
  • Gesteuert durch Berechtigungen
  • Ausgeführt durch Workflows
  • Sichtbar und überprüfbar

Wichtige Kernpunkte

Agents auf GitHub arbeiten nicht außerhalb der Plattform. Sie interagieren über APIs, Workflows und Repositorystrukturen, die Berechtigungen erzwingen, Ausführungsumgebungen bereitstellen und die Zusammenarbeit über Pullanforderungen ermöglichen.

Als Nächstes erfahren Sie, wie Das Model Context Protocol (MCP) diese Funktionen erweitert, indem Sie Agents ermöglichen, eine Verbindung mit zusätzlichen Tools und Diensten herzustellen, die über GitHub hinausgehen.