Uso responsabile dell'agente di codifica Di GitHub Copilot in GitHub.com
Informazioni su come usare l'agente di codifica Copilot in GitHub.com in modo responsabile comprendendone scopi, funzionalità e limitazioni.
Al termine di questa unità, si sarà in grado di:
- Comprendere lo scopo, le funzionalità e i limiti dell'agente di codifica Copilot in GitHub.com.
- Applicare procedure di utilizzo responsabile: attività di definizione dell'ambito, protezione degli ambienti e convalida dei risultati.
- Riconoscere misure di sicurezza, rischi e mitigazioni e dove migliorare le prestazioni.
Informazioni sull'agente di codifica Copilot in GitHub.com
L'agente di codifica Copilot è un agente di sviluppo software autonomo e asincrono integrato in GitHub. L'agente può raccogliere un'attività da un problema o da Copilot Chat, creare una richiesta pull e quindi eseguire l'iterazione sulla richiesta pull in risposta ai commenti.
L'agente di codifica Copilot può generare modifiche personalizzate in base alla descrizione e alle configurazioni, incluse attività come correzioni di bug, implementazione di nuove funzionalità incrementali, creazione di prototipi, documentazione e manutenzione della codebase. Dopo aver creato la richiesta pull iniziale, l'agente può collaborare con te, basandosi sul tuo feedback e sulle revisioni.
Durante lo svolgimento del compito, l'agente può accedere al proprio ambiente di sviluppo effimero in cui può apportare modifiche al codice, eseguire test automatizzati ed eseguire linter. L'agente è stato valutato in un'ampia gamma di linguaggi di programmazione, con l'inglese come linguaggio principale supportato.
Funzionamento dell'agente (end-to-end)
Elaborazione dei prompt
L'attività fornita a Copilot tramite un issue, un commento di pull request o un messaggio di Chat di Copilot viene combinata con altre informazioni contestuali pertinenti per creare un prompt. Gli input possono assumere la forma di linguaggio naturale normale, frammenti di codice o immagini.
Analisi del modello linguistico
Il prompt viene quindi passato attraverso un modello linguistico di grandi dimensioni, che analizza l'input per aiutare l'agente a ragionare sull'attività e sfruttare gli strumenti necessari.
Generazione della risposta
Il modello linguistico genera una risposta in base all'analisi del prompt. Questa risposta può assumere la forma di suggerimenti per il linguaggio naturale e suggerimenti di codice.
Formattazione dell'output
Al termine della prima esecuzione, l'agente aggiornerà la descrizione della richiesta pull con le modifiche apportate. L'agente può includere informazioni supplementari sulle risorse a cui non è stato possibile accedere e fornire suggerimenti sui passaggi da risolvere.
È possibile fornire feedback all'agente commentando all'interno della richiesta pull o menzionando esplicitamente l'agente (@copilot). L'agente invierà quindi di nuovo il feedback al modello linguistico per ulteriori analisi. Una volta completate le modifiche in base al feedback, l'agente risponderà al commento con le modifiche aggiornate.
Copilot è progettato per offrire la soluzione più pertinente per la risoluzione delle attività. Tuttavia, potrebbe non sempre fornire la risposta che si sta cercando. L'utente è responsabile della revisione e della convalida delle risposte generate da Copilot per assicurarsi che siano accurate e appropriate. Inoltre, nell'ambito del processo di sviluppo del prodotto, GitHub si impegna a eseguire il red teaming, ovvero un tipo di test, per comprendere e migliorare la sicurezza dell'agente software.
Casi d'uso per l'agente di codifica Copilot
- Manutenzione codebase: Correzioni di sicurezza, aggiornamenti delle dipendenze e refactoring mirato.
- Documentazione: Aggiornamento e creazione di una nuova documentazione.
- Sviluppo di funzionalità: Implementazione di richieste di funzionalità incrementali.
- Miglioramento della copertura dei test: Sviluppo di gruppi di test aggiuntivi per la gestione della qualità.
- Prototipazione di nuovi progetti: sviluppo di nuovi concetti da zero.
Miglioramento delle prestazioni per l'agente di codifica Copilot
Per migliorare le prestazioni e risolvere le limitazioni, usare queste misure:
Assicuratevi che le attività abbiano un ambito ben definito fornendo:
- Descrizione chiara del problema da risolvere o del lavoro richiesto.
- Completare i criteri di accettazione in base all'aspetto di una soluzione valida(ad esempio, devono essere presenti unit test?).
- Suggerimenti e puntatori su quali file necessitano di modifiche.
Personalizzare l'esperienza con contesto aggiuntivo
L'agente di codifica Copilot sfrutta la richiesta, i commenti e il codice del repository come contesto durante la generazione di modifiche suggerite. Migliorare i risultati aggiungendo istruzioni personalizzate di Copilot in modo che l'agente comprenda come compilare, testare e convalidare le modifiche.
Altre personalizzazioni utili:
- Personalizzazione dell'ambiente di sviluppo per l'agente di codifica Di GitHub Copilot
- Personalizzazione o disabilitazione del firewall per l'agente di codifica Di GitHub Copilot
- Estensione dell'agente di codifica Di GitHub Copilot con il protocollo MCP (Model Context Protocol)
Usare l'agente di codifica Copilot come strumento, non come sostituzione
Esaminare e testare sempre il contenuto generato dall'agente per assicurarsi che soddisfi i propri requisiti ed è privo di errori o problemi di sicurezza prima dell'unione.
Usare procedure di codifica e revisione del codice sicure
Anche se l'agente di codifica Copilot può generare codice sintatticamente corretto, potrebbe non essere sempre sicuro. Continuare a seguire le procedure consigliate per la codifica sicura (evitare segreti hardcoded, prevenire vulnerabilità di inserimento) e applicare test rigorosi, analisi IP e controlli delle vulnerabilità.
Inviare commenti e suggerimenti
Se si verificano problemi o limitazioni, usare l'icona a forma di cursore sotto una risposta dell'agente o condividere commenti e suggerimenti nel forum di discussione della community.
Rimanere aggiornati
L'agente di codifica Copilot sta evolvendo. Monitorare i nuovi rischi e le procedure consigliate per la sicurezza man mano che emergono.
Misure di sicurezza per l'agente di codifica Copilot
Evitare l'escalation dei privilegi
- L'agente di codifica Copilot risponderà solo alle interazioni degli utenti con accesso in scrittura.
- I flussi di lavoro delle azioni attivati dalle richieste pull dell'agente richiedono l'approvazione da parte di un utente con autorizzazione in scrittura prima dell'esecuzione.
- I caratteri nascosti (non sottoposti a rendering su GitHub.com) vengono filtrati per ridurre i rischi di inserimento di prompt.
Vincolare le autorizzazioni di Copilot
- L'agente accede solo al repository in cui sta creando una richiesta pull; non può accedere ad altri repository.
- I push sono limitati ai rami con nomi che iniziano con copilot/ (non il ramo predefinito).
- L'agente non ha accesso ai segreti o alle variabili delle azioni dell'organizzazione o del repository in fase di esecuzione. Solo i segreti/variabili aggiunti all'ambiente copilot vengono passati all'agente.
Prevenzione dell'esfiltrazione di dati
Un firewall è abilitato per impostazione predefinita per impedire l'esfiltrazione accidentale o dannosa di codice o dati sensibili. Vedere Personalizzazione o disabilitazione del firewall per l'agente di codifica di GitHub Copilot.
Limitazioni dell'agente di codifica Copilot
A seconda della codebase e degli input, le prestazioni possono variare. Tenere presenti questi vincoli:
- Ambito limitato e qualità: LLM potrebbe non gestire determinate strutture di codice o linguaggi oscuri; la qualità varia in base alla copertura della lingua.
- Potenziali distorsioni: I dati di training e il contesto recuperato possono includere distorsioni; l'agente può sporgersi verso determinate lingue o stili.
- Rischi per la sicurezza: Il codice generato si basa sul contesto del repository e potrebbe esporre informazioni sensibili se non esaminate; è necessaria una revisione approfondita.
- Codice impreciso: Il codice può apparire corretto, ma semanticamente/sintatticamente errato o non allineato con la finalità. Convalidare l'adattamento, i modelli e lo stile.
- Codice pubblico: L'agente può produrre corrispondenze/corrispondenze vicine al codice pubblico anche se è impostato "Blocca". Non è possibile fornire riferimenti.
- Legale/normativo: Garantire la conformità agli obblighi applicabili; evitare usi vietati in termini di servizio e codici di comportamento.