Agentuitvoeringslimieten en -beveiligingen

Voltooid

Agents kunnen acties uitvoeren in opslagplaatsen, maar deze acties worden uitgevoerd binnen platformlimieten en -beveiligingen. Op GitHub werkt de Copilot-cloudagent binnen een GitHub Actions-omgeving, worden wijzigingen aangebracht in een vertakking, en worden die wijzigingen voorbereid voor controle.

Het voltooit wijzigingen niet zelf. U bepaalt of deze wijzigingen een pull-aanvraag moeten worden.

In deze les leert u het volgende:

  • Welke limieten worden gesteld voor agentacties
  • Hoe vertakkings- en opslagplaatsbeperkingen codebases beveiligen
  • Hoe werkstroom- en omgevingsbesturingselementen invloed hebben op door agents gestuurde wijzigingen
  • Hoe menselijke beoordeling onderdeel blijft van het proces

Limieten voor opslagplaatsen en vertakkingen

Copilot cloudagent heeft alleen toegang tot de opslagplaats waar deze werkt. Er is geen toegang tot andere opslagplaatsen.

De wijzigingen worden aangebracht in een afzonderlijke branch, niet rechtstreeks op de standaardbranch, zoals de main branch. Dit zorgt ervoor dat alle wijzigingen worden geïsoleerd voordat ze worden beoordeeld.

Beheer van pull-aanvragen

Wanneer de Copilot cloud agent klaar is met het werk, worden de wijzigingen voorbereid voor controle, maar wordt er niet automatisch een pull request gemaakt of samengevoegd.

U bepaalt of u het volgende wilt doen:

  • Een pull-aanvraag maken
  • De gegenereerde wijzigingen controleren
  • Updates aanvragen of het werk verwijderen

Dit houdt de laatste beslissing in menselijke controle.

Werkstroomcontroles

Werk van agent wordt uitgevoerd binnen werkstromen die worden aangedreven door GitHub Actions.

Instellingen voor opslagplaatsen en organisaties kunnen het volgende controleren:

  • Welke werkstromen zijn toegestaan
  • Welke acties kunnen worden uitgevoerd
  • Wat de GITHUB_TOKEN mag doen

Deze besturingselementen beperken wat de agent kan uitvoeren via werkstromen.

Uitvoeringsbeveiligingen en tolerantiepatronen.

Naast limieten op platformniveau moeten door agents gestuurde werkstromen beveiligingen bevatten voor het afhandelen van fouten, het voorkomen van herhaalde fouten en het garanderen van verantwoordelijkheid.

Foutafhandeling

Werkstromen moeten fouten expliciet verwerken tijdens de uitvoering van de agent.

Dit kan het volgende omvatten:

  • Snel mislukken wanneer er fouten optreden in een stap
  • Zinvolle foutberichten logboek bijhouden
  • Gedeeltelijke of inconsistente wijzigingen voorkomen

Voorbeeld:

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

Dit zorgt ervoor dat fouten de uitvoering stoppen in plaats van stil te blijven.

Hernieuwde pogingen

Nieuwe pogingen helpen bij het afhandelen van tijdelijke fouten, zoals netwerkproblemen of tijdelijke fouten.

U kunt herhalingen implementeren door:

  • Opnieuw uitvoeren van mislukte stappen
  • Herhaal logica gebruiken in scripts
  • Werkstromen structureren om veilige heruitvoering mogelijk te maken

Voorbeeldpatroon:

```
- 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
```

Hierdoor kan de werkstroom worden hersteld na tijdelijke problemen zonder handmatige tussenkomst.

Terugdraaiversies

Als een agent onjuiste of onveilige wijzigingen produceert, zorgen rollback-mechanismen ervoor dat deze wijzigingen geen invloed hebben op de hoofdcodebasis.

Terugdraaien wordt natuurlijk ondersteund via:

  • Op branches gebaseerde isolatie
  • Beoordeling van pull-aanvragen vóór samenvoegen

Extra terugdraaistrategieën zijn onder andere:

  • De pull-aanvraag sluiten of verwijderen
  • Commits terugdraaien als wijzigingen worden gemixt

