MastraでOpenRouterを使用する
OpenRouterをMastraと統合して、OpenRouterで利用可能な多数のモデルを活用しましょう。
Mastraプロジェクトを初期化する
Mastraを始める最も簡単な方法は、mastra
CLIを使用して新しいプロジェクトを初期化することです:
npx create-mastra@latest
プロジェクトをセットアップするためのプロンプトが表示されます。この例では、以下を選択してください:
- プロジェクト名:my-mastra-openrouter-app
- コンポーネント:Agents(推奨)
- デフォルトプロバイダーには、OpenAI(推奨)を選択 - 後でOpenRouterを手動で設定します
- オプションでサンプルコードを含める
OpenRouterを設定する
create-mastra
でプロジェクトを作成した後、プロジェクトルートに.env
ファイルが見つかります。
セットアップ時にOpenAIを選択したので、OpenRouterを手動で設定します:
.env
OPENROUTER_API_KEY=
プロジェクトから@ai-sdk/openai
パッケージを削除します:
npm uninstall @ai-sdk/openai
次に、@openrouter/ai-sdk-provider
パッケージをインストールします:
npm install @openrouter/ai-sdk-provider
AgentでOpenRouterを使用するように設定する
エージェントがOpenRouterを使用するように設定します。
src/mastra/agents/assistant.ts
import { Agent } from "@mastra/core/agent";
import { createOpenRouter } from "@openrouter/ai-sdk-provider";
const openrouter = createOpenRouter({
apiKey: process.env.OPENROUTER_API_KEY,
})
export const assistant = new Agent({
name: "assistant",
instructions: "You are a helpful assistant.",
model: openrouter("anthropic/claude-sonnet-4"),
})
エージェントをMastraインスタンスに登録することを忘れずに:
src/mastra/index.ts
import { assistant } from "./agents/assistant";
export const mastra = new Mastra({
agents: { assistant }
})
エージェントを実行してテストする
npm run dev
これによりMastra開発サーバーが起動します。
プレイグラウンドの場合はhttp://localhost:4111 にアクセスするか、Mastra APIのhttp://localhost:4111/api/agents/assistant/stream 経由でエージェントをテストできます。
高度な設定
OpenRouterリクエストをより詳細に制御するために、追加の設定オプションを渡すことができます。
プロバイダー全体のオプション:
OpenRouterプロバイダーにプロバイダー全体のオプションを渡すことができます:
src/mastra/agents/assistant.ts
import { Agent } from "@mastra/core/agent";
import { createOpenRouter } from "@openrouter/ai-sdk-provider";
const openrouter = createOpenRouter({
apiKey: process.env.OPENROUTER_API_KEY,
extraBody: {
reasoning: {
max_tokens: 10,
}
}
})
export const assistant = new Agent({
name: "assistant",
instructions: "You are a helpful assistant.",
model: openrouter("anthropic/claude-sonnet-4"),
})
モデル固有のオプション:
OpenRouterプロバイダーにモデル固有のオプションを渡すことができます:
src/mastra/agents/assistant.ts
import { Agent } from "@mastra/core/agent";
import { createOpenRouter } from "@openrouter/ai-sdk-provider";
const openrouter = createOpenRouter({
apiKey: process.env.OPENROUTER_API_KEY,
})
export const assistant = new Agent({
name: "assistant",
instructions: "You are a helpful assistant.",
model: openrouter("anthropic/claude-sonnet-4", {
extraBody: {
reasoning: {
max_tokens: 10,
}
}
}),
})
プロバイダー固有のオプション:
OpenRouterプロバイダーにプロバイダー固有のオプションを渡すことができます:
// プロバイダー固有のオプションでレスポンスを取得
const response = await assistant.generate([
{
role: 'system',
content:
'You are Chef Michel, a culinary expert specializing in ketogenic (keto) diet...',
providerOptions: {
// プロバイダー固有のオプション - キーは 'anthropic' または 'openrouter' を指定可能
anthropic: {
cacheControl: { type: 'ephemeral' },
},
},
},
{
role: 'user',
content: 'Can you suggest a keto breakfast?',
},
]);