Skip to main content
Skip to content

Dynamische Workflows

Verwenden Sie GitHub Copilot, um Arbeit an komplexen Aufgaben zu orchestrieren, wobei potenziell deterministische Vorgänge, Agenten, Werkzeuge, API-Aufrufe und Benutzerinteraktionen kombiniert werden.

Hinweis

Dieses Feature befindet sich in Öffentliche Vorschau und kann sich ändern.

In diesem Artikel wird erläutert, was dynamische Workflows sind und was sie tun können. Einzelheiten zur Verwendung dieser finden Sie unter Verwenden dynamischer Workflows.

Über dynamische Workflows

Ein dynamischer Workflow ist ein Programm, das definiert, wie eine Aufgabe ausgeführt wird. Es kann automatisierte Schritte mit der Arbeit eines oder mehrerer Agenten kombinieren. Schritte können nacheinander, parallel oder als Mischung aus beiden ausgeführt werden.

Dynamische Workflows sind besonders nützlich für komplexe, mehrstufige Aufgaben und Aufgaben, die sich jedes Mal mit einem deterministischen Satz von Aktionen wiederholen lassen, der dabei jedes Mal ausgeführt wird. Beispielsweise können Sie einen dynamischen Workflow verwenden, um einen Dienstunterbrechungsvorfall zu untersuchen, indem Sie Protokolle und Telemetrie sammeln, unabhängige Agents zur Analyse verschiedener Systeme zuweisen und ihre strukturierten Ergebnisse in einem Zeitachsen- und Ursachenbericht kombinieren.

Dynamische Workflows können:

  • Führen Sie Befehle aus, verwenden Sie Tools, oder rufen Sie andere Dienste auf.
  • Teilen Sie ein Ziel in Aufgaben auf und führen Sie unabhängige Aufgaben parallel aus.
  • Ergebnisse von einer Phase an die nächste übergeben
  • Lassen Sie Subagenten gegenseitig ihre Erkenntnisse überprüfen.
  • Kombinieren Sie Ergebnisse in einer einzigen Antwort.
  • Sie werden um Eingabe gebeten, wenn die von Ihnen verwendete Anwendung sie unterstützt.
  • Halten Sie an einem Prüfpunkt an, damit Sie die Ergebnisse überprüfen und die Ausführung fortsetzen können, wenn Sie bereit sind.

Alles ist im Code definiert: die Schritte, wann Agenten einbezogen werden sollen und wie ihre Ergebnisse genutzt werden. Assistenten verarbeiten die Teile, die Analyse oder Beurteilung benötigen.

Ein Workflow kann Agents auffordern, Ergebnisse in einem angegebenen Format zurückzugeben, damit spätere Schritte sie verwenden können. Copilot kann einen Agenten bitten, das Format bei Bedarf zu korrigieren.

Dynamische Workflows werden in Copilot-Erweiterungen definiert. Es könnten sein:

  • Verfasst von Copilot. Beschreiben Sie die Aufgabe und den Prozess, dem der Workflow folgen soll.
  • Von Ihnen verfasst. Sie können die Erweiterung selbst schreiben, indem Sie die in Copilot integrierte Erstellungshilfe verwenden.
  • Für Sie freigegeben. Sobald die Erweiterung geladen wurde, stehen die dynamischen Workflows zur Verfügung.

Um einen dynamischen Workflow zu verwenden, können Sie Copilot in natürlicher Sprache bitten, ihn anhand seines Namens auszuführen. Beispiele:

Copilot prompt
Run the java-security-review dynamic workflow on the java files in the current directory.

Wenn Sie einen dynamischen Workflow aus einer Eingabeaufforderung starten, führt Copilot ihn im Hintergrund aus und benachrichtigt Sie, wenn er fertig ist. Sie können während der Ausführung in Ihrer Sitzung weiterarbeiten.

Wichtig

Ihr Chat-Agent erstellt oder führt nur einen dynamischen Workflow aus, wenn Sie ihn explizit anfordern oder wenn ein Skill- oder Slash-Befehl dies anweist.

