AI SDK

統一された AI モデル設定センターを提供し、主要な AI モデルをサポートします。一度設定すればどこでも利用可能で、API Key の重複設定は不要です。

circle-exclamation

AI SDK 依存プラグインの概要

「AI SDK 依存プラグイン」はプラグイン開発者向けの開発ツールキットであり、統一された AI モデル設定センターを提供します。主要な AI モデルをサポートし、一度設定すればどこでも利用可能です。AI SDK を統合することで、開発者は自身のプラグインにテキスト生成、構造化オブジェクト生成、ストリーミング処理などの AI 機能を簡単に実装できます。

統一設定センター:一度の設定でどこでも利用可能

AI SDK プラグインは以下の 8 つの Provider をサポートしています:

商用モデル

  • OpenAI(GPT-5.2、GPT-5、o3 など)

  • Anthropic Claude(Claude Sonnet 4.6、Claude Opus 4.6 など)

  • Google Gemini(Gemini 3 Pro、Gemini 3 Flash など)

  • DeepSeek(DeepSeek V3、DeepSeek R1 など)

  • Tongyi Qwen (通義千問)(Qwen3 シリーズ)

ローカルモデル(完全オフライン実行):

  • Ollama(Llama 4、Qwen3、Gemma 3 などをサポート)

  • LM Studio(GUI 搭載、初心者にも使いやすい)

OpenAI 互換プロトコル

  • OpenAI Compatible — OpenAI API プロトコルに互換性のある任意のサービスエンドポイント(Groq、Together AI、Fireworks、vLLM など)に接続可能です。Base URL を入力するだけで利用でき、API Key は任意です。

今後のバージョンでさらに多くの主要モデルサービスプロバイダーのサポートを順次追加する予定です。

一度設定すれば、すべての AI 関連プラグインがそのまま利用でき、重複した設定は不要です。例えば、「AI 翻訳」と「AI リネーム」プラグインをインストールした場合、どちらも AI SDK で設定した内容を自動的に共有し、それぞれ異なるモデルを選択することもできます。API Key を再入力する必要はありません。

オープンな開発環境

ai-sdk.devarrow-up-right 標準(AI SDK v6)に基づき、AI SDK プラグインは開発者にクリーンで安定した基盤を提供します。開発者は API Key の保存、モデルの切り替え、エラー処理などの基本設定に手間をかける必要がなく、プラグインの機能革新に集中できます。唯一の違いは Provider の取得方法です——より良い安定性とユーザー体験を確保するため、独自開発の Provider を使用しています。

circle-info

バージョン説明:このプラグインは AI SDK v6 をベースに構築されており、ai-sdk.devarrow-up-right の公式ドキュメントと同期しています。


インストールと設定

インストール手順

  1. Eagle プラグインセンターを開きます

  2. 「AI SDK」プラグインを検索します

  3. インストールをクリックします

  4. インストール完了後、環境設定を開き、左側のサイドバーで「AI モデル」を見つけます

  5. 右側の設定エリアでモデルサービスプロバイダーを設定し、デフォルトモデル(言語モデル、ビジョンモデル)を設定します

circle-info

ユーザーが AI SDK 依存のプラグインをインストールすると、Eagle は自動的に「AI SDK 依存プラグイン」のインストールを促します。そのため、開発者がインストール用のコードを別途記述する必要はなく、システムが関連する依存関係がインストールされていることを自動的に確認してからプラグインの実行を許可します。

manifest.json で依存関係を宣言する

プラグインの manifest.jsondependencies フィールドを追加します:

重要な設定は "dependencies": ["ai-sdk"] です。これにより Eagle はこのプラグインが AI SDK を必要とすることを認識します。


クイックスタート

AI SDK モジュールの取得:

推奨方法:デフォルトモデルを使用する

ユーザーは通常、環境設定の「AI モデル」で、好みの言語モデルとビジョンモデルを事前に選択しています。getDefaultModel() でユーザーの選択をそのまま継承するのが、最もシンプルで推奨される方法です:

circle-check

特定の Provider を指定する

プラグインが特定の Provider を必要とする場合(例:OpenAI のみがサポートする機能)、直接指定することもできます:


コアコンセプト

Provider と Model の関係

AI SDK は二層構造を採用しています:Provider(プロバイダー)は API 接続と認証を管理し、Model(モデル)は実際に AI タスクを実行する単位です。

provider::model 形式

triangle-exclamation

この形式は getModel()getDefaultModel() などのメソッドで使用されます。

同期 vs 非同期メソッド

AI SDK のメソッドは同期と非同期に明確に分類されています:

同期メソッドawait 不要):

  • getProviders()getProvider()getAvailableProviders()getModel()

  • getDefaultModel()

非同期メソッドawait が必要):

  • generateText()generateObject()streamText()streamObject()

  • Provider インスタンスの verify()getModels()hasModel()

Model を取得する 3 つの方法

circle-check

generateText() — 基本テキスト生成

指定したモデルを使用してテキスト応答を生成します。

