Grenzen und Schutzmaßnahmen für Agentenausführung

Abgeschlossen

Agents können Aktionen in Repositorys ausführen, diese Aktionen werden jedoch innerhalb von Plattformgrenzen und Schutzmaßnahmen ausgeführt. Auf GitHub arbeitet Copilot Cloud-Agent in einer GitHub Actions-basierten Umgebung, erstellt Änderungen an einer Verzweigung und bereitet diese Änderungen für die Überprüfung vor.

Es schließt Änderungen nicht eigenständig ab. Sie entscheiden, ob diese Änderungen zu einer Pullanforderung werden sollen.

In dieser Lektion lernen Sie Folgendes:

  • Welche Grenzwerte gelten für Agentaktionen
  • Wie Branch- und Repositoryeinschränkungen Codebasen schützen
  • Auswirkungen von Workflow- und Umgebungssteuerelementen auf agentgesteuerte Änderungen
  • Wie die menschliche Überprüfung Teil des Prozesses bleibt

Repository- und Verzweigungsgrenzen

Copilot Cloud-Agent hat nur Zugriff auf das Repository, in dem es arbeitet. Es kann nicht auf andere Repositorys zugreifen.

Änderungen werden in einem separaten Branch vorgenommen, nicht direkt auf dem Standardbranch wie main. Dadurch wird sichergestellt, dass alle Änderungen vor der Überprüfung isoliert sind.

Pullanforderungssteuerung

Wenn der Copilot Cloud-Agent seine Arbeit abgeschlossen hat, bereitet er die Änderungen für die Überprüfung vor, erstellt oder führt keine Pull-Anfrage automatisch zusammen.

Sie entscheiden, ob:

  • Pull-Request erstellen
  • Überprüfen der generierten Änderungen
  • Anfordern von Aktualisierungen oder Verwerfen der Arbeit

Dies hält die endgültige Entscheidung in der menschlichen Kontrolle.

Workflow-Kontrollen

Agent-Arbeit wird in Workflows ausgeführt, die von GitHub Actions unterstützt werden.

Repository- und Organisationseinstellungen können Folgendes steuern:

  • Welche Workflows zulässig sind
  • Welche Aktionen können ausgeführt werden
  • Was das GitHub-Token berechtigt ist zu tun

Diese Steuerelemente begrenzen, was der Agent über Workflows ausführen kann.

Ausführungs-Schutzmaßnahmen und Resilienzmuster.

Zusätzlich zu Grenzwerten auf Plattformebene sollten agentgesteuerte Workflows Sicherheitsvorkehrungen zum Behandeln von Fehlern, zur Vermeidung wiederholter Fehler und zur Sicherstellung der Verantwortlichkeit umfassen.

Fehlerbehandlung

Workflows sollten fehler während der Agentausführung explizit behandeln.

Dies kann beinhalten:

  • Schnelles Fehlschlagen, wenn ein Schritt zu Fehlern führt
  • Protokollierung aussagekräftiger Fehlermeldungen
  • Verhindern von teilweisen oder inkonsistenten Änderungen

Beispiel:

```
- run: | 
        npx @github/copilot-cli -p "Run task" 
continue-on-error: false
```

Dadurch wird sichergestellt, dass Fehler die Ausführung beenden, anstatt die Ausführung im Hintergrund fortzusetzen.

Erneute Versuche

Wiederholungen helfen bei der Behandlung temporärer Ausfälle wie Netzwerkfehler oder vorübergehende Fehler.

Sie können Wiederholungsversuche implementieren, indem Sie:

  • Erneutes Ausführen fehlgeschlagener Schritte
  • Verwenden der Wiederholungslogik in Skripts
  • Strukturieren von Workflows, um eine sichere Erneute Ausführung zu ermöglichen

Beispielmuster:

```
- name: Run agent task with retry 
run: | 
        for i in 1 2 3; 
            do npx @github/copilot-cli -p "Run task" && break 
            sleep 5 
        done
```

Dadurch kann der Workflow vorübergehende Probleme ohne manuelle Eingriffe überwinden.

Rückbuchungen / Zurücksetzungen

Wenn ein Agent falsche oder unsichere Änderungen erzeugt, stellen Rollbackmechanismen sicher, dass sich diese Änderungen nicht auf die Hauptcodebasis auswirken.

Rollback wird natürlich durch Folgendes unterstützt:

  • Verzweigungsbasierte Isolation
  • Überprüfung der Pull-Anforderung vor dem Zusammenführen

