Grenzen und Schutzmaßnahmen für Agentenausführung
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.