Aller au contenu

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 modifications
  • bash : 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

  1. 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_agent configure.

  2. 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
  3. 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_cycle configure) pour faire defiler vers l’avant parent -> enfant1 -> enfant2 -> … -> parent
    • <Leader>+Left (ou votre raccourci session_child_cycle_reverse configure) 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.


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 :

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/
~/.config/opencode/agent/review.md
---
description: Examine le code pour la qualite et les meilleures pratiques
mode: subagent
model: anthropic/claude-sonnet-4-20250514
temperature: 0.1
tools:
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.

opencode.json
{
"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.

opencode.json
{
"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
opencode.json
{
"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.

opencode.json
{
"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.

opencode.json
{
"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.

opencode.json
{
"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.

opencode.json
{
"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.

opencode.json
{
"$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 :

opencode.json
{
"$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
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "deny"
}
}

Vous pouvez remplacer ces autorisations par agent.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "deny"
},
"agent": {
"build": {
"permission": {
"edit": "ask"
}
}
}
}

Vous pouvez egalement definir des autorisations dans les agents Markdown.

~/.config/opencode/agent/review.md
---
description: Examen de code sans modifications
mode: subagent
permission:
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.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"agent": {
"build": {
"permission": {
"bash": {
"git push": "ask"
}
}
}
}
}

Ceci peut prendre un modele glob.

opencode.json
{
"$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.

opencode.json
{
"$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.

opencode.json
{
"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.

opencode.json
{
"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.

opencode.json
{
"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 :

opencode.json
{
"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 :

Fenêtre de terminal
opencode agent create

Cette commande interactive va :

  1. Demander ou enregistrer l’agent ; global ou specifique au projet.
  2. Description de ce que l’agent doit faire.
  3. Generer une invite systeme appropriee et un identifiant.
  4. Vous permettre de selectionner les outils auxquels l’agent peut acceder.
  5. 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

~/.config/opencode/agent/docs-writer.md
---
description: Ecrit et maintient la documentation du projet
mode: subagent
tools:
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'utilisateur

Auditeur de securite

~/.config/opencode/agent/security-auditor.md
---
description: Effectue des audits de securite et identifie les vulnerabilites
mode: subagent
tools:
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