Informazioni di riferimento sulla configurazione
I file di configurazione dell’agente personalizzato sono documenti JSON che definiscono il comportamento di un agente personalizzato. In questa sezione viene fornita una panoramica dei concetti di configurazione e dei modelli comuni.
Informazioni di riferimento sulla configurazione
Per dettagli completi sul formato del file di configurazione dell’agente personalizzato, i campi disponibili e la sintassi, consulta la documentazione supplementare della CLI di Amazon Q Developer:
-
Formato di configurazione dell’agente
- Riferimento completo per tutte le opzioni di configurazione -
Riferimento agli strumenti integrati
- Documentazione per tutti gli strumenti integrati e le relative opzioni di configurazione
È anche possibile visualizzare lo schema JSON per i file di configurazione dell’agente personalizzati eseguendo:
/agent schema
Concetti di configurazione
I file di configurazione degli agenti personalizzati contengono diverse sezioni chiave che controllano diversi aspetti del comportamento di questi agenti:
Metadati di base
Ogni agente personalizzato può includere metadati di base per l’identificazione e la documentazione:
-
Nome - L’identificatore dell’agente personalizzato (derivato dal nome del file se non specificato)
-
Descrizione - La spiegazione leggibile dall’uomo dello scopo dell’agente personalizzato
-
Prompt - Contesto di alto livello per l’agente, simile a un prompt di sistema
Configurazione degli strumenti
La configurazione degli strumenti controlla quali strumenti sono disponibili per l’agente personalizzato e come si comportano:
- strumenti
-
Elenca tutti gli strumenti che l’agente personalizzato può potenzialmente utilizzare, inclusi gli strumenti integrati e gli strumenti del server MCP
- allowedTools
-
Specifica quali strumenti è possibile eseguire senza la conferma dell’utente, migliorando l’efficienza del flusso di lavoro
- toolAliases
-
Fornisce nomi alternativi per gli strumenti, utili per risolvere conflitti di denominazione o creare scorciatoie
- toolsSettings
-
Configura un comportamento specifico per i singoli strumenti, come i percorsi dei file consentiti o le autorizzazioni di servizio
Impostazioni degli strumenti integrati
Gli strumenti integrati possono essere configurati tramite la sezione toolsSettings per controllarne il comportamento e le autorizzazioni. Ogni strumento supporta opzioni di configurazione specifiche che consentono di approvare preventivamente determinate operazioni o limitare l’accesso a risorse specifiche.
execute_bash tool
Controlla quali comandi bash è possibile eseguire senza la conferma dell’utente:
{ "toolsSettings": { "execute_bash": { "allowedCommands": ["git status", "git fetch"], "deniedCommands": ["git commit .*", "git push .*"], "allowReadOnly": true } } }
- allowedCommands
-
Array di comandi specifici consentiti senza richiedere conferma. Supporta la formattazione regex con ancore
\Ae\z. - deniedCommands
-
Array di comandi da negare. Supporta la formattazione regex. Le regole di negazione vengono valutate prima delle regole di autorizzazione.
- allowReadOnly
-
Boolean (default:
true) - Indica se consentire i comandi di sola lettura senza chiedere conferma.
fs_read tool
Controlla quali file e directory è possibile leggere senza la conferma dell’utente:
{ "toolsSettings": { "fs_read": { "allowedPaths": ["~/projects", "./src/**"], "deniedPaths": ["/some/denied/path/", "/another/denied/path/**/file.txt"] } } }
- allowedPaths
-
Array di percorsi che è possibile leggere senza chiedere conferma. Supporta modelli glob con un comportamento di tipo gitignore.
- deniedPaths
-
Array di percorsi per negare l’accesso. Supporta modelli glob. Le regole di negazione vengono valutate prima delle regole di autorizzazione.
fs_write tool
Controlla su quali file e directory è possibile scrivere senza la conferma dell’utente:
{ "toolsSettings": { "fs_write": { "allowedPaths": ["~/projects/output.txt", "./src/**"], "deniedPaths": ["/some/denied/path/", "/another/denied/path/**/file.txt"] } } }
- allowedPaths
-
Array di percorsi che è possibile leggere senza chiedere conferma. Supporta modelli glob con un comportamento di tipo gitignore.
- deniedPaths
-
Array di percorsi per negare l’accesso in scrittura. Supporta modelli glob. Le regole di negazione vengono valutate prima delle regole di autorizzazione.
use_aws tool
Controlla a quali servizi AWS è possibile accedere senza la conferma dell’utente:
{ "toolsSettings": { "use_aws": { "allowedServices": ["s3", "lambda", "ec2"], "deniedServices": ["eks", "rds"] } } }
- allowedServices
-
Array di servizi AWS a cui è possibile accedere senza chiedere conferma.
- deniedServices
-
Array di servizi AWS per negare l’accesso. Le regole di negazione vengono valutate prima delle regole di autorizzazione.
Autorizzazioni e impostazioni predefinite dello strumento
Gli strumenti integrati presentano diversi comportamenti di autorizzazione predefiniti:
-
Considerato attendibile per impostazione predefinita:
fs_read,report_issue -
Richiedi l’autorizzazione per impostazione predefinita:
execute_bash,fs_write,use_aws -
Nessuna opzione di configurazione:
introspect,knowledge,thinking,todo_list
Gli strumenti possono essere esplicitamente consentiti nella sezione allowedTools o configurati con autorizzazioni specifiche tramite toolsSettings. Se uno strumento non è presente nell’elenco allowedTools, agli utenti verrà richiesta l’autorizzazione a meno che non sia impostata una configurazione toolsSettingsappropriata.
Configurazione dei server MCP
La sezione mcpServers definisce a quali server Model Context Protocol può accedere l’agente personalizzato. Ogni configurazione del server include:
-
Comando - Il comando eseguibile per avviare il server MCP
-
Argomenti - Argomenti della riga di comando per il server
-
Variabili di ambiente - Impostazioni di ambiente per il processo del server
-
Impostazioni del timeout - Richiedi la configurazione del timeout
Per ulteriori informazioni sull’integrazione MCP, consulta Utilizzo di MCP con Amazon Q Developer.
Risorse e contesto
Gli agenti personalizzati possono includere automaticamente il contesto pertinente attraverso due meccanismi:
- risorse
-
File e directory da includere nel contesto dell’agente personalizzato, che supportano modelli glob per una selezione flessibile dei file
- hooks
-
Comandi da eseguire in punti trigger specifici (come l’avvio di un agente personalizzato o l’input dell’utente), con l’output incluso nel contesto
Modelli di configurazione comuni
Configurazione dell’agente personalizzata minima
Un semplice agente personalizzato che fornisce operazioni di base sui file con accesso in lettura preapprovato:
{ "name": "basic-ops", "description": "Basic file operations custom agent", "prompt": "You are a helpful assistant specialized in basic file operations", "tools": [ "fs_read", "fs_write", "execute_bash" ], "allowedTools": [ "fs_read" ] }
Agente personalizzato per il flusso di lavoro specializzato
Un agente personalizzato configurato per la gestione dell’infrastruttura AWS con autorizzazioni per strumenti specifici:
{ "name": "infra-manage", "description": "AWS infrastructure management custom agent", "prompt": "You are an expert AWS infrastructure specialist", "tools": [ "fs_read", "fs_write", "execute_bash", "use_aws" ], "allowedTools": [ "fs_read", "use_aws" ], "toolsSettings": { "use_aws": { "allowedServices": ["s3", "lambda", "cloudformation"] } }, "resources": [ "file://README.md", "file://infrastructure/**/*.yaml", "file://docs/deployment.md" ] }
Agente personalizzato specifico del progetto con hook
Un agente personalizzato che include il contesto del progetto tramite file statici e comandi dinamici:
{ "name": "project-dev", "description": "Project development custom agent with git context", "prompt": "You are a project development assistant with access to git information", "tools": [ "fs_read", "fs_write", "execute_bash", "@git" ], "allowedTools": [ "fs_read", "@git/git_status" ], "resources": [ "file://README.md", "file://CONTRIBUTING.md", "file://src/**/*.md" ], "hooks": { "agentSpawn": [ { "command": "git status --porcelain", "timeout_ms": 10000 } ] } }
Agente personalizzato con integrazione del server MCP
Un agente personalizzato che integra strumenti esterni tramite server MCP:
{ "name": "custom-dev", "description": "Development custom agent with external tool integration", "prompt": "You are a development assistant with access to git and web fetching capabilities", "mcpServers": { "git": { "command": "git-mcp-server", "args": [], "timeout": 30000 }, "fetch": { "command": "fetch-mcp-server", "args": ["--timeout", "10"] } }, "tools": [ "fs_read", "fs_write", "@git", "@fetch/fetch_url" ], "allowedTools": [ "fs_read", "@git/git_status", "@fetch/fetch_url" ], "toolAliases": { "@git/git_status": "status", "@fetch/fetch_url": "get" } }