基本的な使い方(prompt)

messages 配列の使用

messages を使用してシステムプロンプトとマルチターン会話を設定できます:

マルチモーダル(テキスト + 画像)

circle-info

generateText の高度な使い方(maxTokenstemperature などのパラメータ)については、AI SDK 公式ドキュメントarrow-up-rightを参照してください。


generateObject() — 構造化オブジェクト生成

指定した Schema に従って AI に構造化 JSON オブジェクトを返させます。

Zod Schema の使用

JSON Schema の使用

画像分析の例

circle-info

generateObject の高度な使い方については、AI SDK 公式ドキュメントarrow-up-rightを参照してください。


streamText() — ストリーミングテキスト生成

ストリーミング方式で AI の応答を段階的に受信します。リアルタイムで結果を表示する必要がある場面に適しています。

UI にリアルタイム表示する

circle-info

streamText の高度な使い方については、AI SDK 公式ドキュメントarrow-up-rightを参照してください。


streamObject() — ストリーミングオブジェクト生成

ストリーミング方式で構造化オブジェクトを段階的に受信します。各イテレーションで現時点までに解析された部分オブジェクトを受け取ります。

circle-check
circle-info

streamObject の高度な使い方については、AI SDK 公式ドキュメントarrow-up-rightを参照してください。


Provider 管理メソッド

以下のメソッドはすべて同期メソッドであり、await は不要です。


getProviders()

登録済みのすべての Provider の配列を取得します。

  • 戻り値 ProviderFunction[] — すべての Provider の配列

triangle-exclamation

getProvider(providerName)

指定した名前の Provider を取得します。

  • providerName string — Provider 名(例:"openai""google"

  • 戻り値 ProviderFunction | undefined — 見つかった Provider。存在しない場合は undefined を返します

circle-info

特定の Provider を取得する場合、getProviders() よりも getProvider() を使用する方がコードが簡潔になります。ただし、ほとんどの場合は getDefaultModel() を直接使用するのがより良い選択です。


getAvailableProviders()

設定済み(ユーザーが設定を完了した)すべての Provider を取得します。

  • 戻り値 ProviderFunction[] — 設定済みの Provider の配列

circle-info

このメソッドと getProviders() の違い:getProviders() はすべての 8 つの Provider(未設定を含む)を返しますが、getAvailableProviders() はユーザーが設定を完了した Provider のみを返します。


getModel(providerAndModel)

provider::model 形式でモデルインスタンスを直接取得します。

  • providerAndModel string — "provider::model" 形式

  • 戻り値 ModelgenerateText() などのメソッドに直接渡せるモデルオブジェクト

triangle-exclamation

設定とリロード


open()

環境設定の「AI モデル」設定パネルを開きます。プラグインインターフェースに「モデル設定」ボタンを設置し、ユーザーがモデルサービスプロバイダーとデフォルトモデルを素早く設定できるようにするのに適しています。

  • 戻り値 void

circle-check

reload()

AI SDK の設定をリロードします。ユーザーが open() で設定パネルを開いて設定を変更した後、このメソッドを呼び出すことで最新の設定を読み取れます。

  • 戻り値 void

circle-info

open() はプログラムの実行をブロックしないため、ユーザーが設定を完了するタイミングをシステムは把握できません。モデルを使用する必要がある時に reload() を呼び出して、最新の設定を確実に読み取ることを推奨します。


デフォルトモデルメソッド

AI SDK はデフォルトモデルの設定と読み取りをサポートしており、ユーザーは環境設定の「AI モデル」で好みのモデルを統一的に指定できます。


getDefaultModel(type)

指定した型のデフォルトモデルを取得します。これは同期メソッドです。

  • type string — モデルの型。選択可能な値:"chat"(言語モデル)または "image"(ビジョンモデル)

  • 戻り値 string | undefined — デフォルトモデルの "provider::model" 文字列。未設定の場合は undefined を返します

circle-info

ユーザーは環境設定の「AI モデル」で言語モデル"chat")とビジョンモデル"image")をそれぞれ選択でき、プラグインは必要に応じてそれぞれを取得できます。


Provider インスタンスメソッド

getProvider() で取得した Provider インスタンスは、関数として呼び出して Model を取得できるほか、以下のメソッドも提供しています。


verify()

Provider の接続と認証が有効かどうかを検証します。ユーザーの現在の設定で正常に接続できるかを確認するために使用します。

  • 戻り値 Promise<VerifyResult> — 検証結果オブジェクト

    • ok boolean — 検証が成功したかどうか

    • error APIError(オプション) — 失敗時のエラー詳細

triangle-exclamation

getModels()

この Provider で利用可能なすべてのモデルリストを取得します。

  • 戻り値 Promise<string[]> — モデル ID の配列

circle-info

このメソッドは Provider の API にリクエストを送信します。ユーザーが該当 Provider の設定を完了していることを確認してください。未設定の場合は APIError がスローされます。


hasModel(modelId)

