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.

Informationen zu dynamischen 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 nebeneinander, parallel oder als Mischung aus beiden ausgeführt werden.

Dynamische Workflows sind besonders nützlich für komplexe, mehrschrittige Aufgaben sowie für Aufgaben, die Sie mit einer deterministischen Abfolge von Aktionen jedes Mal wiederholen können. 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.
  • Fragen Sie nach Eingaben, 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. Agenten übernehmen die Aufgabenbereiche, die Analysen oder Urteilsvermögen erfordern.

Ein Workflow kann Agenten auffordern, Ergebnisse in einem bestimmten Format zurückzugeben, damit diese in späteren Schritten verwendet werden können. Copilot kann einen Agent 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 CopilotSie die integrierte Dokumenterstellungsanleitung 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 in natürlicher Sprache bitten Copilot , ihn anhand des Namens auszuführen. Beispiel:

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, Copilot wird er im Hintergrund ausgeführt und meldet, 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 einen anderen Code starten, der die GitHub Copilot SDKErweiterung verwendet. In Copilot app kann eine Erweiterung eine Arbeitsfläche – eine benutzerdefinierte Oberfläche – 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?

Wie sich dynamische Workflows von Autopilot und Flotte 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, der alles um Autonomie geht. Damit können Copilot Sie eine Aufgabe weiterarbeiten, ohne nach jedem Schritt ihre Eingabe zu unterbrechen.
  • /fleet ermutigt Copilot, Arbeit an Subagenten zu delegieren und deren Arbeit parallel zu koordinieren. Copilot entscheidet, wie die Aufgabe jedes Mal getrennt werden soll.
  • 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 delegierenEinen im Code definierten Prozess ausführen
Wer definiert den Prozess?
Copilot entscheidet über die nächsten Schritte
Copilot entscheidet, wie die Arbeit dividiert und koordiniert wirdDer Workflowautor definiert die Schritte, Bedingungen und Übergaben.
FunktionsweiseHängt von der Aufgabe und Copilotden Entscheidungen abUnabhängige Arbeit kann parallel delegiert werdenSequenziell, parallel oder beides, mit einem Oder mehreren Agent oder vielen

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 fortgefahren wird.
  • Überprüfen vieler geänderter Dateien in einer Pullanforderung parallel.
  • 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 übereinstimmen.
  • Eine große Codebasis in vielen Verzeichnissen gleichzeitig nach einem Muster durchsuchen – zum Beispiel nach fehlenden Tests oder Verwendungen einer API, die Sie entfernen.
  • 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 eine normale Eingabeaufforderung im Standardchatmodus aus.

Berechtigungen für dynamische Workflows

Die Subagenten eines dynamischen Workflows verwenden das Berechtigungssystem der CLI und erben die der Sitzung erteilten Berechtigungen, von der sie gestartet wurden. 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 in einer interaktiven Sitzung dazu aufgefordert werden Copilot . 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 in Copilot integrierten Dokumenterstellungsanleitung zu erstellen.

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 den Copilot Workflow erneut überprüfen, bevor Sie ihn erneut ausführen.

Verwenden Sie eine Anforderung für natürliche Sprachen, um Copilot die gespeicherte Definition des Workflows zu überarbeiten, anstatt einen Grenzwert für nur eine Ausführung außer Kraft zu setzen. Beispiel:

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, unabhängig davon, ob sie für eine Sitzung, in Ihrem persönlichen Erweiterungsverzeichnis oder in einem Projektrepository gespeichert wird. Neue Ausführungen verwenden die überarbeitete Version, sobald die aktualisierte Erweiterung geladen ist. 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 Autoren für Sie auf die aktuelle Sitzung beschränken. 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.

Dynamischen Workflow einschränken

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

  • Die maximale Anzahl workfloweigener Agenten, 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, die vor einer Pause verwendet wird. Die Zeit, während die Ausführung angehalten wird, zählt nicht.

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

    Hinweis

    Copilot verfolgt die von den Agenten des Workflows verwendeten Credits und lässt keine neue Arbeit mehr zu, sobald die Gesamtzahl das Limit erreicht. Die Nutzung wird nach dem Auftreten gemeldet, sodass die bereits ausgeführte Arbeit die Summe über das Limit hinaus nehmen kann. Dies ist ein ungefähres Maximum, nicht eine harte Obergrenze.

Grenzwerte können an drei Stellen definiert werden:

  • In Ihrer Eingabeaufforderung: Geben Sie einen Grenzwert in natürlicher Sprache innerhalb der Eingabeaufforderung an, die Sie zum Ausführen eines dynamischen Workflows verwenden. Beispiel:

    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 in der Eingabeaufforderung oder im Workflowcode angegeben ist.

    In Copilot CLI you can use the following keys with the /settings command to configure your personal default limits for dynamic workflows.

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

    Beispiel:

    /settings workflows.defaultLimits.timeoutSeconds 3600
    

Die Grenzwerte werden in der oben gezeigten Reihenfolge priorisiert. Wenn Sie einen Grenzwert in Ihrer Eingabeaufforderung angeben, überschreibt sie 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. Wenn Sie ihn erreichen, wird der Workflow nicht beendet.

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 eine Ausführung fortsetzen, die an einem Grenzwert angehalten wurde, erhöhen Sie diesen Grenzwert, um mehr Arbeit zu ermöglichen. Das neue Limit ist ein Gesamtlimit für den Lauf, einschließlich der Nutzung vor dem Anhalten, nicht ein neues Kontingent.

Verhindern der unerwarteten AI credit Nutzung

Ein Workflow, der viele Subagenten startet, kann lange dauern und eine große Menge an 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 umfangreichen 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.

Ansehen, Anhalten, Pausieren und Fortsetzen von Läufen

Sie können den /workflows Schrägstrichbefehl in einer Copilot CLI Sitzung oder die Schaltfläche "Workflows " in der Copilot appSchaltfläche "Workflows" 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 Statusansicht 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 von abgeschlossenen Schritten und Subagenten wiederverwenden. Arbeit, die nicht gespeichert wurde, muss möglicherweise erneut ausgeführt werden.

Weitere Informationen findest du unter Verwenden dynamischer Workflows.