Passer au contenu principal

Outils

Les outils intégrés du Copilot CLI sont activés par défaut. Ce que vous configurez ici, ce sont des outils personnalisés.

Utilisation de base

Spécifiez la définition des outils dans tools de SessionConfig. Tool::define() est un helper équivalent à defineTool dans d’autres versions linguistiques. Le paramètre parameters accepte le JsonSchema utilisé par Laravel MCP. Vous pouvez aussi passer directement un tableau sans JsonSchema.

skipPermission

Avec skipPermission: true, l’outil s’exécute sans prompt de permission.

Regrouper les outils par espace de noms (expérimental)

Avec namespace, vous pouvez regrouper des outils liés dans la recherche d’outils du modèle. Avec les modèles et fournisseurs compatibles, les outils chargés à la demande sont présentés ensemble. Dans les autres environnements, ainsi que pour les outils toujours chargés, ils restent traités comme des outils individuels, comme auparavant.
name doit comporter de 1 à 64 caractères parmi les caractères alphanumériques ASCII, le tiret bas et le trait d’union. description est facultatif. L’espace de noms ne modifie pas le nom de l’outil : le gestionnaire est toujours appelé via lookup_fruit. Il s’agit d’une fonctionnalité expérimentale. Un espace de noms invalide génère un avertissement et l’outil est traité sans espace de noms.

$invocation

Le second argument du gestionnaire d’outil, $invocation, reçoit les champs suivants.

Détails du protocole

En Protocol v3 (défaut actuel), les appels d’outils sont diffusés comme des événements de session (external_tool.requested) plutôt que comme des requêtes JSON-RPC. Le SDK traite ces événements en interne et répond via le RPC session.tools.handlePendingToolCall. L’usage de SessionConfig est inchangé. Il suffit de passer les définitions à tools, le SDK absorbe les différences de protocole.

Convertir un CallToolResult MCP

Pour convertir un résultat d’outil d’un serveur MCP (CallToolResult) en ToolResultObject du Copilot SDK, utilisez McpCallToolResult::convert(). Les résultats d’outils MCP sont un tableau de blocs content (text, image, resource, etc.), mais le Copilot SDK attend un ToolResultObject, d’où la conversion.
Pour les dernières informations, consultez le dépôt GitHub.
Dernière modification le 26 octobre 2026