Agents
Configurez et utilisez des agents specialises.
Les agents sont des assistants IA specialises qui peuvent etre configures pour des taches et flux de travail specifiques. Ils vous permettent de creer des outils focaux avec des invites, des modeles et un acces aux outils personnalises.
Vous pouvez basculer entre les agents pendant une session ou les invoquer avec la mention @.
Types
Il existe deux types d’agents dans OpenCode ; les agents primaires et les sous-agents.
Agents primaires
Les agents primaires sont les assistants principaux avec lesquels vous interagissez directement. Vous pouvez passer de l’un a l’autre en utilisant la touche Tab ou votre raccourci switch_agent configure. Ces agents gerent votre conversation principale et peuvent acceder a tous les outils configures.
OpenCode est fourni avec deux agents primaires integres, Build et Plan. Nous les examinerons ci-dessous.
Sous-agents
Les sous-agents sont des assistants specialises que les agents primaires peuvent invoquer pour des taches specifiques. Vous pouvez egalement les invoquer manuellement en les @ mentionnant dans vos messages.
OpenCode est fourni avec deux sous-agents integres, General et Explore. Nous examinerons cela ci-dessous.
Integres
OpenCode est fourni avec deux agents primaires integres et deux sous-agents integres.
Build
Mode : primary
Build est l’agent primaire par defaut avec tous les outils actives. C’est l’agent standard pour le travail de developpement ou vous avez besoin d’un acces complet aux operations de fichiers et aux commandes systeme.
Plan
Mode : primary
Un agent restreint concu pour la planification et l’analyse. Nous utilisons un systeme d’autorisation pour vous donner plus de controle et empecher les modifications non intentionnelles.
Par defaut, tout ce qui suit est defini sur ask :
modifications de fichiers: Toutes les ecritures, correctifs et modificationsbash: Toutes les commandes bash
Cet agent est utile lorsque vous souhaitez que le LLM analyse le code, suggere des modifications ou cree des plans sans apporter de modifications reelles a votre base de code.
General
Mode : subagent
Un agent generaliste pour la recherche de questions complexes, la recherche de code et l’execution de tapes multiples. A utiliser lors de la recherche de mots-cles ou de fichiers et que vous n’etes pas sur de trouver la bonne correspondance dans les premiers essais.
Explore
Mode : subagent
Un agent rapide specialise dans l’exploration des bases de code. A utiliser lorsque vous devez trouver rapidement des fichiers par modeles, rechercher du code par mots-cles ou repondre a des questions sur la base de code.
Utilisation
-
Pour les agents primaires, utilisez la touche Tab pour passer de l’un a l’autre pendant une session. Vous pouvez egalement utiliser votre raccourci
switch_agentconfigure. -
Les sous-agents peuvent etre invoques :
-
Automatiquement par les agents primaires pour des taches specialisees en fonction de leurs descriptions.
-
Manuellement en @ mentionnant un sous-agent dans votre message. Par exemple.
@general aide-moi a rechercher cette fonction
-
-
Navigation entre les sessions : Lorsque les sous-agents creent leurs propres sessions enfants, vous pouvez naviguer entre la session parente et toutes les sessions enfants en utilisant :
- <Leader>+Right (ou votre raccourci
session_child_cycleconfigure) pour faire defiler vers l’avant parent -> enfant1 -> enfant2 -> … -> parent - <Leader>+Left (ou votre raccourci
session_child_cycle_reverseconfigure) pour faire defiler vers l’arriere parent <- enfant1 <- enfant2 <- … <- parent
Cela vous permet de passer sans interruption entre la conversation principale et le travail des sous-agents specialises.
- <Leader>+Right (ou votre raccourci
Configurer
Vous pouvez personnaliser les agents integres ou creer les votres via la configuration. Les agents peuvent etre configures de deux manieres :
JSON
Configurez les agents dans votre fichier de configuration opencode.json :
{ "$schema": "https://opencode.ai/config.json", "agent": { "build": { "mode": "primary", "model": "anthropic/claude-sonnet-4-20250514", "prompt": "{file:./prompts/build.txt}", "tools": { "write": true, "edit": true, "bash": true } }, "plan": { "mode": "primary", "model": "anthropic/claude-haiku-4-20250514", "tools": { "write": false, "edit": false, "bash": false } }, "code-reviewer": { "description": "Examine le code pour les meilleures pratiques et les problemes potentiels", "mode": "subagent", "model": "anthropic/claude-sonnet-4-20250514", "prompt": "Vous etes un examinateur de code. Concentrez-vous sur la securite, les performances et la maintenabilite.", "tools": { "write": false, "edit": false } } }}Markdown
Vous pouvez egalement definir des agents en utilisant des fichiers markdown. Placez-les dans :
- Global :
~/.config/opencode/agent/ - Par projet :
.opencode/agent/
---description: Examine le code pour la qualite et les meilleures pratiquesmode: subagentmodel: anthropic/claude-sonnet-4-20250514temperature: 0.1tools: write: false edit: false bash: false---
Vous etes en mode examen de code. Concentrez-vous sur :
- Qualite du code et meilleures pratiques- Bugs potentiels et cas limites- Implications sur les performances- Considerations de securite
Fournissez des commentaires constructifs sans apporter de modifications directes.Le nom du fichier markdown devient le nom de l’agent. Par exemple, review.md cree un agent review.
Options
Examinons en detail ces options de configuration.
Description
Utilisez l’option description pour fournir une breve description de ce que fait l’agent et quand l’utiliser.
{ "agent": { "review": { "description": "Examine le code pour les meilleures pratiques et les problemes potentiels" } }}Ceci est une option de configuration obligatoire.
Temperature
Controlez l’aleatoire et la creativite des reponses du LLM avec la configuration temperature.
Des valeurs plus faibles rendent les reponses plus focalisees et deterministes, tandis que des valeurs plus elevees augmentent la creativite et la variabilite.
{ "agent": { "plan": { "temperature": 0.1 }, "creative": { "temperature": 0.8 } }}Les valeurs de temperature varient generalement de 0,0 a 1,0 :
- 0,0-0,2 : Reponses tres focalisees et deterministes, ideal pour l’analyse de code et la planification
- 0,3-0,5 : Reponses equilibrees avec une certaine creativite, bon pour les taches de developpement general
- 0,6-1,0 : Reponses plus creatives et variees, utile pour le brainstorming et l’exploration
{ "agent": { "analyze": { "temperature": 0.1, "prompt": "{file:./prompts/analysis.txt}" }, "build": { "temperature": 0.3 }, "brainstorm": { "temperature": 0.7, "prompt": "{file:./prompts/creative.txt}" } }}Si aucune temperature n’est specifiee, OpenCode utilise les valeurs par defaut specifiques au modele ; generalement 0 pour la plupart des modeles, 0,55 pour les modeles Qwen.
Max etapes
Controlez le nombre maximum d’iterations agentiques qu’un agent peut effectuer avant d’etre force de repondre avec du texte uniquement. Cela permet aux utilisateurs qui souhaitent controler les couts de definir une limite sur les actions agentiques.
Si ce n’est pas defini, l’agent continuera a iterer jusqu’a ce que le modele choisisse de s’arreter ou que l’utilisateur interrompe la session.
{ "agent": { "quick-thinker": { "description": "Raisonnement rapide avec iterations limitees", "prompt": "Vous etes un penseur rapide. Resolvez les problemes avec des etapes minimales.", "maxSteps": 5 } }}Lorsque la limite est atteinte, l’agent recoit une invite systeme speciale lui demandant de repondre avec un resume de son travail et des taches restantes recommandees.
Desactiver
Reglez sur true pour desactiver l’agent.
{ "agent": { "review": { "disable": true } }}Prompt
Specifiez un fichier d’invite systeme personnalise pour cet agent avec la configuration prompt. Le fichier d’invite doit contenir des instructions specifiques a l’objet de l’agent.
{ "agent": { "review": { "prompt": "{file:./prompts/code-review.txt}" } }}Ce chemin est relatif a l’emplacement du fichier de configuration. Cela fonctionne donc a la fois pour la configuration globale d’OpenCode et la configuration specifique au projet.
Modele
Utilisez la configuration model pour remplacer le modele pour cet agent. Utile pour utiliser differents modeles optimises pour differentes taches. Par exemple, un modele plus rapide pour la planification, un modele plus capable pour la mise en œuvre.
{ "agent": { "plan": { "model": "anthropic/claude-haiku-4-20250514" } }}L’ID du modele dans votre configuration OpenCode utilise le format fournisseur/id-modele. Par exemple, si vous utilisez OpenCode Zen, vous utiliserez opencode/gpt-5.1-codex pour GPT 5.1 Codex.
Outils
Controlez les outils disponibles dans cet agent avec la configuration tools. Vous pouvez activer ou desactiver des outils specifiques en les reglant sur true ou false.
{ "$schema": "https://opencode.ai/config.json", "tools": { "write": true, "bash": true }, "agent": { "plan": { "tools": { "write": false, "bash": false } } }}Vous pouvez egalement utiliser des caracteres generiques pour controler plusieurs outils a la fois. Par exemple, pour desactiver tous les outils d’un serveur MCP :
{ "$schema": "https://opencode.ai/config.json", "agent": { "readonly": { "tools": { "mymcp_*": false, "write": false, "edit": false } } }}En savoir plus sur les outils.
Autorisations
Vous pouvez configurer des autorisations pour gerer les actions qu’un agent peut effectuer. Actuellement, les autorisations pour les outils edit, bash et webfetch peuvent etre configurees pour :
"ask"- Demander l’approbation avant d’executer l’outil"allow"- Autoriser toutes les operations sans approbation"deny"- Desactiver l’outil
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "deny" }}Vous pouvez remplacer ces autorisations par agent.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "deny" }, "agent": { "build": { "permission": { "edit": "ask" } } }}Vous pouvez egalement definir des autorisations dans les agents Markdown.
---description: Examen de code sans modificationsmode: subagentpermission: edit: deny bash: "*": ask "git diff": allow "git log*": allow webfetch: deny---
Analyser uniquement le code et suggérer des modifications.Vous pouvez definir des autorisations pour des commandes bash specifiques.
{ "$schema": "https://opencode.ai/config.json", "agent": { "build": { "permission": { "bash": { "git push": "ask" } } } }}Ceci peut prendre un modele glob.
{ "$schema": "https://opencode.ai/config.json", "agent": { "build": { "permission": { "bash": { "git *": "ask" } } } }}Et vous pouvez egalement utiliser le caractere generique * pour gerer les autorisations de toutes les commandes.
Puisque la derniere regle correspondante a priorite, placez le caractere generique * en premier et les regles specifiques apres.
{ "$schema": "https://opencode.ai/config.json", "agent": { "build": { "permission": { "bash": { "*": "ask", "git status": "allow" } } } }}En savoir plus sur les autorisations.
Mode
Controlez le mode de l’agent avec la configuration mode. L’option mode est utilisee pour determiner comment l’agent peut etre utilise.
{ "agent": { "review": { "mode": "subagent" } }}L’option mode peut etre definie sur primary, subagent ou all. Si aucun mode n’est specifie, elle est par defaut all.
Masque
Masquez un sous-agent du menu d’autocompletion @ avec hidden: true. Utile pour les sous-agents internes qui ne doivent etre invoques que programmatiquement par d’autres agents via l’outil Task.
{ "agent": { "internal-helper": { "mode": "subagent", "hidden": true } }}Cela n’affecte que la visibilite de l’utilisateur dans le menu d’autocompletion. Les agents masques peuvent toujours etre invoques par le modele via l’outil Task si les autorisations le permettent.
Autorisations de tache
Controlez les sous-agents qu’un agent peut invoquer via l’outil Task avec permission.task. Utilise des modeles glob pour une correspondance flexible.
{ "agent": { "orchestrator": { "mode": "primary", "permission": { "task": { "*": "deny", "orchestrator-*": "allow", "code-reviewer": "ask" } } } }}Lorsqu’il est regle sur deny, le sous-agent est entierement supprime de la description de l’outil Task, de sorte que le modele ne tentera pas de l’invoquer.
Additional
Toutes les autres options que vous specifiez dans votre configuration d’agent seront transmises directement au fournisseur en tant qu’options de modele. Cela vous permet d’utiliser des fonctionnalites et parametres specifiques au fournisseur.
Par exemple, avec les modeles de raisonnement d’OpenAI, vous pouvez controler l’effort de raisonnement :
{ "agent": { "deep-thinker": { "description": "Agent qui utilise un effort de raisonnement eleve pour des problemes complexes", "model": "openai/gpt-5", "reasoningEffort": "high", "textVerbosity": "low" } }}Ces options supplementaires sont specifiques au modele et au fournisseur. Consultez la documentation de votre fournisseur pour les parametres disponibles.
Creer des agents
Vous pouvez creer de nouveaux agents en utilisant la commande suivante :
opencode agent createCette commande interactive va :
- Demander ou enregistrer l’agent ; global ou specifique au projet.
- Description de ce que l’agent doit faire.
- Generer une invite systeme appropriee et un identifiant.
- Vous permettre de selectionner les outils auxquels l’agent peut acceder.
- Enfin, creer un fichier markdown avec la configuration de l’agent.
Cas d’utilisation
Voici quelques cas d’utilisation courants pour differents agents.
- Agent Build : Travail de developpement complet avec tous les outils actives
- Agent Plan : Analyse et planification sans apporter de modifications
- Agent Review : Examen du code avec acces en lecture seule plus outils de documentation
- Agent Debug : Concentre sur l’investigation avec les outils bash et read actives
- Agent Docs : Rédaction de documentation avec operations de fichiers mais pas de commandes systeme
Exemples
Voici quelques exemples d’agents que vous pourriez trouver utiles.
Agent de documentation
---description: Ecrit et maintient la documentation du projetmode: subagenttools: bash: false---
Vous etes un redacteur technique. Crez une documentation claire et complete.
Concentrez-vous sur :
- Explications claires- Structure appropriee- Exemples de code- Langage convivial pour l'utilisateurAuditeur de securite
---description: Effectue des audits de securite et identifie les vulnerabilitesmode: subagenttools: write: false edit: false---
Vous etes un expert en securite. Concentrez-vous sur l'identification des problemes de securite potentiels.
Recherchez :
- Vulnerabilites de validation d'entree- Defauts d'authentification et d'autorisation- Risques d'exposition de donnees- Vulnerabilites des dependances- Problemes de securite de la configuration