mcpField
A
ai-sdk-core

ai-sdk-core

github.com/secondsky開発240141 回インストール5 週間前に更新
リポジトリ

ai-sdk-core について

ai-sdk-core は、Vercel AI SDK v5 でバックエンド AI 機能を構築するためのスキルです。テキストや構造化データの生成、ストリーミング、ツール呼び出し、複数ステップのエージェント、プロバイダー設定を扱います。

主な機能

  1. 01テキストと構造化データの生成
  2. 02ストリーミング生成への対応
  3. 03複数モデルプロバイダーの設定
  4. 04ツール呼び出しとエージェントの実装
  5. 05v4 から v5 への移行案内

活用シーン

  1. 01サーバー側のテキスト生成の構築
  2. 02スキーマを使った構造化データの抽出
  3. 03ツールを使う複数ステップのエージェント作成
  4. 04AI SDK v4 プロジェクトの v5 への移行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/secondsky/claude-skills --skill ai-sdk-core

インストール後、Claude Code で/ai-sdk-coreを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
core-functions.md
error-catalog.md
links-to-official-docs.md
production-guide.md
production-patterns.md
provider-setup.md
providers-quickstart.md
tools-and-agents.md
top-errors.md
v4-to-v5-migration.md
v5-breaking-changes.md
scripts/
check-versions.sh
templates/
agent-with-tools.ts
anthropic-setup.ts
cloudflare-worker-integration.ts
generate-object-zod.ts
generate-text-basic.ts
google-setup.ts
multi-step-execution.ts
nextjs-server-action.ts
openai-setup.ts
package.json
stream-object-zod.ts
stream-text-chat.ts
tools-basic.ts

詳細

AI SDK コア

Vercel AI SDK v5 による、本番環境向けのバックエンド AI です。

最終更新日:2025-11-21

目次

  1. クイックスタート
  2. コア関数
  3. プロバイダーのセットアップと構成
  4. ツール呼び出しとエージェント
  5. v4 から v5 への重要な移行
  6. よくあるエラー 12 件と解決策
  7. 本番環境向けのベストプラクティス
  8. リファレンスを読み込むタイミング
  9. このスキルを使うタイミング
  10. 依存関係とバージョン
  11. 公式ドキュメントへのリンク
  12. テンプレートとリファレンス

クイックスタート(5 分)

インストール
bun add ai @ai-sdk/openai @ai-sdk/anthropic @ai-sdk/google workers-ai-provider zod  # preferred
# or: npm install ai @ai-sdk/openai @ai-sdk/anthropic @ai-sdk/google workers-ai-provider zod
環境変数
# .env
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_GENERATIVE_AI_API_KEY=...
最初の例:テキストを生成する
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';

const result = await generateText({
  model: openai('gpt-4-turbo'),
  prompt: 'What is TypeScript?',
});

console.log(result.text);
最初の例:ストリーミングチャット
import { streamText } from 'ai';
import { anthropic } from '@ai-sdk/anthropic';

const stream = streamText({
  model: anthropic('claude-sonnet-4-5-20250929'),
  messages: [
    { role: 'user', content: 'Tell me a story' },
  ],
});

for await (const chunk of stream.textStream) {
  process.stdout.write(chunk);
}
最初の例:構造化出力
import { generateObject } from 'ai';
import { openai } from '@ai-sdk/openai';
import { z } from 'zod';

const result = await generateObject({
  model: openai('gpt-4'),
  schema: z.object({
    name: z.string(),
    age: z.number(),
    skills: z.array(z.string()),
  }),
  prompt: 'Generate a person profile for a software engineer',
});

console.log(result.object);
// { name: "Alice", age: 28, skills: ["TypeScript", "React"] }

安全なインストール

この操作では、6 つ以上の AI プロバイダーパッケージを同時にインストールします。監査対象となる依存関係が広範囲に及びます。インストールする前に、サプライチェーンセキュリティのベストプラクティスに従ってください。

  • インストール後スクリプトをブロックする — npm config set ignore-scripts true(または Bun:デフォルトで無効)
  • クールダウン期間を設ける — 新しいパッケージバージョンがコミュニティによって検証されるまで、7 日間待ちます
  • インストール前に監査する — socket package score npm <pkg> を実行するか、socket npm install <pkg> を使用してパッケージを確認します

Socket CLI との統合、クールダウンの設定、ロックファイルの検証、CI での適用など、セキュリティ構成の全容については、dependency-upgrade スキルを読み込んでください。


コア関数

4 つのコア関数すべての完全な API リファレンスについては、references/core-functions.md を読み込んでください。

概要

AI SDK v5 には、4 つのコア関数があります。

