Come interagiscono gli agenti con le API e i flussi di lavoro GitHub
Gli agenti di intelligenza artificiale stanno cambiando il modo in cui viene eseguito il lavoro di sviluppo. Anziché spostarsi manualmente nei repository, scrivere codice ed eseguire comandi, gli agenti possono operare direttamente all'interno di GitHub per completare le attività dall'inizio alla fine.
GitHub supporta il lavoro basato su agente tramite più livelli. Gli agenti possono usare le API GitHub per leggere lo stato del repository ed eseguire azioni, flussi di lavoro di GitHub Actions per eseguire l'automazione nei runner controllati e i GitHub Workflows Agenti per descrivere le attività del repository di livello superiore in Markdown ed eseguirle con agenti di codifica sotto forti barriere di protezione. Invece di ignorare GitHub, gli agenti usano gli stessi sistemi usati dagli sviluppatori, inclusi rami, richieste pull, problemi e automazione.
In questa unità si apprenderà quanto segue:
- Interazione degli agenti con GitHub tramite LE API
- Come gli agenti usano i flussi di lavoro come ambienti di esecuzione
- Modalità di creazione e gestione delle modifiche del repository
- Ecco come appare un flusso di esecuzione completo dell'agente su GitHub
Interazione degli agenti con GitHub
Gli agenti di GitHub, come l'agente cloud Copilot, operano all'interno di un repository definito e di un contesto di ramo. Quando si assegna un'attività, ad esempio tramite un problema o un prompt, l'agente inizia a lavorare all'interno di tale repository.
Gli agenti possono:
- Ricerca e comprendi il repository
- Pianificare le modifiche necessarie per completare un'attività
- Apportare modifiche al codice in un nuovo ramo
- Aprire una richiesta pull per la revisione
Gli agenti eseguono queste azioni usando GitHub funzionalità della piattaforma, ad esempio API e flussi di lavoro.
Queste azioni possono essere attivate da eventi del repository (ad esempio push o richiesta pull), eseguiti in base a una pianificazione o orchestrati tramite flussi di lavoro agenti che automatizzano continuamente le attività del repository nel tempo.
Uso delle API GitHub per eseguire azioni
GitHub fornisce API che consentono ai sistemi di interagire con i repository a livello di codice.
Le API abilitano azioni come:
- Creazione di branch e commit
- Lettura dei dati del repository
- Apertura e aggiornamento delle pull request
- Attivazione di flussi di lavoro
Tutte le richieste API devono essere autenticate usando token come token di accesso personale, token di GitHub app o il GITHUB_TOKEN fornito nei flussi di lavoro.
Ciò garantisce che ogni azione eseguita da un agente sia controllata dall'autorizzazione e controllabile.
Come gli agenti creano modifiche in un repository
Quando un agente apporta modifiche, segue lo stesso flusso di lavoro di uno sviluppatore. Una sequenza tipica è simile alla seguente:
- Selezionare un ramo di base
- Creare un nuovo ramo di lavoro
- Modificare o creare file
- Confermare le modifiche
- Aprire una richiesta pull
Per ognuno di questi passaggi sono disponibili operazioni API separate, tra cui l'uso di riferimenti Git, contenuto del repository e richieste pull.
Ciò significa che le azioni dell'agente sono completamente allineate al modello di sviluppo standard di GitHub.
Uso di GitHub Actions come livello di esecuzione
Gli agenti non eseguono attività direttamente nel computer. Al contrario, GitHub fornisce ambienti di esecuzione tramite flussi di lavoro basati su GitHub Actions.
Un flusso di lavoro è un processo definito da YAML che esegue processi in risposta agli eventi.
Gli agenti si basano su questi flussi di lavoro per:
- Esecuzione dei test
- Convalidare le modifiche
- Eseguire attività di automazione
- Distribuire applicazioni
Copilot agente cloud opera in un ambiente basato su GitHub Actions, il che significa che i flussi di lavoro costituiscono la base dell'esecuzione dell'agente.
Flussi di lavoro tradizionali e flussi di lavoro agenti
I flussi di lavoro GitHub Actions tradizionali sono in genere deterministici e definiti da YAML: si specificano in modo esplicito ogni passaggio, trigger e condizione. I flussi di lavoro agenziali di GitHub aggiungono un modello diverso per l'automazione del repository. Consentono di descrivere il risultato desiderato in Markdown, definire protezioni in primo piano ed eseguire tale finalità usando un agente di codifica in GitHub Actions. Sono più adatti alle attività di repository aperte ma delimitate, ad esempio valutazione, creazione di report, manutenzione della documentazione, analisi degli errori CI e miglioramento del codice. Non sostituiscono le pipeline CI/CD; le estendono con ciò che GitHub descrive come "intelligenza artificiale continua".
Cosa rende diverso un flusso di lavoro agentico
Un flusso di lavoro agente GitHub ha due parti principali:
- Frontmatter per la configurazione, ad esempio trigger, autorizzazioni, strumenti e output sicuri
- Istruzioni markdown che descrivono il processo in linguaggio naturale
Markdown esprime la finalità, mentre il frontmatter definisce i limiti. Il flusso di lavoro viene quindi compilato in un file di lock che viene eseguito da GitHub Actions.
on: schedule: daily
permissions: contents: read issues: read pull-requests: read
safe-outputs: create-issue: title-prefix: "[repo-status] " labels: [report]
tools: github:
Daily Repository Status Report
Create a daily report for maintainers.
Include:
Recent activity (issues, PRs, commits)
Key highlights and risks
Recommended next steps
Keep the report concise and link to relevant issues and pull requests.
In questo esempio, il frontmatter (tra ---) definisce come e quando viene eseguito il flusso di lavoro, cosa può accedere e quali azioni sono consentite.
Il markdown seguente definisce la finalità del flusso di lavoro nel linguaggio naturale. Un agente interpreta questa finalità e produce output strutturati, che vengono quindi applicati tramite passaggi controllabili e controllabili.
A differenza dei flussi di lavoro GitHub Actions tradizionali, che definiscono in modo esplicito ogni passaggio, i flussi di lavoro agentici si concentrano sulla descrizione dei risultati. L'agente determina come raggiungere l'obiettivo all'interno dei vincoli definiti nel frontmatter.
Attivazione e interazione con i flussi di lavoro
I flussi di lavoro possono essere attivati in diversi modi:
- Automaticamente tramite eventi come push o pull request.
- Uso manuale dell'evento workflow_dispatch
- A livello di codice tramite l'API GitHub
Gli agenti possono basarsi su questi trigger per eseguire attività o convalidare le modifiche dopo aver apportato aggiornamenti a un repository.
Ogni esecuzione del flusso di lavoro esegue processi in ambienti isolati, garantendo un'esecuzione coerente e sicura.
Cosa accade durante una sessione di un agente
Le sessioni dell'agente sono osservabili e interattive.
Durante una sessione, è possibile:
- Monitorare lo stato di avanzamento tramite un log di sessione
- Visualizzare le azioni eseguite dall'agente
- Fornire commenti e suggerimenti o modificare l'attività
- Esaminare la richiesta di pull finale
L'agente si adatta in base al feedback e continua a funzionare fino al completamento dell'attività.
Flusso di esecuzione integrale dell'agente
Mettendo tutto insieme, un'interazione tipica dell'agente con GitHub ha un aspetto simile al seguente:
- Un'attività viene assegnata tramite un problema, una chat o un'interfaccia della riga di comando
- L'agente seleziona il repository e il ramo di base
- L'agente analizza la codebase e i piani cambiano
- Le operazioni API vengono usate per creare rami e commit
- Viene aperta una richiesta pull
- Flussi di lavoro eseguiti per convalidare o distribuire le modifiche
- L'utente esamina, approva o richiede aggiornamenti
Questo flusso garantisce che tutte le attività dell'agente siano:
- Ambito di applicazione di un repository
- Controllato dalle autorizzazioni
- Esecuzione tramite flussi di lavoro
- Visibile e verificabile
Punto chiave
Gli agenti in GitHub non funzionano all'esterno della piattaforma. Interagiscono tramite API, flussi di lavoro e strutture di repository che applicano le autorizzazioni, forniscono ambienti di esecuzione e consentono la collaborazione tramite richieste pull.
Successivamente, si apprenderà come Il protocollo MCP (Model Context Protocol) estende queste funzionalità consentendo agli agenti di connettersi a strumenti e servizi aggiuntivi oltre GitHub.