モデルプロバイダー
モデルプロバイダーは、さまざまな言語モデルと対話するために使用されます。Mastra はモデルのルーティング層としてVercel の AI SDK を使用し、多数のモデルに対して統一的な構文を提供します:
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
など)。
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 プロバイダーを使用した例です。
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
を使用できます。
一般的なセットアップとプロバイダーインスタンスの作成方法は次のとおりです。
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-v2
パッケージで提供されている Ollama プロバイダーを取り上げます。
例:
import { ollama } from "ollama-ai-provider-v2";
import { Agent } from "@mastra/core/agent";
const agent = new Agent({
name: "WeatherAgent",
instructions: "Instructions for the agent...",
model: ollama("llama3.2:latest"),
});
Ollama プロバイダーは次のように設定することもできます:
import { createOllama } from "ollama-ai-provider-v2";
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 ドキュメント をご参照ください。
この例では Ollama プロバイダーの使用方法を示していますが、openrouter
や azure
など、他のプロバイダーも利用できます。
AI プロバイダーごとに設定可能なオプションは異なる場合があります。詳しくは AI SDK ドキュメント をご参照ください。