In Copilot CLI, können Sie auch einen vorhandenen dynamischen Workflow direkt über das Terminal mit copilot workflow run WORKFLOW-NAME ausführen. Sie müssen keinen interaktiven Chat öffnen oder einen Agenten darum bitten, den Chat zu starten. Der Workflow kann weiterhin Agents verwenden, um seine Schritte auszuführen.

Der Befehl wartet, bis der Durchlauf abgeschlossen ist oder gestoppt wurde, bevor die Steuerung an Ihre Shell zurückgegeben wird. Verwenden Sie diesen Ansatz, um einen Workflow mit bestimmten Eingaben zu wiederholen, sein Ergebnis zu speichern oder ihn aus einem Skript oder einer CI/CD-Pipeline heraus auszuführen. Weitere Informationen findest du unter Verwenden dynamischer Workflows.

Sie können einen Workflow auch über den Schrägstrichbefehl, das benutzerdefinierte Tool oder den programmgesteuerten Hook einer Erweiterung oder über anderen Code starten, der GitHub Copilot SDK verwendet. In der Copilot app kann eine Erweiterung eine Canvas – eine benutzerdefinierte Schnittstelle – mit Steuerelementen zum Starten des Workflows bereitstellen. Diese Alternativen hängen von der Erweiterung und dem verwendeten Client ab.

Weitere Informationen zu Canvass finden Sie unter Arbeiten mit Canvas-Erweiterungen in der GitHub Copilot-App.

Um herauszufinden, welche dynamischen Workflows verfügbar sind, fragen Sie einfach Copilot:

Copilot prompt
What dynamic workflows are available?

Verfügbarkeit dynamischer Workflows

Dynamische Workflows sind in den Copilot app, Copilot CLI und Copilot SDK verfügbar. Sie stehen Benutzern mit allen Copilot-Plänen zur Verfügung, mit Ausnahme von Copilot Pro und Copilot Pro+-Abonnenten bestehender Jahrespläne, die bei der älteren Premium-Abrechnung auf Anforderungsbasis verbleiben. Weitere Informationen zu diesem Abrechnungsmodell finden Sie unter GitHub Copilot – anforderungsbasierte Abrechnung für Jahresplanabonnenten (veraltet).

Wie sich dynamische Workflows von Autopilot und Fleet unterscheiden

Wenn Sie den Autopilot-Modus und den /fleet Befehl bereits verwenden, scheint ein dynamischer Workflow die gleiche Art von Sache zu sein. Der Hauptunterschied besteht darin, wie Arbeit geplant und kontrolliert wird, nicht einfach, wie viele Agenten verwendet werden.

  • Autopilot ist ein Modus, bei dem sich alles um Autonomie dreht. Damit kann Copilot an einer Aufgabe weiterarbeiten, ohne nach jedem Schritt Ihre Eingabe einzuholen.
  • /fleet ermutigt Copilot, Arbeit an Subagenten zu delegieren und deren Arbeit parallel zu koordinieren. Copilot entscheidet, wie die Aufgabe jedes Mal aufgeteilt wird.
  • Ein dynamischer Workflow führt einen im Code definierten Prozess aus. Der Autor des Workflows definiert die Schritte, Bedingungen und Übergaben. Der Prozess kann einen oder mehrere Agent verwenden, wobei die Arbeit in Sequenz, parallel oder beides ausgeführt wird.

Das Erneute Verwenden eines Workflows bedeutet, die Schritte und Regeln wiederzuverwenden. Der Weg durch diese Schritte kann sich mit den Eingaben oder Erkenntnissen ändern, und Agents können verschiedene Antworten auf verschiedene Läufe geben.

AspectAutopilotFleetDynamischer Workflow
HauptzweckLassen Sie Copilot autonom weiterarbeitenErmutigen Sie Copilot , Arbeit an Subagenten zu delegierenAusführen eines im Code definierten Prozesses
Wer definiert den Prozess?
Copilot entscheidet über die nächsten Schritte
Copilot entscheidet, wie die Arbeit aufgeteilt und koordiniert wirdDer Workflowautor definiert die Schritte, Bedingungen und Übergaben.
Wie Arbeit abläuftHängt von der Aufgabe und den Entscheidungen von Copilot abUnabhängige Arbeit kann parallel delegiert werdenSequenziell, parallel oder beides, mit einem oder mehreren Agenten oder vielen Agenten

