agents.mdx 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747
  1. ---
  2. title: Agents
  3. description: Configurez et utilisez des agents spécialisés.
  4. ---
  5. Les agents sont des assistants IA spécialisés qui peuvent être configurés pour des tâches et des flux de travail spécifiques. Ils vous permettent de créer des outils ciblés avec des invites, des modèles et un accès aux outils personnalisés.
  6. :::tip
  7. Utilisez l'agent de plan pour analyser le code et examiner les suggestions sans apporter de modifications au code.
  8. :::
  9. Vous pouvez basculer entre les agents au cours d'une session ou les appeler avec la mention `@`.
  10. ---
  11. ## Types
  12. Il existe deux types d'agents dans OpenCode ; agents primaires et sous-agents.
  13. ---
  14. ### Agents primaires
  15. Les agents principaux sont les principaux assistants avec lesquels vous interagissez directement. Vous pouvez les parcourir à l'aide de la touche **Tab** ou de votre combinaison de touches `switch_agent` configurée. Ces agents gèrent votre conversation principale. L'accès aux outils est configuré via les autorisations : par exemple, Build a tous les outils activés tandis que Plan est restreint.
  16. :::tip
  17. Vous pouvez utiliser la touche **Tab** pour basculer entre les agents principaux au cours d'une session.
  18. :::
  19. OpenCode est livré avec deux agents principaux intégrés, **Build** et **Plan**. Bien
  20. regardez-les ci-dessous.
  21. ---
  22. ### Sous-agents
  23. Les sous-agents sont des assistants spécialisés que les agents principaux peuvent appeler pour des tâches spécifiques. Vous pouvez également les invoquer manuellement en **@ les mentionnant** dans vos messages.
  24. OpenCode est livré avec deux sous-agents intégrés, **Général** et **Explore**. Nous verrons cela ci-dessous.
  25. ---
  26. ## Intégré
  27. OpenCode est livré avec deux agents principaux intégrés et deux sous-agents intégrés.
  28. ---
  29. ### Utiliser la construction
  30. *Mode* : `primary`
  31. Build est l'agent principal **par défaut** avec tous les outils activés. Il s'agit de l'agent standard pour les travaux de développement où vous avez besoin d'un accès complet aux opérations sur les fichiers et aux commandes système.
  32. ---
  33. ### Utiliser le forfait
  34. *Mode* : `primary`
  35. Un agent restreint conçu pour la planification et l'analyse. Nous utilisons un système d'autorisation pour vous donner plus de contrôle et empêcher toute modification involontaire.
  36. Par défaut, tous les éléments suivants sont définis sur `ask` :
  37. - `file edits` : toutes les écritures, correctifs et modifications
  38. - `bash` : toutes les commandes bash
  39. Cet agent est utile lorsque vous souhaitez que LLM analyse le code, suggère des modifications ou crée des plans sans apporter de modifications réelles à votre base de code.
  40. ---
  41. ### Utiliser général
  42. *Mode* : `subagent`
  43. Un agent polyvalent pour rechercher des questions complexes et exécuter des tâches en plusieurs étapes. Dispose d'un accès complet aux outils (sauf todo), il peut donc apporter des modifications aux fichiers en cas de besoin. Utilisez-le pour exécuter plusieurs unités de travail en parallèle.
  44. ---
  45. ### Utiliser explorer
  46. *Mode* : `subagent`
  47. Un agent rapide en lecture seule pour explorer les bases de code. Impossible de modifier les fichiers. Utilisez-le lorsque vous avez besoin de rechercher rapidement des fichiers par modèles, de rechercher du code par mots-clés ou de répondre à des questions sur la base de code.
  48. ---
  49. ### Utiliser le compactage
  50. *Mode* : `primary`
  51. Agent système caché qui compacte un contexte long en un résumé plus petit. Il s'exécute automatiquement en cas de besoin et n'est pas sélectionnable dans l'interface utilisateur.
  52. ---
  53. ### Utiliser le titre
  54. *Mode* : `primary`
  55. Agent système caché qui génère des titres de session courts. Il s'exécute automatiquement et n'est pas sélectionnable dans l'interface utilisateur.
  56. ---
  57. ### Utiliser le résumé
  58. *Mode* : `primary`
  59. Agent système caché qui crée des résumés de session. Il s'exécute automatiquement et n'est pas sélectionnable dans l'interface utilisateur.
  60. ---
  61. ## Usage
  62. 1. Pour les agents principaux, utilisez la touche **Tab** pour les parcourir au cours d'une session. Vous pouvez également utiliser votre raccourci clavier `switch_agent` configuré.
  63. 2. Les sous-agents peuvent être invoqués :
  64. - **Automatiquement** par les agents principaux pour des tâches spécialisées en fonction de leurs descriptions.
  65. - Manuellement en **@ mentionnant** un sous-agent dans votre message. Par exemple.
  66. ```txt frame="none"
  67. @general help me search for this function
  68. ```
  69. 3. **Navigation entre les sessions** : lorsque les sous-agents créent leurs propres sessions enfants, vous pouvez naviguer entre la session parent et toutes les sessions enfants en utilisant :
  70. - **\<Leader>+Right** (ou votre combinaison de touches `session_child_cycle` configurée) pour avancer via parent → enfant1 → enfant2 → ... → parent
  71. - **\<Leader>+Left** (ou votre combinaison de touches `session_child_cycle_reverse` configurée) pour revenir en arrière dans parent ← enfant1 ← enfant2 ← ... ← parent
  72. Cela vous permet de basculer en toute transparence entre la conversation principale et le travail spécialisé des sous-agents.
  73. ---
  74. ## Configurer
  75. Vous pouvez personnaliser les agents intégrés ou créer les vôtres via la configuration. Les agents peuvent être configurés de deux manières :
  76. ---
  77. ### JSON
  78. Configurez les agents dans votre fichier de configuration `opencode.json` :
  79. ```json title="opencode.json"
  80. {
  81. "$schema": "https://opencode.ai/config.json",
  82. "agent": {
  83. "build": {
  84. "mode": "primary",
  85. "model": "anthropic/claude-sonnet-4-20250514",
  86. "prompt": "{file:./prompts/build.txt}",
  87. "tools": {
  88. "write": true,
  89. "edit": true,
  90. "bash": true
  91. }
  92. },
  93. "plan": {
  94. "mode": "primary",
  95. "model": "anthropic/claude-haiku-4-20250514",
  96. "tools": {
  97. "write": false,
  98. "edit": false,
  99. "bash": false
  100. }
  101. },
  102. "code-reviewer": {
  103. "description": "Reviews code for best practices and potential issues",
  104. "mode": "subagent",
  105. "model": "anthropic/claude-sonnet-4-20250514",
  106. "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
  107. "tools": {
  108. "write": false,
  109. "edit": false
  110. }
  111. }
  112. }
  113. }
  114. ```
  115. ---
  116. ### Markdown
  117. Vous pouvez également définir des agents à l'aide de fichiers markdown. Placez-les dans :
  118. - Mondial : `~/.config/opencode/agents/`
  119. - Par projet : `.opencode/agents/`
  120. ```markdown title="~/.config/opencode/agents/review.md"
  121. ---
  122. description: Reviews code for quality and best practices
  123. mode: subagent
  124. model: anthropic/claude-sonnet-4-20250514
  125. temperature: 0.1
  126. tools:
  127. write: false
  128. edit: false
  129. bash: false
  130. ---
  131. You are in code review mode. Focus on:
  132. - Code quality and best practices
  133. - Potential bugs and edge cases
  134. - Performance implications
  135. - Security considerations
  136. Provide constructive feedback without making direct changes.
  137. ```
  138. Le nom du fichier Markdown devient le nom de l'agent. Par exemple, `review.md` crée un agent `review`.
  139. ---
  140. ## Options
  141. Examinons ces options de configuration en détail.
  142. ---
  143. ### Description
  144. Utilisez l'option `description` pour fournir une brève description de ce que fait l'agent et quand l'utiliser.
  145. ```json title="opencode.json"
  146. {
  147. "agent": {
  148. "review": {
  149. "description": "Reviews code for best practices and potential issues"
  150. }
  151. }
  152. }
  153. ```
  154. Il s'agit d'une option de configuration **obligatoire**.
  155. ---
  156. ### Température
  157. Contrôlez le caractère aléatoire et la créativité des réponses du LLM avec la configuration `temperature`.
  158. Des valeurs faibles rendent les réponses plus ciblées et déterministes, tandis que des valeurs plus élevées augmentent la créativité et la variabilité.
  159. ```json title="opencode.json"
  160. {
  161. "agent": {
  162. "plan": {
  163. "temperature": 0.1
  164. },
  165. "creative": {
  166. "temperature": 0.8
  167. }
  168. }
  169. }
  170. ```
  171. Les valeurs de température varient généralement de 0,0 à 1,0 :
  172. - **0,0-0,2** : réponses très ciblées et déterministes, idéales pour l'analyse et la planification du code
  173. - **0,3-0,5** : réponses équilibrées avec une certaine créativité, idéales pour les tâches de développement générales
  174. - **0,6-1,0** : réponses plus créatives et variées, utiles pour le brainstorming et l'exploration
  175. ```json title="opencode.json"
  176. {
  177. "agent": {
  178. "analyze": {
  179. "temperature": 0.1,
  180. "prompt": "{file:./prompts/analysis.txt}"
  181. },
  182. "build": {
  183. "temperature": 0.3
  184. },
  185. "brainstorm": {
  186. "temperature": 0.7,
  187. "prompt": "{file:./prompts/creative.txt}"
  188. }
  189. }
  190. }
  191. ```
  192. Si aucune température n'est spécifiée, OpenCode utilise les valeurs par défaut spécifiques au modèle ; généralement 0 pour la plupart des modèles, 0,55 pour les modèles Qwen.
  193. ---
  194. ### Pas maximum
  195. Contrôlez le nombre maximum d'itérations agents qu'un agent peut effectuer avant d'être obligé de répondre avec du texte uniquement. Cela permet aux utilisateurs qui souhaitent contrôler les coûts de fixer une limite aux actions agents.
  196. Si cela n'est pas défini, l'agent continuera à itérer jusqu'à ce que le modèle choisisse de s'arrêter ou que l'utilisateur interrompe la session.
  197. ```json title="opencode.json"
  198. {
  199. "agent": {
  200. "quick-thinker": {
  201. "description": "Fast reasoning with limited iterations",
  202. "prompt": "You are a quick thinker. Solve problems with minimal steps.",
  203. "steps": 5
  204. }
  205. }
  206. }
  207. ```
  208. Lorsque la limite est atteinte, l'agent reçoit une invite système spéciale lui demandant de répondre avec un résumé de son travail et des tâches restantes recommandées.
  209. :::caution
  210. L’ancien champ `maxSteps` est obsolète. Utilisez plutôt `steps`.
  211. :::
  212. ---
  213. ### Désactiver
  214. Définissez sur `true` pour désactiver l'agent.
  215. ```json title="opencode.json"
  216. {
  217. "agent": {
  218. "review": {
  219. "disable": true
  220. }
  221. }
  222. }
  223. ```
  224. ---
  225. ### Prompt
  226. Spécifiez un fichier d'invite système personnalisé pour cet agent avec la configuration `prompt`. Le fichier d'invite doit contenir des instructions spécifiques à l'objectif de l'agent.
  227. ```json title="opencode.json"
  228. {
  229. "agent": {
  230. "review": {
  231. "prompt": "{file:./prompts/code-review.txt}"
  232. }
  233. }
  234. }
  235. ```
  236. Ce chemin est relatif à l'emplacement du fichier de configuration. Cela fonctionne donc à la fois pour la configuration globale OpenCode et pour la configuration spécifique au projet.
  237. ---
  238. ### Modèle
  239. Utilisez la configuration `model` pour remplacer le modèle de cet agent. Utile pour utiliser différents modèles optimisés pour différentes tâches. Par exemple, un modèle de planification plus rapide, un modèle de mise en œuvre plus performant.
  240. :::tip
  241. Si vous ne spécifiez pas de modèle, les agents principaux utilisent le [modèle globalement configuré](/docs/config#models) tandis que les sous-agents utiliseront le modèle de l'agent principal qui a appelé le sous-agent.
  242. :::
  243. ```json title="opencode.json"
  244. {
  245. "agent": {
  246. "plan": {
  247. "model": "anthropic/claude-haiku-4-20250514"
  248. }
  249. }
  250. }
  251. ```
  252. L'ID de modèle dans votre configuration OpenCode utilise le format `provider/model-id`. Par exemple, si vous utilisez [OpenCode Zen](/docs/zen), vous utiliserez `opencode/gpt-5.1-codex` pour GPT 5.1 Codex.
  253. ---
  254. ### Outils
  255. Contrôlez quels outils sont disponibles dans cet agent avec la configuration `tools`. Vous pouvez activer ou désactiver des outils spécifiques en les définissant sur `true` ou `false`.
  256. ```json title="opencode.json" {3-6,9-12}
  257. {
  258. "$schema": "https://opencode.ai/config.json",
  259. "tools": {
  260. "write": true,
  261. "bash": true
  262. },
  263. "agent": {
  264. "plan": {
  265. "tools": {
  266. "write": false,
  267. "bash": false
  268. }
  269. }
  270. }
  271. }
  272. ```
  273. :::note
  274. La configuration spécifique à l'agent remplace la configuration globale.
  275. :::
  276. Vous pouvez également utiliser des caractères génériques pour contrôler plusieurs outils à la fois. Par exemple, pour désactiver tous les outils d'un serveur MCP :
  277. ```json title="opencode.json"
  278. {
  279. "$schema": "https://opencode.ai/config.json",
  280. "agent": {
  281. "readonly": {
  282. "tools": {
  283. "mymcp_*": false,
  284. "write": false,
  285. "edit": false
  286. }
  287. }
  288. }
  289. }
  290. ```
  291. [En savoir plus sur les outils](/docs/tools).
  292. ---
  293. ### Autorisations
  294. Vous pouvez configurer des autorisations pour gérer les actions qu'un agent peut effectuer. Actuellement, les autorisations pour les outils `edit`, `bash` et `webfetch` peuvent être configurées pour :
  295. - `"ask"` — Demander l'approbation avant d'exécuter l'outil
  296. - `"allow"` — Autoriser toutes les opérations sans approbation
  297. - `"deny"` – Désactiver l'outil
  298. ```json title="opencode.json"
  299. {
  300. "$schema": "https://opencode.ai/config.json",
  301. "permission": {
  302. "edit": "deny"
  303. }
  304. }
  305. ```
  306. Vous pouvez remplacer ces autorisations par agent.
  307. ```json title="opencode.json" {3-5,8-10}
  308. {
  309. "$schema": "https://opencode.ai/config.json",
  310. "permission": {
  311. "edit": "deny"
  312. },
  313. "agent": {
  314. "build": {
  315. "permission": {
  316. "edit": "ask"
  317. }
  318. }
  319. }
  320. }
  321. ```
  322. Vous pouvez également définir des autorisations dans les agents Markdown.
  323. ```markdown title="~/.config/opencode/agents/review.md"
  324. ---
  325. description: Code review without edits
  326. mode: subagent
  327. permission:
  328. edit: deny
  329. bash:
  330. "*": ask
  331. "git diff": allow
  332. "git log*": allow
  333. "grep *": allow
  334. webfetch: deny
  335. ---
  336. Only analyze code and suggest changes.
  337. ```
  338. Vous pouvez définir des autorisations pour des commandes bash spécifiques.
  339. ```json title="opencode.json" {7}
  340. {
  341. "$schema": "https://opencode.ai/config.json",
  342. "agent": {
  343. "build": {
  344. "permission": {
  345. "bash": {
  346. "git push": "ask",
  347. "grep *": "allow"
  348. }
  349. }
  350. }
  351. }
  352. }
  353. ```
  354. Cela peut prendre un modèle global.
  355. ```json title="opencode.json" {7}
  356. {
  357. "$schema": "https://opencode.ai/config.json",
  358. "agent": {
  359. "build": {
  360. "permission": {
  361. "bash": {
  362. "git *": "ask"
  363. }
  364. }
  365. }
  366. }
  367. }
  368. ```
  369. Et vous pouvez également utiliser le caractère générique `*` pour gérer les autorisations pour toutes les commandes.
  370. Puisque la dernière règle correspondante est prioritaire, placez le caractère générique `*` en premier et les règles spécifiques après.
  371. ```json title="opencode.json" {8}
  372. {
  373. "$schema": "https://opencode.ai/config.json",
  374. "agent": {
  375. "build": {
  376. "permission": {
  377. "bash": {
  378. "*": "ask",
  379. "git status *": "allow"
  380. }
  381. }
  382. }
  383. }
  384. }
  385. ```
  386. [En savoir plus sur les autorisations](/docs/permissions).
  387. ---
  388. ### Mode
  389. Contrôlez le mode de l'agent avec la configuration `mode`. L'option `mode` est utilisée pour déterminer comment l'agent peut être utilisé.
  390. ```json title="opencode.json"
  391. {
  392. "agent": {
  393. "review": {
  394. "mode": "subagent"
  395. }
  396. }
  397. }
  398. ```
  399. L'option `mode` peut être définie sur `primary`, `subagent` ou `all`. Si aucun `mode` n’est spécifié, la valeur par défaut est `all`.
  400. ---
  401. ### Caché
  402. Masquez un sous-agent du menu de saisie semi-automatique `@` avec `hidden: true`. Utile pour les sous-agents internes qui ne doivent être invoqués que par programme par d'autres agents via l'outil Tâche.
  403. ```json title="opencode.json"
  404. {
  405. "agent": {
  406. "internal-helper": {
  407. "mode": "subagent",
  408. "hidden": true
  409. }
  410. }
  411. }
  412. ```
  413. Cela affecte uniquement la visibilité de l'utilisateur dans le menu de saisie semi-automatique. Les agents masqués peuvent toujours être invoqués par le modèle via l'outil Tâche si les autorisations le permettent.
  414. :::note
  415. S'applique uniquement aux agents `mode: subagent`.
  416. :::
  417. ---
  418. ### Autorisations de tâches
  419. Contrôlez quels sous-agents un agent peut appeler via l'outil Tâche avec `permission.task`. Utilise des modèles globaux pour une correspondance flexible.
  420. ```json title="opencode.json"
  421. {
  422. "agent": {
  423. "orchestrator": {
  424. "mode": "primary",
  425. "permission": {
  426. "task": {
  427. "*": "deny",
  428. "orchestrator-*": "allow",
  429. "code-reviewer": "ask"
  430. }
  431. }
  432. }
  433. }
  434. }
  435. ```
  436. Lorsqu'il est défini sur `deny`, le sous-agent est entièrement supprimé de la description de l'outil Tâche, de sorte que le modèle ne tentera pas de l'invoquer.
  437. :::tip
  438. Les règles sont évaluées dans l'ordre et la **dernière règle correspondante l'emporte**. Dans l'exemple ci-dessus, `orchestrator-planner` correspond à la fois à `*` (refuser) et à `orchestrator-*` (autoriser), mais comme `orchestrator-*` vient après `*`, le résultat est `allow`.
  439. :::
  440. :::tip
  441. Les utilisateurs peuvent toujours appeler n'importe quel sous-agent directement via le menu de saisie semi-automatique `@`, même si les autorisations de tâche de l'agent le refuseraient.
  442. :::
  443. ---
  444. ### Couleur
  445. Personnalisez l'apparence visuelle de l'agent dans l'interface utilisateur avec l'option `color`. Cela affecte la façon dont l'agent apparaît dans l'interface.
  446. Utilisez une couleur hexadécimale valide (par exemple, `#FF5733`) ou une couleur de thème : `primary`, `secondary`, `accent`, `success`, `warning`, `error`, `info`.
  447. ```json title="opencode.json"
  448. {
  449. "agent": {
  450. "creative": {
  451. "color": "#ff6b6b"
  452. },
  453. "code-reviewer": {
  454. "color": "accent"
  455. }
  456. }
  457. }
  458. ```
  459. ---
  460. ### Top P
  461. Contrôlez la diversité des réponses avec l’option `top_p`. Alternative à la température pour contrôler le caractère aléatoire.
  462. ```json title="opencode.json"
  463. {
  464. "agent": {
  465. "brainstorm": {
  466. "top_p": 0.9
  467. }
  468. }
  469. }
  470. ```
  471. Les valeurs vont de 0,0 à 1,0. Les valeurs inférieures sont plus ciblées, les valeurs élevées plus diversifiées.
  472. ---
  473. ### Supplémentaire
  474. Toutes les autres options que vous spécifiez dans la configuration de votre agent seront **transmises directement** au fournisseur en tant qu'options de modèle. Cela vous permet d'utiliser des fonctionnalités et des paramètres spécifiques au fournisseur.
  475. Par exemple, avec les modèles de raisonnement de OpenAI, vous pouvez contrôler l'effort de raisonnement :
  476. ```json title="opencode.json" {6,7}
  477. {
  478. "agent": {
  479. "deep-thinker": {
  480. "description": "Agent that uses high reasoning effort for complex problems",
  481. "model": "openai/gpt-5",
  482. "reasoningEffort": "high",
  483. "textVerbosity": "low"
  484. }
  485. }
  486. }
  487. ```
  488. Ces options supplémentaires sont spécifiques au modèle et au fournisseur. Consultez la documentation de votre fournisseur pour connaître les paramètres disponibles.
  489. :::tip
  490. Exécutez `opencode models` pour voir une liste des modèles disponibles.
  491. :::
  492. ---
  493. ## Créer des agents
  494. Vous pouvez créer de nouveaux agents à l'aide de la commande suivante :
  495. ```bash
  496. opencode agent create
  497. ```
  498. Cette commande interactive va :
  499. 1. Demandez où enregistrer l'agent ; global ou spécifique à un projet.
  500. 2. Description de ce que l'agent doit faire.
  501. 3. Générez une invite système et un identifiant appropriés.
  502. 4. Vous permet de sélectionner les outils auxquels l'agent peut accéder.
  503. 5. Enfin, créez un fichier markdown avec la configuration de l'agent.
  504. ---
  505. ## Cas d'utilisation
  506. Voici quelques cas d’utilisation courants pour différents agents.
  507. - **Agent de build** : travail de développement complet avec tous les outils activés
  508. - **Agent de plan** : analyse et planification sans apporter de modifications
  509. - **Agent de révision** : révision de code avec accès en lecture seule et outils de documentation
  510. - **Agent de débogage** : axé sur l'investigation avec les outils bash et read activés
  511. - **Agent Docs** : écriture de documentation avec des opérations sur les fichiers mais pas de commandes système
  512. ---
  513. ## Exemples
  514. Voici quelques exemples d’agents qui pourraient vous être utiles.
  515. :::tip
  516. Avez-vous un agent que vous aimeriez partager ? [Soumettez un PR](https://github.com/anomalyco/opencode).
  517. :::
  518. ---
  519. ### Agent de documentation
  520. ```markdown title="~/.config/opencode/agents/docs-writer.md"
  521. ---
  522. description: Writes and maintains project documentation
  523. mode: subagent
  524. tools:
  525. bash: false
  526. ---
  527. You are a technical writer. Create clear, comprehensive documentation.
  528. Focus on:
  529. - Clear explanations
  530. - Proper structure
  531. - Code examples
  532. - User-friendly language
  533. ```
  534. ---
  535. ### Auditeur de sécurité
  536. ```markdown title="~/.config/opencode/agents/security-auditor.md"
  537. ---
  538. description: Performs security audits and identifies vulnerabilities
  539. mode: subagent
  540. tools:
  541. write: false
  542. edit: false
  543. ---
  544. You are a security expert. Focus on identifying potential security issues.
  545. Look for:
  546. - Input validation vulnerabilities
  547. - Authentication and authorization flaws
  548. - Data exposure risks
  549. - Dependency vulnerabilities
  550. - Configuration security issues
  551. ```