Begränsningar och skydd vid agentexekvering

Slutförd

Agenter kan vidta åtgärder på lagringsplatser, men dessa åtgärder körs inom plattformsgränser och skydd. På GitHub fungerar Copilot molnagent i en GitHub Actions-baserad miljö, skapar ändringar på en gren och förbereder ändringarna för granskning.

Den slutför inte ändringar på egen hand. Du bestämmer om ändringarna ska bli en pull-förfrågan.

I den här lektionen får du lära dig:

  • Vilka gränser har satts för agentåtgärder
  • Hur begränsningar för förgrening och lagringsplats skyddar kodbaser
  • Hur arbetsflödes- och miljökontroller påverkar agentdrivna ändringar
  • Hur mänsklig granskning förblir en del av processen

Begränsningar för repository och branch

Copilot molnagenten har bara åtkomst till lagringsplatsen där den fungerar. Den kan inte komma åt andra lagringsplatser.

Dess ändringar görs på en separat gren, inte direkt på standardgrenen, till exempel main. Detta säkerställer att alla ändringar är isolerade före granskning.

Kontroll av pull-förfrågan

När Copilot molnagenten har slutfört sitt arbete förbereder den ändringarna för granskning, men den skapar eller sammanfogar inte automatiskt en pull-begäran.

Du bestämmer om du vill:

  • Skapa en pull-begäran
  • Granska de genererade ändringarna
  • Begär uppdateringar eller ignorera arbetet

Detta håller det slutliga beslutet i mänsklig kontroll.

Arbetsflödeskontroller

Agentarbete körs i arbetsflöden som drivs av GitHub Actions.

Inställningar för lagringsplats och organisation kan styra:

  • Vilka arbetsflöden som tillåts
  • Vilka åtgärder kan köras
  • Vad GITHUB_TOKEN tillåts göra

Dessa kontroller begränsar vad agenten kan köra via arbetsflöden.

Körningsskydd och resiliensmönster.

Förutom gränser på plattformsnivå bör agentdrivna arbetsflöden innehålla skydd för att hantera fel, förhindra upprepade fel och säkerställa ansvarsskyldighet.

Felhantering

Arbetsflöden ska uttryckligen hantera misslyckanden under agentkörning.

Detta kan omfatta:

  • Misslyckas snabbt när ett steg stöter på fel
  • Logga meningsfulla felmeddelanden
  • Förhindra partiella eller inkonsekventa ändringar

Exempel:

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

Detta säkerställer att fel stoppar körningen istället för att fortsätta obemärkt.

Omförsökningar

Återförsök hjälper till att hantera tillfälliga fel, till exempel nätverksproblem eller tillfälliga fel.

Du kan implementera återförsök genom att:

  • Omkörning av misslyckade steg
  • Använda logik för återförsök i skript
  • Strukturera arbetsflöden för att möjliggöra säker omkörning

Exempelmönster:

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

På så sätt kan arbetsflödet återställas från tillfälliga problem utan manuella åtgärder.

Återgångar

Om en agent skapar felaktiga eller osäkra ändringar ser återställningsmekanismerna till att dessa ändringar inte påverkar huvudkodbasen.

Återställning stöds naturligt genom:

  • Grenbaserad isolering
  • Granskning av pull-begäran före sammanslagning

Extra återställningsstrategier är:

  • Stänga eller ta bort pull-begäran
  • Återställa åtaganden om ändringar sammanfogas

Eskaleringsvägar

När en agent inte kan slutföra en uppgift eller stöter på osäkerhet säkerställer eskalering att en människa kan gå in.

Detta kan implementeras genom att:

  • Kräver granskning av pull request
  • Tilldela granskare automatiskt
  • Använda arbetsflödessteg för att meddela underhållarna

Eskalering säkerställer att kritiska beslut alltid hanteras av människor.

Spårbarhet och ansvarsskyldighet

Alla agentåtgärder ska vara spårningsbara och granskningsbara.

GitHub tillhandahåller detta via:

  • Arbetsflödesloggar
  • Incheckningshistorik
  • Diskussioner om pull-begäranden

Så här förbättrar du spårningsbarheten:

  • Använd tydliga commit-meddelanden
  • Behåll ändringar som är begränsade till en gren
  • Granska alla åtgärder via pull-begäranden

Detta säkerställer att varje agentåtgärd kan inspekteras, förstås och tillskrivas.

De här skyddsåtgärderna diskuterade vi för att säkerställa att agentkörningen är:

  • Elastisk: kan hantera fel och återförsök
  • Kontrollerad: förhindrar osäkra ändringar
  • Granskningsbar: alla åtgärder är synliga och spårbara
  • Människostyrt: eskalering säkerställer tillsyn

Miljöskydd

Om agentgenererade ändringar används i distributioner ger miljöer extra skydd.

Miljöer kan:

  • Kräv godkännanden innan jobben fortsätter
  • Begränsa åtkomsten till hemligheter
  • Kontrollera mål för implementering

Detta säkerställer att känsliga åtgärder inte körs automatiskt.

Sessionssynlighet

Agentkörning visas när den körs.

Du kan:

  • Övervaka förloppet via loggar
  • Granska agentens åtgärder
  • Ange uppföljningsprompter för att justera beteendet

Med den här synligheten kan du behålla kontrollen under hela processen.

Begränsningar för triggerbeteende och arbetsflöde

Arbetsflöden som utlöses med hjälp av GITHUB_TOKEN har begränsningar.

De flesta åtgärder som utförs med den här token utlöser inte extra arbetsflödeskörningar, vilket förhindrar oavsiktliga loopar eller upprepad körning.

Andra autentiseringsmetoder, till exempel GitHub apptoken eller personliga åtkomsttoken (PAT) kan utlösa extra arbetsflödeskörningar beroende på konfiguration. Detta möjliggör mer flexibla automatiseringsmönster, men det kräver också noggrann design för att undvika rekursiva körningar eller oavsiktliga automationsloopar.

Aktivera agenternas handlingsmöjligheter på ett säkert sätt

Agenter kan utföra åtgärder som:

  • Skapa grenar
  • Uppdatera kod
  • Förbereda ändringar för granskning
  • Utlösa arbetsflöden via lagringsplatshändelser

Dessa åtgärder styrs genom:

  • Grenbaserad isolering
  • Arbetsflödesverifiering
  • Granskning av pull-begäran
  • Arbetsflödesbehörigheter

Genom att kombinera dessa kontroller kan agentåtgärder aktiveras utan obegränsad åtkomst till lagringsplatsen eller körningsmiljön.

Viktig insikt

Agentkörning på GitHub styrs via lagringsplatsomfång, grenisolering, arbetsflödesbehörigheter, miljöskydd och mänskliga beslutspunkter. Agenter förbereder ändringar, men du ansvarar fortfarande för att granska och slutföra dem.