Skip to Content
リファレンス音声リファレンス: voice.addTools() | Voice Providers | Mastra ドキュメント

voice.addTools()

addTools() メソッドは、音声プロバイダーにツール(関数)を追加し、モデルがリアルタイムの対話中にそれらを呼び出せるようにします。これにより、音声アシスタントは情報の検索、計算の実行、外部システムとの連携などのアクションを行うことが可能になります。

使用例

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 ({ context }) => { // Fetch weather data from an API const response = await fetch( `https://api.weather.com?location=${encodeURIComponent(context.location)}`, ); const data = await response.json(); return { message: `The current temperature in ${context.location} is ${data.temperature}°F with ${data.conditions}.`, }; }, }); // Initialize a real-time voice provider const voice = new OpenAIRealtimeVoice({ realtimeConfig: { model: "gpt-4o-mini-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();

パラメーター


tools:

ToolsInput
音声モデルが呼び出すことができるツール定義を含むオブジェクト

戻り値

このメソッドは値を返しません。

注意

  • ツールは、name、description、input schema、execute function を含む Mastra ツール形式に従う必要があります
  • このメソッドは、主に function calling をサポートするリアルタイム音声プロバイダーで使用されます
  • ツールをサポートしない音声プロバイダーで呼び出された場合、警告が記録され、何も行われません
  • このメソッドで追加されたツールは、通常、関連する Agent によって提供されるツールと組み合わされます
  • 最良の結果を得るには、会話を開始する前(connect() を呼び出す前)にツールを追加してください
  • モデルがツールを使用することを決定した場合、音声プロバイダーがツールハンドラーの呼び出しを自動的に処理します
  • addTools() を複数回呼び出すと、プロバイダーの実装によっては既存のツールが置き換えられるか、マージされる場合があります