Escalatiepaden

Wanneer een agent een taak niet kan voltooien of onzekerheid ondervindt, zorgt escalatie ervoor dat een mens kan instappen.

Dit kan worden geïmplementeerd door:

  • Controle van pull-aanvragen vereisen
  • Revisoren automatisch toewijzen
  • Werkstroomstappen gebruiken om onderhouders op de hoogte te stellen

Escalatie zorgt ervoor dat kritieke beslissingen altijd door mensen worden afgehandeld.

Traceerbaarheid en verantwoordelijkheid

Alle agentacties moeten traceerbaar en controleerbaar zijn.

GitHub biedt dit via:

  • Werkstroomlogboeken
  • Doorvoergeschiedenis
  • Discussies over pull-aanvragen

Traceerbaarheid verbeteren:

  • Duidelijke doorvoerberichten gebruiken
  • Wijzigingen binnen het bereik van een vertakking behouden
  • Alle acties bekijken via pull-aanvragen

Dit zorgt ervoor dat elke agentactie kan worden geïnspecteerd, begrepen en toegeschreven.

Deze beveiligingsmaatregelen hebben we besproken om ervoor te zorgen dat de uitvoering van de agenten als volgt is:

  • Tolerant: kan fouten en nieuwe pogingen verwerken
  • Gecontroleerd: voorkomt onveilige wijzigingen
  • Controleerbaar: alle acties zijn zichtbaar en traceerbaar
  • Door mensen bestuurd: escalatie zorgt voor toezicht

Omgevingsbeveiligingen

Als door agents gegenereerde wijzigingen worden gebruikt in implementaties, bieden omgevingen extra beveiliging.

Omgevingen kunnen:

  • Vereist goedkeuringen voordat taken worden voortgezet
  • Toegang tot geheimen beperken
  • Implementatiedoelen beheren

Dit zorgt ervoor dat gevoelige bewerkingen niet automatisch worden uitgevoerd.

Zichtbaarheid van sessie

Agentuitvoering is zichtbaar terwijl deze wordt uitgevoerd.

U kunt:

  • Voortgang bewaken via logboeken
  • De acties van de agent controleren
  • Geef vervolgprompts op om het gedrag aan te passen

Dankzij deze zichtbaarheid kunt u gedurende het hele proces de controle houden.

Triggergedrag en werkstroomlimieten

Werkstromen die worden geactiveerd met behulp van de GITHUB_TOKEN beperkingen hebben.

De meeste acties die met dit token worden uitgevoerd, activeren geen extra werkstroomuitvoeringen, waardoor onbedoelde lussen of herhaalde uitvoeringen worden voorkomen.

Andere verificatiemethoden, zoals GitHub App-tokens of persoonlijke toegangstokens (PAT's), kunnen extra werkstroomuitvoeringen activeren, afhankelijk van de configuratie. Hoewel dit flexibelere automatiseringspatronen mogelijk maakt, vereist het ook zorgvuldig ontwerp om recursieve uitvoeringen of onbedoelde automatiseringslussen te voorkomen.

Agentacties veilig inschakelen

Agents kunnen acties uitvoeren zoals:

  • Vertakkingen maken
  • Code bijwerken
  • Wijzigingen voorbereiden voor revisie
  • Werkstromen activeren via repositorygebeurtenissen

Deze acties worden beheerd via:

  • Op branches gebaseerde isolatie
  • Werkstroomvalidatie
  • Beoordeling van pull request
  • Werkprocesmachtigingen

Door deze besturingselementen te combineren, kunnen agentacties worden ingeschakeld zonder onbeperkte toegang tot de opslagplaats of uitvoeringsomgeving toe te staan.

Belangrijkste bevinding

Agentuitvoering op GitHub wordt beheerd via opslagplaatsbereik, vertakkingsisolatie, werkstroommachtigingen, omgevingsbeveiligingen en menselijke beslissingspunten. Agents bereiden wijzigingen voor, maar u blijft verantwoordelijk voor het controleren en voltooien ervan.