コンテンツにスキップ

モデル

すべてのエージェントは最終的に LLM を呼び出します。SDK はモデルを次の 2 つの軽量インターフェースで抽象化しています。

  • Model – 特定 API へ 1 回 のリクエストを行う方法を知っています
  • ModelProvider – 人が読みやすいモデル (例: 'gpt-4o')を Model インスタンスへ解決します

普段の開発では通常、モデル と、ときどき ModelSettings のみを扱います。

エージェントごとのモデル指定
import { Agent } from '@openai/agents';
const agent = new Agent({
name: 'Creative writer',
model: 'gpt-4.1',
});

デフォルトの ModelProvider は OpenAI API を使ってモデル名を解決します。次の 2 つのエンドポイントをサポートします。

API用途setOpenAIAPI() の呼び出し
Chat Completions標準のチャット & 関数呼び出しsetOpenAIAPI('chat_completions')
Responsesストリーミング優先の新しい生成 API(ツール呼び出し、柔軟な出力)setOpenAIAPI('responses') (デフォルト)
デフォルトの OpenAI キーを設定
import { setDefaultOpenAIKey } from '@openai/agents';
setDefaultOpenAIKey(process.env.OPENAI_API_KEY!); // sk-...

ネットワーク設定をカスタマイズしたい場合は、setDefaultOpenAIClient(client) で独自の OpenAI クライアントを差し替えることもできます。

OpenAI プロバイダーのデフォルトは gpt-4o です。エージェント単位またはグローバルに上書きできます。

デフォルトモデルを設定
import { Runner } from '@openai/agents';
const runner = new Runner({ model: 'gpt‑4.1-mini' });

ModelSettings は OpenAI のパラメーターを反映しつつ、プロバイダーに依存しません。

フィールド説明
temperaturenumber創造性と決定論のバランス
topPnumberニュークリアスサンプリング
frequencyPenaltynumber繰り返しトークンのペナルティ
presencePenaltynumber新しいトークンを促進
toolChoice'auto' | 'required' | 'none' | stringツール使用の強制 を参照
parallelToolCallsboolean対応している場合に関数呼び出しを並列化
truncation'auto' | 'disabled'トークン切り捨て戦略
maxTokensnumber返信の最大トークン数
storebooleanレスポンスを保存し、取得 / RAG ワークフローで再利用

設定はどちらのレベルにも付与できます。

モデル設定
import { Runner, Agent } from '@openai/agents';
const agent = new Agent({
name: 'Creative writer',
// ...
modelSettings: { temperature: 0.7, toolChoice: 'auto' },
});
// or globally
new Runner({ modelSettings: { temperature: 0.3 } });

Runner レベルの設定は、エージェント個別設定と競合した場合に優先されます。


エージェントには prompt パラメーターを設定できます。これはサーバーに保存されたプロンプト設定を利用してエージェントの挙動を制御するものです。現在、このオプションは OpenAI の Responses API を使用する場合にのみ対応しています。

フィールド説明
promptIdstringプロンプトの一意な識別子
versionstring利用したいプロンプトのバージョン
variablesobjectプロンプトに代入するキー/値のペア。値には文字列やテキスト、画像、ファイルなどのコンテンツ入力型を指定できます
プロンプト付きエージェント
import { Agent, run } from '@openai/agents';
async function main() {
const agent = new Agent({
name: 'Assistant',
prompt: {
promptId: 'pmpt_684b3b772e648193b92404d7d0101d8a07f7a7903e519946',
version: '1',
variables: {
poem_style: 'limerick',
},
},
});
const result = await run(agent, 'Write about unrequited love.');
console.log(result.finalOutput);
}
if (require.main === module) {
main().catch(console.error);
}

ツールや instructions など、追加のエージェント設定を行うと、保存済みプロンプトの値を上書きします。


独自プロバイダーの実装は簡単です。ModelProviderModel を実装し、Runner コンストラクターに渡すだけです。

最小限のカスタムプロバイダー
import {
ModelProvider,
Model,
ModelRequest,
ModelResponse,
ResponseStreamEvent,
} from '@openai/agents-core';
import { Agent, Runner } from '@openai/agents';
class EchoModel implements Model {
name: string;
constructor() {
this.name = 'Echo';
}
async getResponse(request: ModelRequest): Promise<ModelResponse> {
return {
usage: {},
output: [{ role: 'assistant', content: request.input as string }],
} as any;
}
async *getStreamedResponse(
_request: ModelRequest,
): AsyncIterable<ResponseStreamEvent> {
yield {
type: 'response.completed',
response: { output: [], usage: {} },
} as any;
}
}
class EchoProvider implements ModelProvider {
getModel(_modelName?: string): Promise<Model> | Model {
return new EchoModel();
}
}
const runner = new Runner({ modelProvider: new EchoProvider() });
console.log(runner.config.modelProvider.getModel());
const agent = new Agent({
name: 'Test Agent',
instructions: 'You are a helpful assistant.',
model: new EchoModel(),
modelSettings: { temperature: 0.7, toolChoice: 'auto' },
});
console.log(agent.model);

OpenAI プロバイダー使用時に、API キーを指定すると自動トレースエクスポートを有効化できます。

トレーシングエクスポーター
import { setTracingExportApiKey } from '@openai/agents';
setTracingExportApiKey('sk-...');

これによりトレースが OpenAI ダッシュボード へ送信され、ワークフローの完全な実行グラフを確認できます。