この Provider に指定したモデルが含まれているかを確認します。

  • modelId string — モデル ID(例:"gpt-5"

  • 戻り値 Promise<boolean> — 存在するかどうか


Provider インスタンスプロパティ

以下は Provider インスタンスの読み取り専用プロパティです:


name string

Provider の名前です。


baseURL string | undefined

現在設定されている API エンドポイントです。


サポート対象 Provider 一覧

Provider
名前
種類
デフォルト Base URL

OpenAI

"openai"

商用(クラウド)

手動設定が必要

Anthropic

"anthropic"

商用(クラウド)

手動設定が必要

Google Gemini

"google"

商用(クラウド)

手動設定が必要

DeepSeek

"deepseek"

商用(クラウド)

手動設定が必要

Tongyi Qwen (通義千問)

"tongyi"

商用(クラウド)

https://dashscope.aliyuncs.com/compatible-mode/v1

Ollama

"ollama"

ローカル

http://localhost:11434/v1

LM Studio

"lmstudio"

ローカル

http://localhost:1234/v1

OpenAI Compatible

"openai-compatible"

カスタム(互換プロトコル)

手動設定が必要(API Key は任意)

circle-info

OpenAI Compatible は、OpenAI API プロトコルを実装するすべてのサービスで動作します。ユーザーは Base URL を入力するだけで利用でき、API Key は任意です(一部のクラウドサービスでは必要ですが、ローカルサーバーでは通常不要です)。URL の末尾に /v1 が含まれていない場合、システムが自動的に追加します。

triangle-exclamation

エラー処理

APIError クラス

AI SDK は API リクエストが失敗した際に APIError をスローし、完全なエラー情報を含みます。

プロパティ

プロパティ
説明

message

string

エラーメッセージ

status

number | undefined

HTTP ステータスコード(例:401、403、500)

statusText

string | undefined

HTTP ステータステキスト(例:"Unauthorized")

code

string | undefined

エラーコード(レスポンス内容から抽出)

provider

string | undefined

Provider 名

url

string | undefined

リクエスト URL

responseBody

unknown

サーバーが返した元のエラー内容

メソッド

メソッド
説明

toJSON()

完全なエラー詳細オブジェクトを返します(ログ記録に適しています)

toString()

エラーメッセージ文字列を返します

エラー処理の例

ネットワークエラー

Provider に接続できない場合(例:ローカルの Ollama が起動していない場合)も APIError が発生します:


ベストプラクティス

1. デフォルトモデルを優先的に使用する

これが最も重要な推奨事項です。コード内に特定の Provider やモデルをハードコーディングするのではなく、getDefaultModel() で AI SDK 設定インターフェースでのユーザーの好みを直接継承してください:

なぜモデルをハードコーディングすべきでないのか? コード内で ai.getProvider("openai")("gpt-5") を指定しても、ユーザーが OpenAI を設定していなければエラーになります。「Provider が未設定」というエッジケースを追加で処理する必要があり、これは面倒です。デフォルトモデルを使用すれば、ユーザーが既に設定・検証済みであることが保証され、大量の防御的コードを省けます。

2. verify() の結果を正しく処理する

3. ストリーミングは長文テキスト生成に適している

応答が長くなることが予想される場合、streamText() を使用するとより良いユーザー体験を提供できます:


完全な例

以下は AI SDK の主要な機能の正しい使い方を示す総合的なプラグインの例です:


API クイックリファレンス

AI SDK トップレベルメソッド

メソッド
同期/非同期
戻り値の型
説明

getProviders()

同期

ProviderFunction[]

すべての Provider を取得

getProvider(name)

同期

ProviderFunction | undefined

指定した Provider を取得

getAvailableProviders()

同期

ProviderFunction[]

設定済みの Provider を取得

getModel(provider::model)

同期

Model

モデルインスタンスを取得

getDefaultModel(type)

同期

string | undefined

デフォルトモデルを取得

open()

同期

void

環境設定のモデル設定パネルを開く

reload()

同期

void

最新の設定をリロード

generateText(options)

非同期

Promise<GenerateTextResult>

テキストを生成

generateObject(options)

非同期

Promise<GenerateObjectResult>

構造化オブジェクトを生成

streamText(options)

非同期

StreamTextResult

ストリーミングテキスト生成

streamObject(options)

非同期

StreamObjectResult

ストリーミングオブジェクト生成

Provider インスタンスメソッド

メソッド
同期/非同期
戻り値の型
説明

provider(modelId)

同期

Model

モデルを取得(関数呼び出し)

verify()

非同期

Promise<VerifyResult>

接続と認証を検証

getModels()

非同期

Promise<string[]>

モデルリストを取得

hasModel(modelId)

非同期

Promise<boolean>

モデルの存在を確認

Provider インスタンスプロパティ

プロパティ
説明

name

string

Provider 名(読み取り専用)

baseURL

string | undefined

API エンドポイント(読み取り専用)

VerifyResult

プロパティ
説明

ok

boolean

検証が成功したかどうか

error

APIError | undefined

失敗時のエラーオブジェクト

最終更新