> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # Nuxt プロジェクトに Mastra を統合する このガイドでは、Mastra を使用して Tool を呼び出す AI Agent を構築し、サーバールートから Agent を直接 import して呼び出すことで Nuxt に接続します。 [AI SDK UI](https://ai-sdk.dev/docs/ai-sdk-ui/overview) を使用して、Vue で美しくインタラクティブなチャット体験を作成します。 ## 始める前に - サポートされている[モデル Provider](https://mastra.zisheng.pro/ja/models) の API キーが必要です。特に希望がなければ、[OpenAI](https://mastra.zisheng.pro/ja/models/providers/openai) を使用してください。 - Node.js `v22.13.0` 以降をインストールしてください ## 新しい Nuxt アプリを作成する(任意) Nuxt アプリがすでにある場合は、次の手順に進んでください。 次のコマンドを実行して、[新しい Nuxt アプリを作成](https://nuxt.com/docs/getting-started/installation)します。 **npm**: ```bash npm create nuxt@latest mastra-nuxt -- --template minimal --packageManager npm --gitInit --modules ``` **pnpm**: ```bash pnpm create nuxt mastra-nuxt --template minimal --packageManager npm --gitInit --modules ``` **Yarn**: ```bash yarn create nuxt mastra-nuxt --template minimal --packageManager npm --gitInit --modules ``` **Bun**: ```bash bunx create-nuxt mastra-nuxt --template minimal --packageManager npm --gitInit --modules ``` これにより `mastra-nuxt` というプロジェクトが作成されますが、任意の名前に置き換えられます。 ## Mastra を初期化する Nuxt プロジェクトに移動します。 ```bash cd mastra-nuxt ``` [`mastra init`](https://mastra.zisheng.pro/ja/reference/cli/mastra) を実行します。プロンプトが表示されたら、Provider(OpenAI など)を選択してキーを入力します。 **npm**: ```bash npx mastra@latest init ``` **pnpm**: ```bash pnpm dlx mastra@latest init ``` **Yarn**: ```bash yarn dlx mastra@latest init ``` **Bun**: ```bash bun x mastra@latest init ``` これにより、天気 Agent のサンプルと次のファイルを含む `mastra` フォルダーが作成されます。 - `index.ts` - Memory を含む Mastra の設定 - `tools/weather-tool.ts` - 指定した場所の天気を取得する Tool - `agents/weather-agent.ts`- Tool を使用するプロンプトを備えた天気 Agent 次の手順では、Nuxt のサーバールートから `weather-agent.ts` を呼び出します。 ## AI SDK UI をインストールする AI SDK UI と Mastra アダプターをインストールします。 **npm**: ```bash npm install @mastra/ai-sdk@latest @ai-sdk/vue ai ``` **pnpm**: ```bash pnpm add @mastra/ai-sdk@latest @ai-sdk/vue ai ``` **Yarn**: ```bash yarn add @mastra/ai-sdk@latest @ai-sdk/vue ai ``` **Bun**: ```bash bun add @mastra/ai-sdk@latest @ai-sdk/vue ai ``` ## チャットルートを作成する `server/api/chat.ts` を作成します。 ```ts import { handleChatStream } from '@mastra/ai-sdk' import { toAISdkV5Messages } from '@mastra/ai-sdk/ui' import { createUIMessageStreamResponse } from 'ai' import { mastra } from '../../src/mastra' const THREAD_ID = 'example-user-id' const RESOURCE_ID = 'weather-chat' export default defineEventHandler(async event => { const method = event.method if (method === 'POST') { const params = await readBody(event) const stream = await handleChatStream({ mastra, agentId: 'weather-agent', params: { ...params, memory: { ...params.memory, thread: THREAD_ID, resource: RESOURCE_ID, }, }, }) return createUIMessageStreamResponse({ stream }) } if (method === 'GET') { const memory = await mastra.getAgentById('weather-agent').getMemory() let response = null try { response = await memory?.recall({ threadId: THREAD_ID, resourceId: RESOURCE_ID, }) } catch { console.log('No previous messages found.') } const uiMessages = toAISdkV5Messages(response?.messages || []) return uiMessages } }) ``` `POST` ハンドラーはプロンプトを受け取り、Agent のレスポンスを AI SDK 形式でストリーミングします。一方、`GET` ハンドラーは Memory からメッセージ履歴を取得し、クライアントの再読み込み時に UI を復元できるようにします。 ## チャット UI を追加する `app/app.vue` の内容を次に置き換えます。 ```html ``` このコンポーネントは [`Chat()`](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat) を `/api/chat` エンドポイントに接続し、そこへプロンプトを送信して、レスポンスをチャンク単位でストリーミングします。 レスポンスのテキストはカスタムのメッセージスタイルでレンダリングされ、Tool の呼び出しは折りたたみ可能な details 要素に表示されます。 ## Agent をテストする 1. `npm run dev` で Nuxt アプリを実行します 2. でチャットを開きます 3. 天気について質問してみます。API キーが正しく設定されていれば、レスポンスが返されます ## 次のステップ Nuxt で Mastra Agent を構築できました!🎉 ここから、独自の Tool やロジックを追加してプロジェクトを拡張できます。 - [Agent](https://mastra.zisheng.pro/ja/docs/agents/overview) について詳しく学ぶ - Agent に独自の [Tool](https://mastra.zisheng.pro/ja/docs/agents/using-tools) を追加する - Agent に人間のような [Memory](https://mastra.zisheng.pro/ja/docs/memory/overview) を追加する 準備ができたら、Mastra と AI SDK UI および Nuxt の統合方法や、Agent を任意の場所へデプロイする方法について詳しく学びましょう。 - Mastra を [AI SDK UI](https://mastra.zisheng.pro/ja/guides/build-your-ui/ai-sdk-ui) と統合する - Agent を[任意の場所](https://mastra.zisheng.pro/ja/docs/deployment/overview)にデプロイする