Ausführliche Informationen zum Steuern von Workflowausführungen finden Sie unter Einschränken eines dynamischen Workflows und Überwachen, Beenden, Anhalten und Fortsetzen von Ausführungen.

Wann ein dynamischer Workflow verwendet werden soll

Verwenden Sie einen dynamischen Workflow, wenn Sie einen Prozess definieren möchten, den Sie wiederverwenden können, oder wenn eine einzelne Aufgabe klare Phasen, Prüfungen oder Grenzwerte benötigt. Folgende Kandidaten sind geeignet:

  • Release-Prüfungen ausführen, einen Agenten bitten, Fehler zu bewerten, und pausieren, damit Sie die Ergebnisse prüfen können, bevor Sie fortfahren.
  • Paralleles Überprüfen vieler geänderter Dateien in einem Pull Request.
  • Verwenden sie Code, um nicht aufgelöste Review-Kommentare für zusammengeführte Pull Requests zu finden, und fragen Sie dann zwei Modelle, ob die Kommentare weiterhin wichtig sind. Der Code des Workflows meldet ergebnisse nur, wenn beide zustimmen.
  • Durchsuchen einer großen Codebasis nach einem Muster – z. B. fehlende Tests oder Verwendungen einer API, die Sie entfernen – über viele Verzeichnisse gleichzeitig hinweg.
  • Eine Änderung untersuchen, ihre Umsetzung auf Grundlage der Ergebnisse planen und die Änderung anschließend umsetzen.
  • Starten Sie eine lange, potenziell teure Ausführung, die Sie später anhalten und fortsetzen möchten.

Für eine schnelle Antwort oder eine einfache Änderung reicht in der Regel ein normaler Prompt im Standardchatmodus aus.

Berechtigungen für dynamische Workflows

Die Subagenten eines dynamischen Workflows verwenden das Berechtigungssystem der CLI und erben die Berechtigungserteilungen der Sitzung, die sie gestartet hat. Alles, was Sie in Ihrer Sitzung bereits zugelassen haben, gilt für die Subagenten des dynamischen Workflows.

Wenn eines der Subagenten eines Workflows versucht, etwas zu tun, das nicht bereits zulässig ist, wird die Anforderung als normale Berechtigungsaufforderung in Ihrer interaktiven CLI-Sitzung angezeigt. Sie bestätigen es dort genauso, wie Sie es für den primären Agenten tun würden. Der Subagent, der die Berechtigung benötigt, wartet einfach, bis Sie antworten.

Wenn ein Unteragent eine Berechtigung anfordert und Sie sie für die Dauer der Sitzung erteilen, gilt diese Erteilung für alle Subagenten, die dieselbe Berechtigung benötigen.

Wenn Sie copilot workflow run verwenden, zeigt der Befehl keine Aufforderungen zur Genehmigung von Berechtigungen an. Erteilen Sie vor dem Start der Ausführung die Berechtigungen, die die Agenten des Workflows benötigen. Siehe Verwenden dynamischer Workflows.

Eine Erweiterung kann auch einen eigenen Code direkt ausführen, außerhalb dieser Berechtigungsaufforderungen.

Erstellen eines dynamischen Workflows

Sie können einen dynamischen Workflow erstellen, indem Sie Copilot in einer interaktiven Sitzung dazu auffordern. Teilen Sie Copilot mit, was der Workflow erreichen soll.

Standardmäßig erstellt Copilot eine Erweiterung für Ihre aktuelle Sitzung. Sie können sie stattdessen bitten, eine persönliche oder Projekterweiterung zu erstellen oder die Erweiterung selbst mithilfe der integrierten Anleitungen zum Erstellen von Erweiterungen von Copilot zu schreiben.

