Creează agenți GitHub Copilot personalizați în Visual Studio Code
Agenții custom sunt asistenți AI specializați pe care îi configurezi pentru anumite roluri sau fluxuri de lucru în Visual Studio Code. Fiecare agent cuprinde un set de instrucțiuni și permisiuni ale uneltelor care direcționează comportamentul GitHub Copilot pentru a acționa ca un anumit tip de expert. Când selectezi un agent personalizat în GitHub Copilot Chat, AI-ul adoptă persona acelui agent, urmează ghidurile sale și folosește doar instrumentele pe care i-le-ai atribuit.
Ce sunt agenții GitHub Copilot personalizați?
Un agent personalizat este o configurație personalizată care transformă GitHub Copilot Chat într-un asistent specific pentru rol. În loc să se bazeze pe un comportament general, un agent personalizat operează conform instrucțiunilor și constrângerilor pe care le definești tu. De exemplu, poți crea un agent "Security Reviewer" care analizează codul pentru vulnerabilități, un agent "Test Writer" care se concentrează pe generarea testelor unitare sau un agent "Planner" care produce planuri de implementare fără a modifica fișierele.
Agenții personalizați au fost introduși ca o funcție avansată în Visual Studio Code (disponibil începând cu versiunea 1.106 a Visual Studio Code, cunoscut anterior ca "moduri de chat personalizate"). Ele oferă dezvoltatorilor un control detaliat asupra modului în care operează AI-ul în diferite contexte de dezvoltare. Fiecare agent apare în meniul derulant GitHub Copilot Chat pentru agenți, unde îl poți selecta pentru a schimba modul AI-ului oricând.
Agenții de vamă pot fi stocați în două locații:
Agenți de spațiu de lucru: Stocați în folderul
.github/agents/depozitului tău. Acești agenți sunt împărtășiți cu echipa ta prin controlul versiunilor, asigurând că toți cei din proiect au acces la aceiași asistenți specializați.Agenți de profil de utilizator: Stocați în folderul de prompturi al profilului tău de utilizator în Visual Studio Code. Acești agenți sunt personali și disponibili în toate spațiile tale de lucru, utili pentru agenții care reflectă preferințele tale individuale de flux de lucru.
Examinează modul în care funcționează agenții vamaliști
Un agent custom este un fișier Markdown cu o .agent.md extensie. Visual Studio Code detectează automat orice .agent.md fișiere din folderul .github/agents/ spațiului tău de lucru (sau din profilul tău de utilizator) și le încarcă ca agenți disponibili în interfața GitHub Copilot Chat.
Fiecare fișier agent este format din două părți:
Un antet YAML frontmatter: Această secțiune specifică metadate care includ numele agentului, o descriere care apare în interfața de chat, instrumentele pe care le poate folosi, o preferință opțională pentru model și configurații de handoff pentru conectarea la alți agenți.
Un corp Markdown: Această secțiune conține instrucțiunile și contextul agentului. Conținutul este introdus la fiecare solicitare a utilizatorului ori de câte ori agentul este activ, ghidând modul în care GitHub Copilot interpretează și răspunde la cereri. Scrii aceste instrucțiuni în același stil de limbaj natural folosit pentru fișierele de instrucțiuni personalizate.
Câmpurile frontmatter ale agentului
Frontmatter-ul YAML suportă următoarele câmpuri pentru configurarea comportamentului agenților:
| Câmp | Descriere |
|---|---|
description |
O scurtă descriere afișată ca text provizoriu în intrarea de chat atunci când agentul este selectat. |
name |
Un nume de afișare opțional. Dacă este omis, se folosește numele fișierului (fără .agent.md). |
tools |
O gamă de instrumente pe care agentul le poate folosi, cum ar fi ['read', 'edit', 'search']. Omiterea acestui câmp oferă acces la toate instrumentele disponibile. |
model |
Un model AI preferat. Poate fi un singur șir de ID de model sau o matrice de ID-uri de model pentru rezervă (de exemplu, ['o4-mini', 'gpt-4.1']). |
agents |
O matrice de nume de agenți care pot fi invocate ca subagenți de către acest agent. |
handoffs |
O matrice de configurații de handoff care definesc tranzițiile către alți agenți (acoperite în următoarea unitate). |
argument-hint |
Text de indiciu afișat în intrarea chatului, care descrie ce ar trebui să scrie utilizatorul ca input pentru agent. |
user-invokable |
Un boolean care controlează dacă agentul apare în meniul derulant al agenților. Setați pentru false a crea agenți care pot fi numiți doar ca subagenți de către alți agenți. Implicit este .true |
disable-model-invocation |
Când este setat la true, agentul nu trimite prompturi către modelul de limbaj. Util pentru agenții care efectuează acțiuni exclusiv prin instrumente. |
target |
Specifică mediul de execuție pentru agent: client (rulează în Visual Studio Code, implicit) sau cloud (rulează în cloud). |
mcp-servers |
Un obiect care definește servere MCP (Model Context Protocol) la care agentul ar trebui să aibă acces. Serverele MCP extind capabilitățile agenților prin conectarea la unelte externe și surse de date. |
Următorul exemplu arată structura unui fișier agent personalizat folosind mai multe dintre aceste câmpuri:
---
description: Reviews code for security vulnerabilities and suggests improvements
tools: ['search', 'read']
---
# Security Reviewer
You are a senior security engineer. When the user provides code or asks you to review files, analyze the code for common security vulnerabilities including:
- SQL injection
- Cross-site scripting (XSS)
- Authentication and authorization flaws
- Insecure data handling
- Hardcoded credentials or secrets
Provide your findings as a structured list with severity levels (Critical, High, Medium, Low). For each finding, explain the vulnerability, show the affected code, and suggest a secure alternative.
Do not modify any files. Your role is advisory only.
Când un dezvoltator selectează acest agent în GitHub Copilot Chat, toate interacțiunile folosesc aceste instrucțiuni. Agentul "știe" că ar trebui să se concentreze pe analiza de securitate și nu va încerca să editeze fișiere deoarece instrucțiunile și setul de instrumente îl restricționează la operațiuni doar în citire.
Definiți capabilitățile agenților cu instrumente
Câmpul tools din frontmatter YAML controlează ce acțiuni poate efectua agentul. Uneltele determină dacă agentul poate citi fișiere, edita cod, căuta în baza de cod, rulează comenzi de terminal sau accesează alte funcționalități. Prin personalizarea listei de unelte, te asiguri că fiecare agent efectuează doar acțiuni relevante pentru rolul său.
Uneltele comune includ:
| Instrument | Descriere |
|---|---|
read |
Citește conținutul fișierului din spațiul de lucru |
edit |
Modifică fișierele în spațiul de lucru |
search |
Caută între fișierele workspace |
fetch |
Recuperează conținut din URL-uri |
terminal |
Rulează comenzi în terminal |
agent |
Invocă alți agenți ca subagenți |
Dacă omiți complet câmpul tools , agentul are acces implicit la toate uneltele standard. Totuși, listarea explicită a instrumentelor este o bună practică deoarece creează limite clare pentru comportamentul agentului. Un agent de planificare care nu ar trebui să modifice codul ar trebui să specifice doar ['search', 'read', 'fetch'], în timp ce un agent de implementare care trebuie să scrie cod ar include ['search', 'read', 'edit', 'terminal'].
Note
Dacă un instrument listat în configurația agentului nu este disponibil în mediul actual, este ignorat în tăcere. Asta înseamnă că poți defini agenți cu unelte care pot fi disponibile doar în anumite configurații, fără a cauza erori.
Subagenți
Câmpul agents din frontmatter-ul YAML permite unui agent să invoce alți agenți ca subagenți. Un subagent este un agent pe care un alt agent îl cheamă pentru a gestiona o subsarcină, apoi încorporează rezultatul în propriul său răspuns. Acest comportament este diferit de un handoff, care transferă controlul către utilizator; Un apel de subagent are loc în timpul procesării agentului și returnează rezultatul automat agentului apelant.
De exemplu, un agent "Lead Developer" ar putea invoca un subagent "Security Reviewer" pentru a verifica un fragment de cod, a primi concluziile și apoi a încorpora acele concluzii în răspunsul final — toate într-o singură interacțiune.
Pentru a configura subagenții, listați numele subagenților în agents câmp:
---
description: Lead developer agent that coordinates with specialists
tools: ['search', 'read', 'edit']
agents: ['security-reviewer', 'test-writer']
---
Agenții destinați doar ca subagenți pot fi setați user-invokable: false astfel încât să nu apară în meniul derulant al agenților, menținând interfața curată.
Note
Pentru a folosi subagenții, includeți instrumentul agent în lista agentului tools apelant (sau omiteți complet câmpul tools pentru a activa toate uneltele). Instrumentul agent permite unui agent să apeleze un alt agent programatic în timpul răspunsului său.
Agenți la nivel organizațional
Pentru echipele care mențin agenți partajați între mai multe depozite, GitHub suportă agenți la nivel de organizație. Acești agenți sunt configurați la nivel de organizație GitHub și apar automat alături de agenți de spațiu de lucru și profiluri de utilizator în Visual Studio Code atunci când ești conectat la un cont GitHub cu acces la organizație.
Agenții la nivel de organizație asigură coerența între echipe. De exemplu, o echipă de securitate poate publica un agent comun "Security Reviewer" pe care fiecare depozit din organizație îl poate folosi, garantând astfel că aceleași criterii de revizuire a securității sunt aplicate peste tot, fără a fi nevoie ca fiecare depozit să-și definească propriul agent.
Compatibilitatea formatelor agenților
Visual Studio Code recunoaște fișierele agent din acest .agent.md format ca fiind configurația principală. În plus, Visual Studio Code suportă fișiere agent în stil Claude care urmează formatul agent Claude Code. Dacă ai deja configurații de agenți de la Claude Code, acestea funcționează în GitHub Copilot Chat-ul Visual Studio Code fără modificări. Această compatibilitate încrucișată simplifică migrarea pentru echipele care folosesc mai multe instrumente AI.
Agenți încorporați vs. agenți custom
Visual Studio Code include mai mulți agenți încorporați care oferă configurații generale pentru chat. Acești agenți includ agentul implicit "GitHub Copilot" și agenți specializați pentru sarcini comune. Agenții custom extind acest sistem permițându-ți să-ți definești propriile roluri cu instrucțiuni specifice proiectului și configurații de unelte.
Agenții custom apar în meniul derulant GitHub Copilot Chat, alături de agenții încorporați. Poți comuta între orice agent oricând pentru a schimba modul în care funcționează AI-ul. Această flexibilitate îți permite să te muți între diferite moduri de lucru — planificare, programare, revizuire, testare — fără a părăsi interfața GitHub Copilot Chat.
Principalul avantaj al agenților custom față de agenții încorporați este specificitatea. Un agent de revizuire a codului încorporat aplică cele mai bune practici generale, în timp ce agentul tău personalizat "Code Reviewer" poate aplica lista specifică de revizuire a echipei tale, poate face referire la deciziile arhitecturale ale proiectului și se poate concentra pe tiparele și anti-tiparele care contează cel mai mult în baza ta de cod.
Pași pentru a crea un agent personalizat
Urmează acești pași pentru a crea un agent personalizat în Visual Studio Code:
Deschide meniul agenților: În panoul de chat GitHub Copilot, deschide meniul derulant pentru agenți (care de obicei arată numele curent al agentului). Selectează Configurează agenți custom și apoi alege Creeazăun nou agent personalizat. Alternativ, rulează
Chat: New Custom Agentcomanda din Paleta de comenzi (Ctrl+Shift+P).Alege scopul: Selectează unde să stochezi fișierul agentului. Alege Workspace pentru
.github/agents/a crea fișierul (făcându-l disponibil echipei tale prin controlul versiunilor) sau alege User profile pentru a-l face personal și disponibil în toate spațiile tale de lucru.Numește agentul: Introdu un nume descriptiv de fișier pentru agent. Acest nume apare ca numele implicit în meniul derulant al agenților. Folosește un nume care indică clar rolul agentului, cum ar
plannerfi ,code-reviewer, sautest-writer.Definește metadatele agentului: În frontmatter-ul YAML al fișierului nou creat
.agent.md, configurează proprietățile agentului. Setează undescriptiontext (acest text apare ca text provizoriu în intrarea chatului când agentul este selectat), specifică la cetoolsar trebui să aibă acces agentul și, opțional, setează un preferatmodelsau un configurarehandoffspentru alți agenți.Scrie instrucțiunile agentului: În corpul fișierului, sub frontmatter-ul YAML, oferă instrucțiunile personalizate pentru agent. Aceste instrucțiuni definesc personalitatea agentului, expertiza și ghidurile comportamentale. Scrie-le în Markdown folosind un limbaj clar și specific care să spună AI-ului cum să abordeze sarcinile, pe ce să se concentreze și ce constrângeri să urmeze.
Salvează și activează: Salvează fișierul. Agentul personalizat apare imediat în meniul derulant al agenților GitHub Copilot Chat (presupunând
user-invokablecă estetrue, care este implicit). Alege agentul pentru a începe să îl folosești.
Sfat
Poți introduce /agents GitHub Copilot Chat ca o scurtătură rapidă pentru a vizualiza și comuta între toți agenții disponibili, inclusiv agenți încorporați, de spațiu de lucru, profiluri de utilizator și agenți la nivel de organizație.
Abilități de agent
Abilitățile agenților sunt un concept înrudit, dar distinct față de agenții customizați. În timp ce agenții definesc o persoană prin instrucțiuni și unelte, abilitățile agenților (definite în SKILL.md dosare) descriu capacități specifice sau domenii de expertiză pe care un agent le poate folosi. Abilitățile oferă metadate structurate despre ceea ce știe și poate face un agent. Visual Studio Code suportă abilități ca parte a sistemului său mai larg de personalizare. Abilitățile sunt de obicei definite în spațiul tău de lucru și detectate automat de GitHub Copilot pentru a îmbunătăți răspunsurile agenților cu cunoștințe specializate.
Exemple de agenți vamași
Următoarele exemple ilustrează modul în care se definesc agenții pentru roluri comune de dezvoltare.
Agent "planificator"
Un agent Planificator se concentrează pe analiza cerințelor și generarea planurilor de implementare fără a modifica niciun cod. Folosește doar unelte de citire și include o predare către un agent de implementare pentru momentul în care planul este gata de executat.
---
description: Generates high-level implementation plans without writing code
tools: ['search', 'read', 'fetch']
handoffs:
- label: Start Implementation
agent: implementer
prompt: Now implement the plan outlined above.
send: false
---
# Planner
You are a senior software architect. When the user describes a feature or change, analyze the request and generate a detailed implementation plan.
Your plan should include:
1. A summary of the feature requirements.
2. A list of files that need to be created or modified.
3. Step-by-step implementation tasks in logical order.
4. Any potential risks or considerations.
Do not write or modify any code. Focus on planning only. Ask clarifying questions if the requirements are ambiguous.
Agent "Code Reviewer"
Un agent Code Reviewer examinează codul pentru probleme de calitate, vulnerabilități de securitate și respectarea celor mai bune practici. Folosește instrumente de citire și căutare, dar nu editează fișierele direct.
---
description: Reviews code for bugs, security issues, and style compliance
tools: ['search', 'read']
---
# Code Reviewer
You are an experienced code reviewer. When the user asks you to review code, examine it for:
- Bugs and logical errors
- Security vulnerabilities (SQL injection, XSS, authentication flaws)
- Performance issues
- Naming convention violations
- Missing error handling
- Code duplication
Present your findings as a structured review with severity levels. For each issue, explain the problem, show the affected code, and suggest an improvement. End with an overall assessment of code quality.
Aceste exemple pot fi adaptate pentru a se potrivi nevoilor specifice ale echipei tale. Principiul cheie este definirea unor instrucțiuni clare care să concentreze agentul pe o sarcină specifică și să configureze lista de unelte pentru a corespunde responsabilităților agentului.
Rezumat
Agenții personalizați în Visual Studio Code îți permit să definești personas AI specializate cu instrucțiuni și permisiuni adaptate pentru unelte. Prin crearea .agent.md fișierelor în spațiul tău de lucru sau profilul utilizatorului, poți construi agenți pentru roluri specifice de dezvoltare — planificare, implementare, revizuire, testare și altele. Fiecare agent operează în limitele pe care le definești, folosind doar instrumentele pe care le permiți și urmând instrucțiunile pe care le oferi. Funcționalități avansate precum subagenții, agenții la nivel de organizație și integrarea serverelor MCP extind ceea ce pot realiza agenții. Aceste capabilități îți oferă un control precis asupra modului în care se comportă GitHub Copilot în diferite etape ale fluxului tău de lucru de dezvoltare.