関数出力ストリーミング用途
generateText()テキストいいえバッチ処理、単純な補完
streamText()テキストはいチャット UI、長い応答
generateObject()構造化データいいえデータ抽出、JSON 生成
streamObject()構造化データはいリアルタイムフォーム、段階的な UI
基本的な例
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';

const result = await generateText({
  model: openai('gpt-4-turbo'),
  prompt: 'Explain quantum computing',
});

console.log(result.text);

→ 次の内容については、references/core-functions.md を読み込んでください: 完全なシグネチャ、ツールの使用パターン、エラー処理、ストリーミングの例、比較表


プロバイダーのセットアップと構成

すべてのプロバイダーの完全なセットアップ手順については、references/provider-setup.md を読み込んでください。

概要

AI SDK v5 は、主要な 4 つのプロバイダーに対応しています。

プロバイダー環境変数最新モデル
OpenAIOPENAI_API_KEYGPT-5、GPT-4 Turbo
AnthropicANTHROPIC_API_KEYClaude Sonnet 4.5、Opus 4
GoogleGOOGLE_GENERATIVE_AI_API_KEYGemini 2.5 Pro/Flash
CloudflareWorkers AI バインディングLlama 3.1、Qwen 2.5
基本的なセットアップ
import { openai } from '@ai-sdk/openai';
import { generateText } from 'ai';

// API key from environment
const result = await generateText({
  model: openai('gpt-4-turbo'),
  prompt: 'Hello',
});

→ 次の内容については、references/provider-setup.md を読み込んでください: API 構成の全容、レート制限、エラー処理、Cloudflare Workers の最適化、モデル選択ガイド


ツール呼び出しとエージェント

ツールとエージェントの詳細なドキュメントについては、references/tools-and-agents.md を読み込んでください。

概要

ツールを使うと、モデルから外部関数を呼び出せます。エージェントは複数段階のワークフローを管理します。

v5 でのツールの変更点:

  • parameters → inputSchema(Zod スキーマ)
  • ツールのプロパティ:args → input、result → output
  • maxSteps → stopWhen(stepCountIs(n))
基本的なツールの例
import { generateText, tool } from 'ai';
import { z } from 'zod';

const result = await generateText({
  model: openai('gpt-4'),
  tools: {
    weather: tool({
      description: 'Get weather for a location',
      inputSchema: z.object({ location: z.string() }),
      execute: async ({ location }) => {
        return { temperature: 72, condition: 'sunny' };
      },
    }),
  },
  prompt: 'What is the weather in Tokyo?',
});

→ 次の内容については、references/tools-and-agents.md を読み込んでください: Agent クラスの使用方法、複数段階の実行、動的なツール、停止条件


v4 から v5 への重要な移行

移行ガイドの全容については、references/v4-to-v5-migration.md を読み込んでください。

重大な破壊的変更

AI SDK v5 には、9 つの重大な破壊的変更があります。

  • maxTokens → maxOutputTokens
  • parameters → inputSchema(Zod)
  • maxSteps → stopWhen(stepCountIs(n))
  • CoreMessage → ModelMessage
  • パッケージの再編成(ai/rsc → @ai-sdk/rsc)
自動移行
bunx ai migrate  # Auto-migrates most changes

→ 次の内容については、references/v4-to-v5-migration.md を読み込んでください: 破壊的変更の完全なリスト、移行例、チェックリスト、公式移行ガイドへのリンク


よくあるエラーと解決方法 12 選

1. AI_APICallError

原因: API リクエストに失敗しました(ネットワーク、認証、レート制限)。

解決方法:

import { AI_APICallError } from 'ai';

try {
  const result = await generateText({
    model: openai('gpt-4'),
    prompt: 'Hello',
  });
} catch (error) {
  if (error instanceof AI_APICallError) {
    console.error('API call failed:', error.message);
    console.error('Status code:', error.statusCode);
    console.error('Response:', error.responseBody);

    // Check common causes
    if (error.statusCode === 401) {
      // Invalid API key
    } else if (error.statusCode === 429) {
      // Rate limit - implement backoff
    } else if (error.statusCode >= 500) {
      // Provider issue - retry
    }
  }
}

予防策:

  • 起動時に API キーを検証する
  • 指数バックオフによる再試行ロジックを実装する
  • レート制限を監視する
  • ネットワークエラーを適切に処理する

2. AI_NoObjectGeneratedError

原因: モデルがスキーマに一致する有効なオブジェクトを生成しませんでした。

解決方法:

import { AI_NoObjectGeneratedError } from 'ai';