Weitere Informationen findest du unter Verwenden dynamischer Workflows.

Überarbeiten eines dynamischen Workflows

Wenn Sie einen dynamischen Workflow zum ersten Mal verwenden, testen Sie ihn, indem Sie ihn mit einem begrenzten Bereich ausführen. Beispielsweise können Sie für einen dynamischen Workflow, der für die Verarbeitung mehrerer Dateien konzipiert ist, zunächst anweisen Copilot , den Workflow nur für zwei oder drei Dateien auszuführen. Anschließend können Sie das Ergebnis bewerten. Bei Bedarf können Sie dann Copilot bitten, den Workflow zu überarbeiten, bevor Sie ihn erneut ausführen.

Verwenden Sie eine Anfrage in natürlicher Sprache, um Copilot die gespeicherte Definition des Workflows zu überarbeiten, anstatt einen Grenzwert für nur eine Ausführung außer Kraft zu setzen. Beispiele:

Copilot prompt
Update the check-python-style dynamic workflow to use no more than 10 subagents in total.

Die Überarbeitungen werden in der Erweiterung des dynamischen Workflows gespeichert, ob sie für eine Sitzung, in Ihrem persönlichen Erweiterungsverzeichnis oder in einem Projektrepository gespeichert ist. Neue Ausführungen verwenden die überarbeitete Version, nachdem die aktualisierte Erweiterung geladen wurde. Dadurch werden gespeicherte Ergebnisse in einer angehaltenen Ausführung nicht ersetzt.

Wenn Sie einen dynamischen Workflow überarbeiten, den Sie im Repository des Projekts freigegeben haben, müssen die Personen, die an dem Projekt arbeiten, zuerst die aktualisierte Version des Repositorys abrufen und dann ihre Erweiterungen neu laden, bevor sie die überarbeitete Version verwenden können.

Erneute Nutzung und Freigabe dynamischer Workflows

Standardmäßig sind Workflows, die Copilot für Sie erstellt, auf die aktuelle Sitzung beschränkt. Sie können die Erweiterung in Ihr persönliches Erweiterungsverzeichnis kopieren, um sie sitzungsübergreifend zu verwenden, oder in das Erweiterungsverzeichnis eines Repositorys, um sie mit Personen zu teilen, die an diesem Projekt arbeiten. Dies teilt die Definition, nicht den Ausführungsverlauf der ursprünglichen Sitzung oder den gespeicherten Fortschritt. Weitere Informationen findest du unter Verwenden dynamischer Workflows.

Um einen dynamischen Workflow umfassender zu teilen, können Sie ihn als Plug-In verpacken und über Ihr bevorzugtes Plug-In-Verwaltungssystem verteilen. Weitere Informationen findest du unter Erstellen eines Plug-Ins für GitHub Copilot CLI.

Einschränkung eines dynamischen Workflows

Sie können die folgenden Grenzwerte für einen dynamischen Workflow festlegen:

  • Die maximale Anzahl workfloweigener Agents, die gleichzeitig aktiv sein können.

  • Die maximale Anzahl workfloweigener Agents, die im Laufe einer Ausführung insgesamt gestartet werden können.

  • Die maximale aktive Laufzeit, einschließlich der Zeit vor einer Unterbrechung/Pause. Die Zeit, während die Ausführung angehalten wird, zählt nicht.

  • Die ungefähre maximale Anzahl von AI credits, die die Agents des Workflows und deren Subagenten verbrauchen können.

    Hinweis

    Copilot verfolgt die Guthaben, die von den Agents des Workflows verwendet werden, und stoppt neue Arbeit, wenn die Summe den Grenzwert erreicht. Die Nutzung wird im Nachhinein gemeldet, sodass bereits laufende Arbeit den Gesamtwert über das Limit hinaus erhöhen kann. Dies ist ein ungefähres Maximum, nicht eine harte Obergrenze.

