Responses APIのbuilt-in toolsが地味にすごい
最近、OpenAIのResponses APIにbuilt-in toolsが追加されたので試してみたんですが、これがなかなか面白かったので軽くまとめておきます。
built-in toolsとして今使えるのは、たとえばこんなものがあります。
- web_search:最新情報をその場で検索してくれる
- file_search:アップロードしたファイルをベクトル検索で参照する
- computer_use:画面を見てブラウザやアプリを操作する(提供状況は環境・モデルによって異なる可能性があります)
これ単体で見ると「前からあったやつでは?」って思うかもしれないんですが、ポイントは1回のAPIコールの中で複数ツールを組み合わせて呼べるようになったことで、しかもo3やo4-miniはタスクに応じてツールを呼ぶタイミングを自己判断できるようになってます。検索が必要なら検索、ファイル参照が必要なら参照、という切り替えが自動で入ります。
そういえば、自分がAWS LambdaでOpenAIのAPIを叩くたびに「ツール呼び出しのループ処理、毎回同じコード書いてるな……」と感じていたので、これは素直に助かりました。
実装イメージ:最小構成でエージェントを動かす
Pythonだとざっくりこんな感じで書けます。
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="o4-mini",
tools=[
{"type": "web_search"},
{"type": "file_search", "vector_store_ids": ["vs_xxxxxxxx"]},
],
input="最新のAWS Lambda料金を調べて、社内ドキュメントの利用方針と照らし合わせて教えて"
)
print(response.output_text)
これだけで「検索→ドキュメント参照→回答」という一連のフローが1回のAPIコールで完結します。以前はツール呼び出しのループ処理とステート管理を自前で書く必要があったので、コード量がかなり減る印象。
o3 / o4-miniとの組み合わせが特に便利
旧来のモデルだと「ツールを呼ぶかどうか」は事前に指示する感じでしたが、o3やo4-miniはタスクに応じてツールを呼ぶタイミングを自分で判断してくれます。
たとえば「最新情報が必要そうなら検索、ファイルに書いてありそうなら参照、わかる範囲なら自分で答える」という切り替えを自律的にやってくれるので、プロンプトに「〇〇の場合はツールを使え」みたいな細かい指示を書かなくて済むようになってきてます。
この変化が一番大きいかなと思っていて、エージェントの複雑さがモデル側に吸収されていく感じがします。開発体験がシンプルになってきているのは嬉しいところです。
どんな用途に向いてるか(試してみた感想)
実際に試してみた中で使いやすかったのはこのあたりです。
- 社内ドキュメントをfile_searchで参照しながら回答するチャットボット
- 最新ニュースを拾って定期レポートを生成するバッチ処理(EventBridgeと相性よさそう)
- computer_useでブラウザ操作が必要な繰り返し作業の自動化
computer_useはまだ「任せっきり」は少し怖い場面もあるので、今のところ人の確認が入る設計にしてます。このへんは使い込みながら判断していく感じかなと。
※この記事にはプロモーションが含まれます
ちなみに、Aiarty Image Enhancer(AI画像高画質化ツール。ノイズ除去・8倍拡大に対応)も気になっています。Aiarty Image Enhancer![]()
まとめ
Responses APIのbuilt-in toolsは、シンプルにAPIを叩くだけでエージェントっぽい動きが作れるようになってきていて、以前より格段に敷居が下がった印象です。Agents SDKも同時期にリリースされていて、もう少し複雑なフローを組みたい場合はそちらも選択肢に入ってきます。
PythonとAWSで小さい自動化をちょこちょこ作っているような人には特に刺さる変化かなと思うので、まだ試していない方はぜひ。公式ドキュメントのresponses.createあたりから読み始めるのがわかりやすかったです。