try {
  const result = await generateObject({
    model: openai('gpt-4'),
    schema: z.object({ /* complex schema */ }),
    prompt: 'Generate data',
  });
} catch (error) {
  if (error instanceof AI_NoObjectGeneratedError) {
    console.error('No valid object generated');

    // Solutions:
    // 1. Simplify schema
    // 2. Add more context to prompt
    // 3. Provide examples in prompt
    // 4. Try different model (gpt-4 better than gpt-3.5 for complex objects)
  }
}

予防策:

  • シンプルなスキーマから始め、段階的に複雑さを加える
  • プロンプトに例を含める:「次のような人物を生成してください:{ name: 'Alice', age: 30 }」
  • 複雑な構造化出力には GPT-4 を使用する
  • まずサンプルデータでスキーマをテストする

3. Worker の起動時間制限(270ms 以上)

原因: AI SDK v5 と Zod の初期化オーバーヘッドにより、Cloudflare Workers の起動時間制限を超えます。

解決方法:

// BAD: Top-level imports cause startup overhead
import { createWorkersAI } from 'workers-ai-provider';
import { complexSchema } from './schemas';

const workersai = createWorkersAI({ binding: env.AI });

// GOOD: Lazy initialization inside handler
export default {
  async fetch(request, env) {
    const { createWorkersAI } = await import('workers-ai-provider');
    const workersai = createWorkersAI({ binding: env.AI });

    // Use workersai here
  }
}

予防策:

  • AI SDK のインポートをルートハンドラー内に移動する
  • トップレベルの Zod スキーマを最小限にする
  • Worker の起動時間を監視する(400ms 未満である必要があります)
  • Wrangler の起動時間レポートを使用する

GitHub Issue: Vercel AI SDK の Issue で「Workers startup limit」を検索してください。


→ エラー #4〜#12 の完全な解決方法については、references/error-catalog.md を読み込んでください。

残りの 9 つのエラー: 4. streamText が無言で失敗する(v4.1.22 で解決済み) 5. AI_LoadAPIKeyError 6. AI_InvalidArgumentError 7. AI_NoContentGeneratedError 8. AI_TypeValidationError 9. AI_RetryError 10. レート制限エラー 11. Zod 使用時の TypeScript のパフォーマンス 12. 無効な JSON レスポンス(プロバイダー固有)

エラーカタログの全項目: https://ai-sdk.dev/docs/reference/ai-sdk-errors のエラーリファレンス全体を参照してください。


本番環境でのベストプラクティス

本番環境へのデプロイガイド全体については、references/production-guide.md を読み込んでください。

主なカテゴリー
  1. パフォーマンス:ストリーミングのパターン、トークン制限、プロバイダーのキャッシュ、Zod の最適化
  2. エラー処理:try-catch のパターン、再試行ロジック、適切なログ記録
  3. コストの最適化:モデルの選択、トークン制限、レスポンスのキャッシュ
  4. Cloudflare Workers:遅延インポート、起動の監視、ストリーミングレスポンス
  5. Next.js/Vercel:Server Actions、Server Components、読み込み状態
簡単な例
// Use streaming for user-facing responses
const stream = streamText({
  model: openai('gpt-4'),
  prompt: 'Long essay',
  maxOutputTokens: 500,
  maxRetries: 3,
});

return stream.toDataStreamResponse();

→ プラットフォーム固有のパターン、デプロイのチェックリスト、最適化戦略については、references/production-guide.md を読み込んでください。


リファレンスを読み込むタイミング

次の場合は references/core-functions.md を読み込みます:

  • generateText、streamText、generateObject、streamObject の完全な API ドキュメントが必要な場合
  • 関数のシグネチャ、パラメーター、戻り値の型について質問がある場合
  • 詳細なツールの使用パターンやストリーミングの例が必要な場合
  • 関数固有のエラーをトラブルシューティングする場合

次の場合は references/provider-setup.md を読み込みます:

  • OpenAI、Anthropic、Google、Cloudflare Workers AI をセットアップする場合
  • API キーや環境変数を設定する場合
  • プロバイダー固有のエラー(レート制限、認証)をトラブルシューティングする場合
  • 各プロバイダーでのモデル選択やベストプラクティスについて質問がある場合
  • Cloudflare Workers の起動を最適化する必要がある場合

次の場合は references/tools-and-agents.md を読み込みます:

  • ツール呼び出しやエージェントのワークフローを実装する場合
  • Agent クラスと生の generateText の違いについて質問がある場合
  • stopWhen を使った複数ステップの実行をセットアップする場合
  • 動的なツールや複雑なエージェントのパターンを扱う場合

次の場合は references/v4-to-v5-migration.md を読み込みます:

  • 既存の v4 コードベースを v5 に移行する場合
  • 破壊的変更について質問がある場合
  • 移行の例や自動移行ツールが必要な場合
  • 移行に関するエラーをトラブルシューティングする場合