Grenzwerte können an drei Stellen definiert werden:

  • In Ihrem Prompt: Geben Sie einen Grenzwert in natürlicher Sprache innerhalb des Prompts an, den Sie zum Ausführen eines dynamischen Workflows verwenden. Beispiele:

    Use the architecture-research dynamic workflow on this repo, with a timeout of 1 hour.
    
  • Im Workflowcode: Wenn Sie einen dynamischen Workflow erstellen, können Sie (optional) Grenzwerte definieren, die beim Ausführen des dynamischen Workflows verwendet werden sollen.

  • In Ihren persönlichen Einstellungen: Sie können Standardgrenzwerte in Ihren persönlichen Einstellungen für Copilot. Diese gelten für jeden dynamischen Workflow, den Sie ausführen, wenn derselbe Grenzwerttyp nicht im Prompt oder im Workflowcode angegeben ist.

    In Copilot CLI können Sie die folgenden Schlüssel mit dem Befehl /settings verwenden, um Ihre persönlichen Standardgrenzwerte für dynamische Workflows zu konfigurieren.

    • workflows.defaultLimits.maxConcurrentSubagents
    • workflows.defaultLimits.maxTotalSubagents
    • workflows.defaultLimits.timeoutSeconds (muss in Sekunden angegeben werden)
    • workflows.defaultLimits.maxAiCredits

    Beispiele:

    /settings workflows.defaultLimits.timeoutSeconds 3600
    

Die Grenzwerte werden in der oben gezeigten Reihenfolge priorisiert. Wenn Sie einen Grenzwert in Ihrem Prompt angeben, überschreibt er alle im dynamischen Workflow oder in Ihren persönlichen Einstellungen definierten Grenzwerte.

Der Grenzwert für gleichzeitige Subagenten bewirkt, dass zusätzliche Subagenten warten, bis andere fertig sind. Das Erreichen beendet den Workflow nicht.

Die anderen Begrenzungen können einen Lauf stoppen, aber sein Status und seine gespeicherten Ergebnisse bleiben erhalten, damit Sie den Lauf später fortsetzen können. Wenn Sie einen Lauf fortsetzen, der wegen eines erreichten Limits angehalten wurde, erhöhen Sie dieses Limit, um mehr Arbeit zu ermöglichen. Der neue Grenzwert ist eine Summe für den Durchlauf, einschließlich der Nutzung, bevor er angehalten wurde, und kein neues Kontingent.

Unerwartete AI credit-Verwendung verhindern

Ein Workflow, der viele Subagenten startet, kann lange dauern, bis er abgeschlossen ist, und eine große Anzahl von AI credits verbrauchen.

Um einen unerwartet hohen Verbrauch von AI credits zu verhindern, sollten Sie einen dynamischen Workflow in kleinem Umfang testen, bevor Sie ihn für einen groß angelegten Auftrag verwenden. Überprüfen Sie nach einem kleinen Testlauf die tatsächliche Nutzung von AI credit und legen Sie dann einen geeigneten Grenzwert für AI credits für den Lauf im großen Maßstab fest.

Beobachten, Anhalten, Pausieren und Fortsetzen von Ausführungen

Sie können den /workflows Schrägstrichbefehl in einer Copilot CLI Sitzung oder die Schaltfläche Workflows in der Copilot app verwenden, um aktuelle oder vergangene Workflowausführungen anzuzeigen.

Die Details zeigen die Nutzung von AI credits sowie alle Phasen, Fortschrittsmeldungen und Subagenten, die der Workflow meldet. Sie können einen derzeit laufenden Workflow hier abbrechen oder anhalten. Eine Erweiterung kann auch eine eigene Fortschrittsansicht bereitstellen, z. B. in einer Canvas in der Copilot app.

Wenn Sie eine Ausführung pausiert haben – oder wenn sie angehalten wurde, weil ein Limit erreicht wurde –, können Sie sie in der Ausführungsliste auswählen, um sie fortzusetzen. Der Workflow kann gespeicherte Ergebnisse aus abgeschlossenen Schritten und Unteragenten wiederverwenden. Änderungen, die nicht gespeichert wurden, müssen möglicherweise erneut ausgeführt werden.

Weitere Informationen findest du unter Verwenden dynamischer Workflows.