Donner des outils au modèle
Choisissez les outils de la sandbox ou définissez vos propres outils pour le harness intégré.
Donner des outils prêts à l’emploi au modèle
Section intitulée « Donner des outils prêts à l’emploi au modèle »Passez les outils ou ensembles d’outils nécessaires au modèle à createHarness({ tools }). Le modèle peut appeler uniquement les outils déclarés : commencez par ceux dont la tâche a besoin.
Cet agent de revue lit, recherche et consulte l’historique, mais ne peut modifier aucun fichier. Chaque appel s’exécute dans la sandbox du dispatch, à la racine du dépôt.
Choisir les ensembles d’outils
Section intitulée « Choisir les ensembles d’outils »| Ensemble | Outils | Lecture seule | Ce que le modèle peut faire |
|---|---|---|---|
createHarnessFileTools() | read_file, list_files | Oui | Lire les fichiers UTF-8 et lister les fichiers suivis ou non ignorés par Git. |
createHarnessSearchTools() | search | Oui | Chercher une expression régulière étendue dans les fichiers (git grep), par chemin, glob et casse. |
createHarnessGitTools() | git | Oui | Lancer git status, diff, log ou show avec des arguments supplémentaires. |
createHarnessEditTools() | write_file, edit_file | Non | Créer des fichiers et remplacer du texte dans les fichiers existants. |
createHarnessShellTools() | shell | Non | Lancer une commande sh -c sans entrée et lire son code de sortie et sa sortie. |
Les chemins restent à l’intérieur du dépôt. Pour configurer les limites des commandes, consultez createHarnessShellTools.
Définir un outil
Section intitulée « Définir un outil »Cet outil propose au modèle de lancer les tests dans la sandbox. Le modèle peut demander tous les tests ou limiter l’exécution à un nom.
Référence API : HarnessToolOptions, HarnessToolContext et ToolOutput.
Un nom d’outil compte de 1 à 64 lettres, chiffres, _ ou -. Une erreur levée renvoie son message au modèle, sauf si toolExecution.onError vaut "fail" (voir Harness intégré).
Regrouper des outils
Section intitulée « Regrouper des outils »defineHarnessToolset() réunit des outils et d’autres ensembles sous un même nom, pour les partager entre plusieurs harness.
Chaque nom d’outil doit être unique dans le harness : ses outils, ses ensembles imbriqués et les outils de ses compétences. Un doublon échoue dès la création du harness.
Utiliser les outils d’un serveur MCP
Section intitulée « Utiliser les outils d’un serveur MCP »Pour exposer les outils d’un serveur existant, déclarez-le avec createHarness({ mcpServers }). Serveurs MCP détaille la configuration ; ses noms d’outils partagent le même espace de noms.
executes’exécute dans le processus Outpost, sur l’hôte. Passez parcontext.sandboxpour les fichiers et les commandes ; des API hôte commenode:fscontourneraient la sandbox.readOnlyguide l’ordonnancement, il n’impose rien. Un outil marqué en lecture seule peut quand même écrire si son code le fait.- Un résultat de plus de 100 000 caractères est tronqué avant d’atteindre le modèle.
API : defineHarnessTool · defineHarnessToolset · HarnessToolContext · ToolOutput · ToolResources · createHarnessFileTools · createHarnessSearchTools · createHarnessGitTools · createHarnessEditTools · createHarnessShellTools.