Zusätzliche Rollback-Strategien umfassen:

  • Schließen oder Verwerfen der Pullanforderung
  • Wiederherstellen von Commits, wenn Änderungen zusammengeführt werden

Eskalationspfade

Wenn ein Agent eine Aufgabe nicht abschließen kann oder auf Unsicherheiten stößt, stellt die Eskalation sicher, dass ein Mensch einsteigen kann.

Dies kann wie folgt implementiert werden:

  • Anfordern einer Überprüfung der Pullanforderung
  • Automatisches Zuweisen von Gutachtern
  • Verwenden von Workflowschritten zum Benachrichtigen von Betreuern

Die Eskalation stellt sicher, dass kritische Entscheidungen immer von Menschen getroffen werden.

Rückverfolgbarkeit und Rechenschaftspflicht

Alle Agentaktionen sollten nachverfolgbar und auditierbar sein.

GitHub bietet dies über:

  • Workflowprotokolle
  • Commit-Verlauf
  • Diskussionen zu Pull-Requests

Zur Verbesserung der Rückverfolgbarkeit:

  • Verwenden Sie klare Commit-Nachrichten
  • Änderungen auf einem Branch beschränken
  • Überprüfung aller Aktionen über Pull-Requests

Dadurch wird sichergestellt, dass jede Agentaktion überprüft, verstanden und zugeordnet werden kann.

Die Sicherheitsvorkehrungen wurden diskutiert, um sicherzustellen, dass die Agentenausführung:

  • Widerstandsfähig: Kann mit Fehlern und Wiederholungen umgehen
  • Kontrolliert: Verhindert unsichere Änderungen
  • Auditierbar: Alle Aktionen sind sichtbar und nachverfolgbar
  • Von Menschen gesteuert: Eskalation sorgt für Kontrolle.

Umweltschutz

Wenn vom Agent generierte Änderungen in Bereitstellungen verwendet werden, bieten Umgebungen zusätzliche Sicherheitsvorkehrungen.

Umgebungen können:

  • Genehmigungen anfordern, bevor Aufträge fortgesetzt werden
  • Einschränken des Zugriffs auf geheime Schlüssel
  • Steuerung der Bereitstellungsziele

Dadurch wird sichergestellt, dass vertrauliche Vorgänge nicht automatisch ausgeführt werden.

Sitzungssichtbarkeit

Die Agent-Ausführung ist sichtbar, während sie läuft.

Sie können:

  • Überwachen des Fortschritts durch Protokolle
  • Überprüfen der Aktionen des Agents
  • Bereitstellen von Nachverfolgungsaufforderungen zum Anpassen des Verhaltens

Diese Sichtbarkeit ermöglicht es Ihnen, während des gesamten Prozesses die Kontrolle zu behalten.

Triggerverhalten und Workflowbeschränkungen

Workflows, die mithilfe der GITHUB_TOKEN ausgelöst wurden, weisen Einschränkungen auf.

Die meisten Aktionen, die mit diesem Token ausgeführt werden, lösen keine zusätzlichen Workflowausführungen aus, wodurch unbeabsichtigte Schleifen oder wiederholte Ausführung verhindert werden.

Andere Authentifizierungsmethoden, z. B. GitHub App-Token oder persönliche Zugriffstoken (PATs), können abhängig von der Konfiguration zusätzliche Workflowausführungen auslösen. Dies ermöglicht zwar flexiblere Automatisierungsmuster, erfordert jedoch auch ein sorgfältiges Design, um rekursive Ausführungen oder unbeabsichtigte Automatisierungsschleifen zu vermeiden.

Sicheres Aktivieren von Aktionen eines Agenten

Agents können Aktionen ausführen, z. B.:

  • Branches erstellen
  • Aktualisieren von Code
  • Vorbereiten von Änderungen für die Überprüfung
  • Auslösen von Workflows durch Repositoryereignisse

Diese Aktionen werden durch folgende Mittel gesteuert:

  • Verzweigungsbasierte Isolation
  • Workflowüberprüfung
  • Überprüfung der Pull-Anforderung
  • Workflowberechtigungen

Durch die Kombination dieser Steuerelemente können Agentaktionen aktiviert werden, ohne uneingeschränkten Zugriff auf das Repository oder die Ausführungsumgebung zuzulassen.

Wichtige Kernpunkte

Die Agentausführung auf GitHub wird durch Repositorybereich, Verzweigungsisolation, Workflowberechtigungen, Umweltschutz und menschliche Entscheidungspunkte gesteuert. Agents bereiten Änderungen vor, aber Sie bleiben für die Überprüfung und Fertigstellung verantwortlich.