Vai al contenuto principale

Strumenti

Gli strumenti integrati di Copilot CLI sono abilitati di default. Qui puoi specificare gli strumenti personalizzati.

Uso di base

Specifica la definizione degli strumenti in tools di SessionConfig. Tool::define() è un helper analogo a defineTool delle altre versioni di linguaggio. In parameters puoi usare il JsonSchema che Laravel stesso adotta in Laravel MCP. È possibile anche specificare direttamente un array senza JsonSchema.

skipPermission

Specificando skipPermission: true, lo strumento può essere eseguito senza prompt di permesso.

Raggruppare gli strumenti per namespace (sperimentale)

Specificando namespace, puoi raggruppare strumenti correlati nella ricerca degli strumenti del modello. Con i modelli e i provider supportati, gli strumenti a caricamento differito vengono presentati insieme. In altri ambienti, o per gli strumenti sempre caricati, continuano a essere trattati come strumenti singoli come in precedenza.
name deve essere composto da 1–64 caratteri tra lettere e numeri ASCII, underscore e trattini. description è facoltativo. Il namespace non modifica il nome dello strumento, quindi l’handler continua a essere invocato come lookup_fruit. Si tratta di una funzionalità sperimentale. Un namespace non valido genera un avviso e lo strumento viene trattato come privo di namespace.

$invocation

Al secondo argomento $invocation dell’handler dello strumento vengono passati i seguenti campi.

Dettagli di protocollo

Nel Protocol v3 (default attuale) le chiamate a strumenti vengono trasmesse come eventi di sessione (external_tool.requested) anziché come richieste JSON-RPC. L’SDK elabora questo evento internamente e risponde con l’RPC session.tools.handlePendingToolCall. L’utilizzo di SessionConfig non cambia. Basta passare la definizione in tools: le differenze di protocollo sono assorbite dall’SDK.

Conversione di MCP CallToolResult

Per convertire il risultato di uno strumento MCP (CallToolResult) in ToolResultObject di Copilot SDK, usa McpCallToolResult::convert(). I risultati degli strumenti MCP sono un array di blocchi content (text, image, resource, ecc.), ma Copilot SDK si aspetta il formato ToolResultObject, quindi serve la conversione.
Per le informazioni più recenti fai riferimento al repository GitHub.
Ultima modifica il 26 ottobre 2026