Aller au contenu principal

voice.addTools()

La méthode addTools() dote un fournisseur Voice de Tools (fonctions) que le modèle peut appeler lors d’interactions en temps réel. Les assistants vocaux peuvent utiliser ces Tools pour rechercher des informations ou effectuer des calculs. Ils peuvent également interagir avec des systèmes externes.

Exemple d’utilisation
Lien direct vers Exemple d’utilisation

import { OpenAIRealtimeVoice } from '@mastra/voice-openai-realtime'
import { createTool } from '@mastra/core/tools'
import { z } from 'zod'

// Define tools
const weatherTool = createTool({
id: 'getWeather',
description: 'Get the current weather for a location',
inputSchema: z.object({
location: z.string().describe('The city and state, e.g. San Francisco, CA'),
}),
outputSchema: z.object({
message: z.string(),
}),
execute: async inputData => {
// Fetch weather data from an API
const response = await fetch(
`https://api.weather.com?location=${encodeURIComponent(inputData.location)}`,
)
const data = await response.json()
return {
message: `The current temperature in ${inputData.location} is ${data.temperature}°F with ${data.conditions}.`,
}
},
})

// Initialize a real-time voice provider
const voice = new OpenAIRealtimeVoice({
realtimeConfig: {
model: 'gpt-5.1-realtime',
apiKey: process.env.OPENAI_API_KEY,
},
})

// Add tools to the voice provider
voice.addTools({
getWeather: weatherTool,
})

// Connect to the real-time service
await voice.connect()

Paramètres
Lien direct vers Paramètres


tools:

ToolsInput
Objet contenant les définitions des Tools que le modèle vocal peut appeler

Valeur renvoyée
Lien direct vers Valeur renvoyée

Cette méthode ne renvoie aucune valeur.

Remarques
Lien direct vers Remarques

  • Les Tools doivent respecter le format de Tool Mastra et comporter un nom, une description, un schéma d’entrée et une fonction d’exécution.
  • Cette méthode s’utilise principalement avec les fournisseurs Voice en temps réel qui prennent en charge l’appel de fonctions.
  • Si elle est appelée sur un fournisseur Voice qui ne prend pas en charge les Tools, elle consigne un avertissement et n’effectue aucune action.
  • Les Tools ajoutés avec cette méthode sont généralement combinés à ceux fournis par un Agent associé.
  • Pour de meilleurs résultats, ajoutez les Tools avant de démarrer une conversation, c’est-à-dire avant d’appeler connect().
  • Le fournisseur Voice gère automatiquement l’appel des gestionnaires de Tools lorsque le modèle décide de les utiliser.
  • Selon l’implémentation du fournisseur, plusieurs appels à addTools() peuvent remplacer les Tools existants ou être fusionnés avec eux.