Référence de configuration
Les fichiers de configuration des agents personnalisés sont des documents JSON qui définissent le comportement de ces agents. Cette section fournit une vue d’ensemble des concepts de configuration et des modèles courants.
Référence de configuration
Pour obtenir des informations complètes sur le format, les champs disponibles et la syntaxe du fichier de configuration des agents personnalisés, consultez la documentation complémentaire de l’interface de ligne de commande d’Amazon Q Developer :
-
Format de configuration de l’agent
: référence complète comprenant toutes les options de configuration -
Référence des outils intégrés
: documentation sur tous les outils intégrés et leurs options de configuration
Vous pouvez également afficher le schéma JSON des fichiers de configuration des agents personnalisés en exécutant :
/agent schema
Concepts de configuration
Les fichiers de configuration des agents personnalisés contiennent plusieurs sections clés qui contrôlent différents aspects du comportement de ces agents :
Métadonnées de base
Chaque agent personnalisé peut inclure des métadonnées de base à des fins d’identification et de documentation :
-
Nom : identifiant de l’agent personnalisé (dérivé du nom du fichier s’il n’est pas spécifié)
-
Description : explication en langage humain de la finalité de l’agent personnalisé
-
Invite : contexte général de l’agent, semblable à une invite système
Configuration des outils
La configuration des outils contrôle les outils mis à la disposition de l’agent personnalisé et leur comportement :
- outils
-
Répertorie tous les outils que l’agent personnalisé peut potentiellement utiliser, y compris les outils intégrés et les outils des serveurs MCP
- allowedTools
-
Spécifie les outils qui peuvent être exécutés sans confirmation de l’utilisateur, améliorant ainsi l’efficacité du flux de travail
- toolAliases
-
Fournit des noms d’outil alternatifs de manière à résoudre les conflits de dénomination ou à créer des raccourcis
- toolsSettings
-
Configure le comportement spécifique de chaque outil, tels que les chemins de fichiers autorisés ou les autorisations de service
Paramètres des outils intégrés
Le comportement et les autorisations des outils intégrés peuvent être configurés via la section toolsSettings. Chaque outil prend en charge des options de configuration spécifiques qui vous permettent de pré-approuver certaines opérations ou de restreindre l’accès à des ressources spécifiques.
Outil execute_bash
Contrôle les commandes bash qui peuvent être exécutées sans confirmation de l’utilisateur :
{ "toolsSettings": { "execute_bash": { "allowedCommands": ["git status", "git fetch"], "deniedCommands": ["git commit .*", "git push .*"], "allowReadOnly": true } } }
- allowedCommands
-
Tableau des commandes spécifiques autorisées sans invite. Prend en charge le formatage des expressions régulières avec les ancres
\Aet\z. - deniedCommands
-
Tableau des commandes à refuser. Prend en charge le formatage des expressions régulières. Les règles de refus sont évaluées avant les règles d’autorisation.
- allowReadOnly
-
Booléen (par défaut :
true) : indique s’il faut autoriser les commandes en lecture seule sans invite.
Outil fs_read
Contrôle les fichiers et répertoires qui peuvent être lus sans confirmation de l’utilisateur :
{ "toolsSettings": { "fs_read": { "allowedPaths": ["~/projects", "./src/**"], "deniedPaths": ["/some/denied/path/", "/another/denied/path/**/file.txt"] } } }
- allowedPaths
-
Tableau des chemins qui peuvent être lus sans invite. Prend en charge les modèles glob avec un comportement de type gitignore.
- deniedPaths
-
Tableau des chemins dont l’accès doit être refusé. Prend en charge les modèles glob. Les règles de refus sont évaluées avant les règles d’autorisation.
Outil fs_write
Contrôle les fichiers et les répertoires dans lesquels il est possible d’écrire sans confirmation de l’utilisateur :
{ "toolsSettings": { "fs_write": { "allowedPaths": ["~/projects/output.txt", "./src/**"], "deniedPaths": ["/some/denied/path/", "/another/denied/path/**/file.txt"] } } }
- allowedPaths
-
Tableau des chemins sur lesquels il est possible d’écrire sans invite. Prend en charge les modèles glob avec un comportement de type gitignore.
- deniedPaths
-
Tableau des chemins dont l’accès en écriture doit être refusé. Prend en charge les modèles glob. Les règles de refus sont évaluées avant les règles d’autorisation.
Outil use_aws
Contrôle les services AWS accessibles sans confirmation de l’utilisateur :
{ "toolsSettings": { "use_aws": { "allowedServices": ["s3", "lambda", "ec2"], "deniedServices": ["eks", "rds"] } } }
- allowedServices
-
Tableau des services AWS accessibles sans invite.
- deniedServices
-
Tableau des services AWS dont l’accès doit être refusé. Les règles de refus sont évaluées avant les règles d’autorisation.
Autorisations et paramètres par défaut des outils
Les outils intégrés ont différents comportements d’autorisation par défaut :
-
Approuvé par défaut :
fs_read,report_issue -
Exiger une autorisation par défaut :,
execute_bash,fs_write,use_aws -
Pas d’options de configuration :,
introspect,knowledge,thinking,todo_list
Les outils peuvent être explicitement autorisés dans la section allowedTools ou configurés avec des autorisations spécifiques via toolsSettings. Si un outil ne figure pas dans la liste allowedTools, les utilisateurs sont invités à fournir une autorisation à moins qu’une configuration toolsSettings appropriée ne soit définie.
Configuration des serveurs MCP
La section mcpServers définit les serveurs Model Context Protocol (MCP) auxquels l’agent personnalisé peut accéder. Chaque configuration de serveur inclut les éléments suivants :
-
Commande : commande exécutable permettant de démarrer le serveur MCP
-
Arguments : arguments de ligne de commande du serveur
-
Variables d’environnement : paramètres d’environnement du processus serveur
-
Paramètres du délai d’expiration : configuration du délai d’expiration des demandes
Pour plus d’informations sur l’intégration des serveurs MCP, consultez Utilisation de serveurs MCP avec Amazon Q Developer.
Ressources et contexte
Les agents personnalisés peuvent inclure automatiquement le contexte pertinent grâce à deux mécanismes :
- resources
-
Fichiers et répertoires à inclure dans le contexte de l’agent personnalisé, prenant en charge les modèles glob pour une sélection flexible des fichiers
- hooks
-
Commandes à exécuter à des points de déclenchement spécifiques (démarrage d’un agent personnalisé, saisie de l’utilisateur, par exemple), avec sortie incluse dans le contexte
Modèles de configuration courants
Configuration minimale des agents personnalisés
Agent personnalisé simple qui exécute des opérations de base sur des fichiers avec un accès en lecture préapprouvé :
{ "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" ] }
Agent personnalisé spécialisé pour les flux de travail
Agent personnalisé configuré pour la gestion de l’infrastructure AWS avec des autorisations d’outils spécifiques :
{ "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" ] }
Agent personnalisé spécifique à un projet avec des hooks
Agent personnalisé qui inclut le contexte du projet par le biais de fichiers statiques et de commandes dynamiques :
{ "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 } ] } }
Agent personnalisé avec intégration des serveurs MCP
Agent personnalisé qui intègre des outils externes via des serveurs 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" } }