Outils OpenCode
Les capacités essentielles d'OpenCode ne proviennent pas seulement du grand modèle lui-même, mais aussi desoutils qu'il peut invoquer。
L'essence des outils : faire passer le LLM de la capacité de parler à la capacité de faire des choses.
Outils = capacité d'exécution d'OpenCode, tandis que permissions = limites de sécurité.
1. Que sont les outils
Les outils sont les interfaces de capacité permettant au LLM d'effectuer des opérations dans un projet, par exemple :
- Lire du code
- Modifier des fichiers
- Exécuter des commandes
- Rechercher du code
- Accéder au réseau
Sans outils : peut seulement générer du code
Avec les outils : peutmanipuler directement le projet
2. Contrôle des permissions des outils (Le plus important)
Par défaut :
- Tous les outils sont activés
- Et peuvent être exécutés sans confirmation
Les environnements de production doivent configurer les autorisations !
1. Configuration de base des autorisations
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "deny",
"bash": "ask",
"webfetch": "allow"
}
}
| Valeur d'autorisation | Description |
|---|---|
| autoriser | Autoriser l'exécution directe |
| refuser | Complètement interdit |
| ask | Nécessite une confirmation manuelle avant l'exécution |
2. Contrôle des jokers
Vous pouvez contrôler les outils par lots :
{
"permission": {
"mymcp_*": "ask"
}
}
Tous les outils provenant de MCP nécessitent une approbation
3. Outils intégrés expliqués
OpenCode est livré avec un ensemble complet d'outils de niveau ingénierie :
1. bash (Exécution de commandes)
{
"permission": {
"bash": "allow"
}
}
Objectif :
- Exécuter des commandes shell
- Comme npm install, git status
Risque :Élevé (recommandé de définir sur ask)
2. edit (Outil principal)
{
"permission": {
"edit": "allow"
}
}
Objectif :
- Modifier les fichiers existants
- Basé sur un remplacement précis de texte
Remarque :Il s'agit de la capacité essentielle permettant à l'IA de modifier du code
3. write (Création de fichiers)
Objectif :
- Créer de nouveaux fichiers
- Écraser les fichiers existants
Remarque :
write est contrôlé par l'autorisation d'édition
4. read (Lire le fichier)
{
"permission": {
"read": "allow"
}
}
Objectif :
- Lire les fichiers de code
- Prend en charge la lecture ligne par ligne
Risque :Faible (recommandé de toujours autoriser)
5. grep (Recherche de contenu)
{
"permission": {
"grep": "allow"
}
}
Objectif :
- Rechercher dans le code avec des expressions régulières
6. glob (Correspondance de fichiers)
Objectif :
- Trouver des chemins de fichiers (par ex., src/**/*.ts)
7. list (Navigation dans les répertoires)
Objectif :
- Lister la structure des répertoires
8. patch (Application de correctif)
Objectif :
- Appliquer les patchs de diff
Remarque :Contrôlé par la permission d'édition
9. lsp (Expérimental)
Objectif :
- Analyse intelligente du code (aller à la définition, rechercher les références)
Comment l'activer :
OPENCODE_EXPERIMENTAL_LSP_TOOL=true
10. skill (Chargement des compétences)
Objectif :
- Charger SKILL.md
- Améliorer le comportement de l'IA
11. todowrite (Gestion des tâches)
Objectif :
- Maintenir les listes de tâches
- Suivre des flux de travail complexes
12. webfetch (Lecture de pages web)
Objectif :
- Récupérer le contenu d'une URL spécifiée
13. websearch (Recherche en ligne)
Comment l'activer :
OPENCODE_ENABLE_EXA=1 opencode
Objectif :
- Rechercher des informations sur Internet
Différence :
- websearch : trouver des informations (découverte)
- webfetch : lire le contenu (récupération)
14. question (Questionnement interactif)
Objectif :
- Poser des questions à l'utilisateur
- Recueillir les exigences
Adapté à :
- Exigences peu claires
- Lorsque des décisions de l'utilisateur sont nécessaires
4. Outils personnalisés
Vous pouvez définir vos propres outils pour permettre à l'IA d'exécuter une logique personnalisée.
Par exemple :
- Appel d'API internes
- Exploiter des bases de données
- Exécuter la logique métier
Essence:Permettre au LLM d'appeler des fonctions
5. Serveurs MCP (capacités avancées)
MCP (Model Context Protocol) vous permet de connecter des systèmes externes :
- Bases de données
- API tierces
- Services internes
Cela équivaut à connecter des "capacités externes" à l'IA
6. Mécanisme sous-jacent (important)
OpenCode utilise ripgrep comme moteur de recherche :
- Respecte .gitignore
- Ignore les répertoires comme node_modules par défaut
Comment remplacer les règles d’ignorance
Créez un fichier :
.ignore
Exemple :
!node_modules/ !dist/ !build/
Forcer l’inclusion de ces répertoires
7. Bonnes pratiques (vivement recommandées)
- read / grep / glob → autoriser
- edit → demander (phase de développement)
- bash → demander (environnement de production)
- webfetch → autoriser
Principes fondamentaux :
- La lecture peut être ouverte
- Les modifications doivent être contrôlées
- Soyez prudent avec l'exécution des commandes