次の場合は references/error-catalog.md を読み込みます:

  • ユーザーが、インラインで示されている上位 3 件以外の、よくある 12 件のエラーに遭遇した場合
  • コード例付きの完全なエラー解決方法が必要な場合
  • 本番環境のエラーをトラブルシューティングする場合
  • エラーを防ぐ方法について質問がある場合

次の場合は references/production-guide.md を読み込みます:

  • 本番環境にデプロイする場合(プラットフォームを問いません)
  • パフォーマンスの最適化が必要な場合
  • コストの最適化について質問がある場合
  • プラットフォーム固有のパターン(Cloudflare Workers、Next.js/Vercel)を扱う場合
  • エラー処理やロギングの戦略が必要な場合

このスキルを使用するタイミング

次の場合は ai-sdk-core を使用します:
  • バックエンドの AI 機能(サーバー側のテキスト生成)を構築する場合
  • サーバー側のテキスト生成(Node.js、Workers、Next.js)を実装する場合
  • 構造化された AI の出力(JSON、フォーム、データ抽出)を作成する場合
  • ツールを使う AI エージェント(複数ステップのワークフロー)を構築する場合
  • 複数の AI プロバイダー(OpenAI、Anthropic、Google、Cloudflare)を統合する場合
  • AI SDK v4 から v5 に移行する場合
  • AI SDK のエラー(AI_APICallError、AI_NoObjectGeneratedError など)が発生した場合
  • Cloudflare Workers で AI を使用する場合(workers-ai-provider を使用)
  • Next.js Server Components/Actions で AI を使用する場合
  • 異なる LLM プロバイダー間で一貫した API が必要な場合
次の場合はこのスキルを使用しないでください:
  • React のチャット UI を構築する場合(代わりに ai-sdk-ui スキルを使用してください)
  • useChat などのフロントエンドフックが必要な場合(代わりに ai-sdk-ui スキルを使用してください)
  • 埋め込みや画像生成などの高度なトピックが必要な場合(公式ドキュメントを確認してください)
  • 複数プロバイダーを使わずに Cloudflare Workers AI のネイティブアプリを構築する場合(代わりに cloudflare-workers-ai スキルを使用してください)
  • Generative UI / RSC が必要な場合(https://ai-sdk.dev/docs/ai-sdk-rsc を参照してください)

依存関係とバージョン

{
  "dependencies": {
    "ai": "^5.0.116",
    "@ai-sdk/openai": "^2.0.88",
    "@ai-sdk/anthropic": "^2.0.56",
    "@ai-sdk/google": "^2.0.51",
    "workers-ai-provider": "^2.0.0",
    "zod": "^3.23.8"
  },
  "devDependencies": {
    "@types/node": "^24.10.1",
    "typescript": "^5.9.3"
  }
}

バージョンに関する注意:

  • AI SDK v5.0.116 以降(安定版、2025 年 12 月時点の最新)
  • v6 はベータ版のため、このスキルでは扱いません
  • Zod の互換性:このスキルでは Zod 3.x を使用しますが、AI SDK 5 は Zod 3.x と Zod 4.x(最新は 4.1.12)の両方を公式にサポートしています
    • 新規プロジェクトには Zod 4 を推奨します(2025 年 8 月リリース)
    • Zod 4 には破壊的変更があります:エラー API、.default() の動作、ZodError.errors の削除
    • Zod 4 を使用すると、zod-to-json-schema で一部のピア依存関係に関する警告が発生することがあります
    • 移行ガイドは https://zod.dev/v4/changelog を参照してください
  • v5 との互換性には、プロバイダーパッケージ 2.0 以降が必要です

最新バージョンを確認:

npm view ai version
npm view @ai-sdk/openai version
npm view @ai-sdk/anthropic version
npm view @ai-sdk/google version
npm view workers-ai-provider version
npm view zod version  # Check for Zod 4.x updates

公式ドキュメントへのリンク

コアドキュメント
高度なトピック(このスキルには含まれていません)
移行とトラブルシューティング
プロバイダーのドキュメント
Cloudflare との統合
Vercel / Next.js との統合
GitHub とコミュニティ

テンプレートとリファレンス

このスキルには以下が含まれています。

  • 13 個のテンプレート: templates/ にすぐに使えるコード例を収録
  • 5 個のリファレンスドキュメント: references/ に詳細なガイドを収録
  • 1 個のスクリプト: scripts/ にバージョンチェッカーを収録

すべてのファイルは、プロジェクトにコピーして貼り付けられるよう最適化されています。


最終更新日: 2025-12-22 スキルのバージョン: 1.1.0 AI SDK のバージョン: 5.0.116+

コメント