Skip to Content
ドキュメントはじめにモデルプロバイダー

Model Providers

Model providersは、異なる言語モデルとやり取りするために使用されます。MastraはVercel’s AI SDKをモデルルーティング層として使用し、多くのモデルに対して類似した構文を提供します:

src/mastra/agents/weather-agent.ts
import { openai } from "@ai-sdk/openai"; import { Agent } from "@mastra/core/agent"; const agent = new Agent({ name: "WeatherAgent", instructions: "Instructions for the agent...", model: openai("gpt-4-turbo"), }); const result = await agent.generate("What is the weather like?");

AI SDKモデルプロバイダーの種類

AI SDKのモデルプロバイダーは、主に3つのカテゴリに分類できます:

利用可能なすべてのモデルプロバイダーのリストは、AI SDKドキュメントで確認できます。

💡

AI SDKモデルプロバイダーは、Mastraプロジェクトにインストールする必要があるパッケージです。 インストールプロセス中に選択されたデフォルトのモデルプロバイダーがプロジェクトにインストールされます。

異なるモデルプロバイダーを使用したい場合は、そのプロバイダーもプロジェクトにインストールする必要があります。

以下は、Mastraエージェントが異なるタイプのモデルプロバイダーを使用するように設定する方法の例です:

公式プロバイダー

公式モデルプロバイダーはAI SDKチームによって保守されています。 これらのパッケージは通常@ai-sdk/で始まります。例:@ai-sdk/anthropic@ai-sdk/openaiなど。

src/mastra/agents/weather-agent.ts
import { openai } from "@ai-sdk/openai"; import { Agent } from "@mastra/core/agent"; const agent = new Agent({ name: "WeatherAgent", instructions: "Instructions for the agent...", model: openai("gpt-4-turbo"), });

AI SDKプロバイダーからヘルパー関数をインポートすることで、追加の設定を行うことができます。 以下はOpenAIプロバイダーを使用した例です:

src/mastra/agents/weather-agent.ts
import { createOpenAI } from "@ai-sdk/openai"; import { Agent } from "@mastra/core/agent" const openai = createOpenAI({ baseUrl: "<your-custom-base-url>", apiKey: "<your-custom-api-key>", ...otherOptions }); const agent = new Agent({ name: "WeatherAgent", instructions: "Instructions for the agent...", model: openai("<model-name>"), });

OpenAI互換プロバイダー

一部の言語モデルプロバイダーはOpenAI APIを実装しています。これらのプロバイダーには、@ai-sdk/openai-compatibleプロバイダーを使用できます。

以下は一般的なセットアップとプロバイダーインスタンスの作成方法です:

src/mastra/agents/weather-agent.ts
import { createOpenAICompatible } from "@ai-sdk/openai-compatible"; import { Agent } from "@mastra/core/agent"; const openaiCompatible = createOpenAICompatible({ name: "<model-name>", baseUrl: "<base-url>", apiKey: "<api-key>", headers: {}, queryParams: {}, fetch: async (url, options) => { // custom fetch logic return fetch(url, options); } }); const agent = new Agent({ name: "WeatherAgent", instructions: "Instructions for the agent...", model: openaiCompatible("<model-name>"), });

OpenAI互換プロバイダーの詳細については、AI SDKドキュメントを参照してください。

コミュニティプロバイダー

AI SDKはLanguage Model Specificationを提供しています。 この仕様に従うことで、AI SDKと互換性のある独自のモデルプロバイダーを作成できます。

一部のコミュニティプロバイダーはこの仕様を実装しており、AI SDKと互換性があります。 その一つである、ollama-ai-providerパッケージで利用可能なOllamaプロバイダーを見てみましょう。

以下は例です:

src/mastra/agents/weather-agent.ts
import { ollama } from "ollama-ai-provider"; import { Agent } from "@mastra/core/agent"; const agent = new Agent({ name: "WeatherAgent", instructions: "Instructions for the agent...", model: ollama("llama3.2:latest"), });

Ollamaプロバイダーは以下のように設定することもできます:

src/mastra/agents/weather-agent.ts
import { createOllama } from "ollama-ai-provider"; import { Agent } from "@mastra/core/agent"; const ollama = createOllama({ baseUrl: "<your-custom-base-url>", ...otherOptions, }); const agent = new Agent({ name: "WeatherAgent", instructions: "Instructions for the agent...", model: ollama("llama3.2:latest"), });

Ollamaプロバイダーやその他の利用可能なコミュニティプロバイダーの詳細については、AI SDK documentationを参照してください。

💡

この例ではOllamaプロバイダーの使用方法を示していますが、openrouterazureなどの他のプロバイダーも使用できます。

異なるAIプロバイダーは設定に異なるオプションを持つ場合があります。詳細については、AI SDK documentationを参照してください。