OpenAIは、2025年3月11日(米国時間)に新たな開発者向けツール「Responses API」を発表しました。このAPIは、開発者がOpenAIのモデルと組み込みツールを容易にアプリケーションへ統合できるよう設計されています。従来の複数APIや外部ベンダーとの複雑な連携を必要とせず、シンプルな統合を可能にします。
さらに、OpenAI上にデータを簡単に保存できるため、追跡機能や評価機能を用いてエージェントのパフォーマンス評価が行えます。なお、保存されたデータはデフォルトでモデルの学習には使用されません。Responses APIは、開発者全員に追加料金なしで提供されており、トークンおよびツール利用料についてはOpenAIの標準価格が適用されます。詳細は、Responses APIのクイックスタートガイドなどを参考にするとよいでしょう。
いままでは会話履歴を自分で管理しなければなりませんでしたが、Responses APIは違います。store=Trueを指定するだけでサーバー側にコンテクストが保持されるのです。この機能によるメリットとしては、前回の会話内容を再度利用したい場合に、今までは同じコードをもう一度作成しなおしていましたが、その作業がツールを使うことで簡単になることです。
例としてカスタマーサポートを提供するシナリオを作成して、会話履歴を利用するコードを示します。このコードでは、最初に「返品ポリシー」についての質問を受け、次に「交換ポリシー」についての質問を受けた場合に、前回の会話を引き継いで回答します。
このようにstore=Trueを指定して会話履歴を保存し、その後に前回の会話idをresponse_idとして渡すだけで簡単に再度活用することができるのです。
Responses APIはこちらがツールを指定するだけで、そのツールを自動的に使用してくれます。それでは、Responses APIで使うことのできるツール機能をいくつか紹介しましょう。
Web検索ツールは、会話の中で最新情報やインターネット上のデータを取得するために利用できます。これは、標準の AI モデルではカバーしきれない最新のニュース、特定の企業情報、スポーツの結果、金融市場のデータなどを取得するのに役立ちます。
tools=["web_search"]
を指定すればよいだけです。tools=["web_search"]
入れるだけでチャット型のAIのようにWeb検索を使うことができるのです。ファイル検索ツールは事前にアップロードしたファイルの内容を検索し、回答します。この機能を使うと、PDF・Word・テキスト・CSV などのドキュメント内の情報を取得し、ユーザーの質問に基づいて適切な回答を生成できます。契約書やマニュアルで製品の保証期間を検索したり、社内の規則が記載されたファイルで休暇取得のルールを検索したりなどが挙げられます。
使い方としては、まずclient.files.create(...)を使って事前にファイルをアップロードします。
ファイル検索を含んだコード
構造化出力 とは、Responses API で AI の出力を 特定のフォーマット(JSONなど) で取得できる機能です。通常の会話型出力とは異なり、決められたデータ構造 に従って情報を整理することで、プログラムによる処理をしやすくします。
構造化出力を使うにはresponse_format="json"と指定するだけでよいです。
出力形式指定を含んだコード
Responses API の Reasoning 機能は、AI に推論(論理的な思考プロセス)を明示的に適用させ、より体系的な応答を得るための設定です。通常のAIの応答は、即座に結果を出すことを重視しますが、Reasoningを活用すると、AIは一貫したロジックに基づいて考えながら回答します。
よって、複雑な問題の分析や、明確なステップを踏んだ回答を得ることができます。
この機能は以前からChatGPT o3-miniなどのチャット型AIでも使用することができ、推論レベルもlow・midium・highと調整することができます。それと同様にResponses APIではコードの中でreasoning={"effort": "medium"}のようにして指定することで推論レベルの調整をすることが可能になっています。
ツールを使用する際は、各ツールそれぞれに一定単位ごとの料金がかかります。
注: 上記の料金はツール使用料のみであり、基本のモデル使用料(トークン単価 × 使用トークン数)は別途かかります。
コストを最適化するためには、モデル選択やツールの使用頻度、設定などを工夫することが重要です。以下に、具体的な最適化方法をいくつか挙げます。
軽量モデルを使用する
単純なタスクや会話においては、gpt-4o-mini
を選択することで、コストを大幅に抑えられます。特にファイル検索や簡単な質問応答には、gpt-4o-mini
が適しています。
計算量の多い問題は重いモデルに
数学的な推論や高度な解析が必要な場合にのみgpt-4o
を使用し、必要以上にリソースを消費しないようにします。
検索が本当に必要な場合にのみ使用
Web検索ツールはコストがかかるため、実際に必要なときだけ使用し、頻繁に呼び出さないようにしましょう。例えば、事前にキャッシュを活用したり、ユーザーから明確な要求があった場合にのみ検索機能を使うなどです。
検索コンテキストサイズを調整
Web検索ツールにはコンテキストサイズ(低・中・高)を選べるオプションがあり、コストを抑えるためには低または中サイズを選ぶのが賢明です。特に高いコンテキストサイズは処理費用が高いため、必要以上に大きなデータを扱わないようにすることが重要です。
不要なファイルを削除する
定期的に不要なファイルや古いデータを削除することで、ストレージ料金を削減できます。特に過去に使ったファイルを頻繁にアクセスする必要がなければ、無駄なストレージを減らすことが可能です。
小さなデータで効率よく管理
大きなファイルをアップロードする代わりに、必要なデータだけを選別してアップロードしましょう。これにより、データ転送費用やストレージ費用を削減できます。
履歴を短期間でクリア
長期間にわたる会話履歴を保持するのはコストがかかるため、一定期間経過した履歴を削除する、または要約して保存することをお勧めします。
最小限の履歴保持
ユーザーが求める情報を維持するために、必要な会話履歴のみを保存し、すべての履歴を保存する必要はありません。特に会話が長くなる場合には、履歴の要約や圧縮を行うとよいでしょう。
まず、Responses APIを使うためには、OpenAIのAPIキーを取得し、それを利用してAPIと通信します。
OpenAIの公式サイトにログインし、APIキーを取得します。
Pythonを使用する場合、以下のパッケージをインストールします。
APIキーを環境変数として設定することもできますが、コード内で直接設定することも可能です。
これでResponses APIの設定と準備が完了しました。Web検索ツールやファイル検索ツール、構造化出力、推論レベルの調整などの機能は先に述べた使い方などを参考にぜひ使ってみてください。
出典:https://openai.com/ja-JP/index/new-tools-for-building-agents/