Estensibilità e personalizzazione
Estendi le funzionalità di Verdent tramite sottoagenti personalizzati, regole e integrazione MCP
Cosa imparerai
Come personalizzare ed estendere Verdent for VS Code usando tre potenti metodi di estensibilità: sottoagenti personalizzati, sistemi di regole e integrazione MCP.
Panoramica sull'estensibilità
Verdent for VS Code offre tre metodi principali per estendere le sue funzionalità e personalizzarne il comportamento:
- Sottoagenti personalizzati - Crea agenti AI specializzati per attività specifiche di dominio
- Sistema di regole - Guida il comportamento tramite VERDENT.md, AGENTS.md e plan_rules.md
- Integrazione MCP - Collega strumenti e servizi esterni tramite Model Context Protocol
Ogni metodo risponde a esigenze di personalizzazione diverse e può essere combinato per un'ottimizzazione completa del flusso di lavoro.
Metodo 1: sottoagenti personalizzati
Panoramica
I sottoagenti personalizzati sono agenti AI specializzati con prompt di sistema dedicati, criteri di invocazione ed esperienza specifica per determinate attività. Estendono i sottoagenti integrati di Verdent (@Verifier, @Explorer, @Code-reviewer) con funzionalità specifiche del progetto.
Posizione di archiviazione: ~/.verdent/subagents/
Creare sottoagenti personalizzati
Struttura dei file:
---
name: subagent-name
description: One-line purpose description
---
# System Prompt
[Behavior definition, personality, task interpretation approach]
Invocation policy (strict|flexible): Policy description
When to use:
- Scenario 1
- Scenario 2
When NOT to use:
- Avoid scenario 1
- Avoid scenario 2Metodi di creazione:
Metodo 1: menu delle impostazioni
- Settings → Subagents
- "Create new subagent"
- Definisci nome, descrizione e prompt di sistema
- Configura i criteri di invocazione
- Salva in
~/.verdent/subagents/
Metodo 2: creazione diretta del file
- Vai in
~/.verdent/subagents/ - Crea un file markdown (ad esempio
security-reviewer.md) - Aggiungi il frontmatter YAML
- Scrivi il prompt di sistema e le linee guida d'uso
Casi d'uso per i sottoagenti personalizzati
Competenze specifiche di dominio:
- Calcoli finanziari: conformità fiscale, normative finanziarie
- Conformità HIPAA in ambito sanitario: standard per la gestione dei dati dei pazienti
- Crittografia: best practice per l'implementazione della sicurezza
Flussi di lavoro specifici del team:
- Applicatori di stile del codice: standard di codifica del team oltre alle regole del linter
- Coerenza della documentazione: garantire che la documentazione segua i modelli del team
- Auditor delle dipendenze: monitorare i pacchetti di terze parti rispetto agli elenchi approvati
Specialisti dello stack tecnologico:
- Ottimizzatori delle prestazioni di React: individuare i re-render non necessari
- Ottimizzatori delle query SQL: analizzare e migliorare le prestazioni del database
- Revisori della configurazione Docker: validare le pratiche di containerizzazione
Garanzia di qualità:
- Analizzatori della copertura dei test: individuare i percorsi di codice non testati
- Revisori della gestione degli errori: garantire una gestione completa delle eccezioni
- Applicatori degli standard di logging: verificare le pratiche di logging
Esempio: generatore di documentazione API
---
name: api-documenter
description: Generates comprehensive API documentation from code
---
# System Prompt
You are an API documentation specialist.
Documentation approach:
- Extract endpoints, parameters, and responses from code
- Generate OpenAPI/Swagger specifications
- Include usage examples and error codes
- Document authentication requirements
Output format:
- Markdown tables for endpoints
- Code examples in multiple languages
- Authentication flow diagrams
Invocation policy (strict): Only run when explicitly requested.
When to use:
- User requests API documentation generation
- Need to document REST/GraphQL endpoints
- Creating developer guides
When NOT to use:
- Inline code comments
- User-facing documentationUtilizzo:
@api-documenter document the /api/users endpointsEsempio: revisore delle migrazioni del database
---
name: migration-reviewer
description: Reviews database migrations for safety and correctness
---
# System Prompt
You are a database migration safety specialist.
Review checklist:
- Check for destructive operations (DROP, DELETE without WHERE)
- Verify reversible migrations (up/down compatibility)
- Identify potential data loss scenarios
- Validate index creation strategies
- Check for blocking operations on large tables
Risk assessment:
- Categorize migrations: low/medium/high risk
- Recommend staging environment testing for high-risk changes
- Suggest rollback procedures
Invocation policy (strict): Only run when explicitly requested.
When to use:
- User creates or modifies migration files
- Pre-deployment migration review
- Investigating migration failures
When NOT to use:
- Schema design from scratch
- Query optimizationCriteri di invocazione
Criterio rigido:
- Il sottoagente viene eseguito solo quando richiesto esplicitamente tramite @-menzione
- L'utente mantiene il pieno controllo sull'invocazione
- Ideale per sottoagenti specializzati e a uso occasionale
Criterio flessibile:
- Consente l'invocazione automatica basata sul rilevamento di pattern nelle attività
- L'agente principale instrada automaticamente le attività corrispondenti
- Ideale per sottoagenti usati di frequente e ben definiti
Metodo 2: sistema di regole
Panoramica
I file di regole sono documenti Markdown che guidano il comportamento di Verdent, la formattazione dell'output e il processo decisionale senza modifiche al codice. Tre tipi di regole offrono una personalizzazione completa:
| Tipo di regola | Ambito | Priorità | Archiviazione |
|---|---|---|---|
| VERDENT.md | Globale su tutti i progetti | Media | ~/.verdent/VERDENT.md |
| AGENTS.md | Specifico del progetto (team) | Massima | Directory radice del progetto |
| plan_rules.md | Formattazione di Plan Mode | Indipendente | ~/.verdent/plan_rules.md |
Precedenza delle regole
In caso di conflitti:
- AGENTS.md (massima) - Le regole del progetto prevalgono sulle preferenze utente
- VERDENT.md (media) - Applicata quando non c'è conflitto con il progetto
- Comportamento predefinito (minima) - Le impostazioni predefinite integrate di Verdent
Esempio di conflitto:
VERDENT.md: "Use 2-space indentation"
AGENTS.md: "Use 4-space indentation for this project"
→ Result: 4-space indentation (project rules win)VERDENT.md (preferenze globali)
Scopo: stile di codifica e preferenze personali su tutti i progetti
Esempio:
# User Rules
## TypeScript Preferences
- Use strict mode in tsconfig.json
- Prefer interfaces over type aliases
- Include return types on all functions
## Code Organization
- One component per file
- Named exports instead of default exports
- Organize imports: external, internal, types
## Documentation
- TSDoc comments for public APIs
- Include @param and @returns tags
## Communication
- Provide explanations before showing code
- Highlight breaking changes explicitlyAccesso: Settings → Rules → User Rules
AGENTS.md (regole del progetto)
Scopo: standard di codifica a livello di team e convenzioni specifiche del progetto
Esempio:
# AGENTS.md
## Dev environment tips
- Use `pnpm dlx turbo run where <project_name>` to navigate
- Run `pnpm install --filter <project_name>` for dependencies
- Check package.json name field for correct package name
## Testing instructions
- Run `pnpm turbo run test --filter <project_name>`
- From package root: `pnpm test`
- Focus on one test: `pnpm vitest run -t "<test name>"`
- Fix all errors before merge
## PR instructions
- Title format: [<project_name>] <Title>
- Always run `pnpm lint` and `pnpm test` before committingAccesso: directory radice del progetto (sotto controllo di versione)
plan_rules.md (personalizzazione dei piani)
Scopo: controllare il formato dell'output e il livello di dettaglio di Plan Mode
Esempio:
# Plan Rules
## Plan Structure
- Start with brief summary (2-3 sentences)
- Include estimated time for each major step
- List prerequisites before implementation steps
- Identify potential risks
## Level of Detail
- Break tasks into subtasks of 15-30 minutes
- Include specific file paths for modifications
- List functions/components to create/modify
## Format
- Use numbered lists for sequential steps
- Use bullet points for options
- Include code snippets for complex changesAccesso: Settings → Rules → Plan Rules
Best practice per scrivere le regole
Sii specifico e direttivo:
✓ Good: "Always use async/await for asynchronous operations"
✗ Vague: "Try to use modern JavaScript"Organizza in modo logico:
- Raggruppa le regole correlate sotto intestazioni di sezione
- Separa gli ambiti (stile, test, documentazione, sicurezza)
- Usa una struttura coerente tra i file
Dai priorità alle regole critiche:
- Metti le regole importanti per prime in ogni sezione
- Usa l'enfasi per gli standard non negoziabili:
**NEVER** commit credentials - Concentrati sulla prevenzione dei bug e sulla sicurezza
Verifica l'efficacia:
- Avvia una nuova conversazione per verificare l'applicazione delle regole
- Perfeziona le regole in base al comportamento effettivo dell'agente
- Aggiorna man mano che il progetto evolve
Metodo 3: integrazione MCP
Panoramica
Model Context Protocol (MCP) estende Verdent collegando strumenti, fonti di dati e servizi esterni. I server MCP fungono da ponte tra Verdent e i sistemi esterni.
Configurazione: ~/.verdent/mcp.json tramite Settings → MCP Servers
Funzionalità di MCP
Accesso a sistemi esterni:
- Strumenti di query per database (PostgreSQL, MySQL, MongoDB)
- API di servizi cloud (AWS, Azure, GCP)
- Gestione dei progetti (Jira, Linear, Asana)
- Pipeline CI/CD (Jenkins, GitHub Actions)
- Servizi di monitoraggio (Datadog, New Relic)
Sviluppo di strumenti personalizzati: Crea server MCP per sistemi proprietari:
- Integrazioni con API interne
- Ponti verso sistemi legacy
- Fonti di dati specializzate
- Strumenti di automazione dei flussi di lavoro
MCP vs. sottoagenti personalizzati vs. regole
| Esigenza | Metodo migliore | Perché |
|---|---|---|
| Analisi AI specializzata | Sottoagente personalizzato | Richiede ragionamento AI con contesto personalizzato |
| Applicazione degli standard di codifica | Regole (AGENTS.md) | Semplice guida al comportamento |
| Accesso a database esterni | Integrazione MCP | Richiede la connessione a un sistema esterno |
| Preferenze di codifica personali | Regole (VERDENT.md) | Personalizzazione globale del comportamento |
| Convenzioni del team | Regole (AGENTS.md) | Standard di progetto condivisi |
| Integrazione con API | Integrazione MCP | Interazione con servizi esterni |
| Personalizzazione del formato dei piani | Regole (plan_rules.md) | Controllo dell'output di Plan Mode |
| Competenze di dominio (finanza, sanità) | Sottoagente personalizzato | Applicazione di conoscenze specializzate |
Esempio: combinare tutti e tre i metodi
Scenario: team di sviluppo full-stack con requisiti di conformità rigorosi
Sottoagente personalizzato:
---
name: compliance-auditor
description: Audits code for regulatory compliance (SOC2, HIPAA)
---
[System prompt for compliance checking]AGENTS.md (regole del progetto):
## Security Standards
- All API endpoints must validate inputs
- Never log PII or credentials
- Encrypt sensitive data at rest and in transit
## Compliance
- Run @compliance-auditor before all PRs
- Document data retention policies in code comments
- Include audit trails for data accessIntegrazione MCP:
- Server MCP del database di conformità: verifica le operazioni rispetto alle regole di conformità
- Server MCP del log di audit: registra ogni accesso a dati sensibili
Flusso di lavoro:
User: "Create endpoint for user profile updates"
Verdent: [Applies AGENTS.md rules]
[Generates secure endpoint with validation]
[Automatically invokes @compliance-auditor]
[Uses MCP to log operation in audit system]
Result: Compliant, secure, audited endpointBest practice per l'estensibilità
Inizia in modo semplice e cresci gradualmente
Adozione progressiva:
- Fase 1: inizia con regole di base (VERDENT.md o AGENTS.md)
- Fase 2: aggiungi sottoagenti personalizzati per attività specializzate ricorrenti
- Fase 3: integra MCP per le connessioni a sistemi esterni
Combina i metodi in modo strategico
Esempi di sinergia:
Regole + sottoagenti:
- AGENTS.md specifica quando invocare i sottoagenti personalizzati
- Le regole impongono che i suggerimenti dei sottoagenti vengano seguiti
Regole + MCP:
- AGENTS.md definisce quali server MCP sono approvati per l'uso
- Le regole specificano quando è richiesto l'accesso a dati esterni
Sottoagenti + MCP:
- Il sottoagente personalizzato usa gli strumenti MCP per accedere a sistemi esterni
- Il sottoagente interpreta i risultati di MCP con competenze specializzate
Documenta le personalizzazioni
Documentazione del team: Per i sottoagenti personalizzati e le regole di progetto (AGENTS.md):
- Documenta le motivazioni delle regole o dei sottoagenti non ovvi
- Fornisci esempi di utilizzo corretto
- Includi guide alla risoluzione dei problemi
- Metti sotto controllo di versione insieme al codice
Documentazione personale: Per VERDENT.md e i sottoagenti personali:
- Commenta le regole complesse spiegandone il motivo
- Mantieni le regole organizzate e aggiornate
- Rimuovi tempestivamente le regole obsolete
Verifica a fondo
Processo di validazione:
- Crea la personalizzazione (sottoagente/regola/configurazione MCP)
- Avvia una nuova conversazione per testare
- Verifica che il comportamento corrisponda alle aspettative
- Perfeziona in base ai risultati
- Documenta i pattern efficaci
Scenari di test comuni:
- Il sottoagente si invoca automaticamente quando previsto?
- Le regole del progetto prevalgono correttamente sulle regole utente?
- Il server MCP si connette ed esegue le operazioni?
- I metodi combinati interagiscono senza conflitti?
Risoluzione dei problemi di estensibilità
Problemi con i sottoagenti personalizzati
Il sottoagente non si invoca:
- Controlla i criteri di invocazione (il criterio rigido richiede una @-menzione esplicita)
- Verifica che le linee guida "When to use" corrispondano alla tua richiesta
- Assicurati che il file sia nella directory
~/.verdent/subagents/ - Controlla la sintassi del frontmatter YAML
Comportamento inaspettato del sottoagente:
- Rivedi il prompt di sistema per verificarne la chiarezza
- Perfeziona le linee guida "When to use" e "When NOT to use"
- Testa con una @-menzione esplicita per isolare il comportamento
- Itera sul prompt di sistema in base ai risultati
Conflitti tra regole
La regola non viene applicata:
- Controlla la precedenza delle regole (AGENTS.md > VERDENT.md)
- Verifica che il file sia nella posizione corretta
- Avvia una nuova conversazione per testare un'applicazione pulita
- Rendi le regole più specifiche e direttive
Comportamento inaspettato:
- Cerca regole contraddittorie nello stesso file
- Verifica se le regole sono troppo vaghe
- Verifica di modificare il file di regole corretto
- Usa un linguaggio esplicito ("Always", "Never", "Prefer")
Problemi di integrazione MCP
Errori di connessione:
- Verifica la sintassi di
mcp.json - Controlla le credenziali di autenticazione
- Assicurati che il server MCP sia in esecuzione e accessibile
- Valida la connettività di rete
Problemi di invocazione degli strumenti:
- Conferma che il server MCP esponga gli strumenti previsti
- Controlla i formati dei parametri degli strumenti
- Rivedi i log del server MCP per eventuali errori
- Testa il server MCP in modo indipendente