OpenAI、非同期ツール呼び出しを追加。応答中の指示差し込みも可能に
OpenAI API Docs公式発表
OpenAIResponses APIエージェントツール呼び出し非同期
OpenAI が Responses API に非同期ツール呼び出しを追加した。ツール定義に async: true を付けるとモデルが結果を待たずにターンを続行できる。あわせて応答生成中に WebSocket 経由で指示を送る mid-turn steering も導入された。
何が発表されたか
- 9月3日、OpenAI が長時間タスク向けの制御として 非同期ツール呼び出し(async tool calling) と mid-turn steering を追加。
- 非同期ツール呼び出しの使い方はシンプルで、function tool / custom tool の定義に
async: trueを付けるだけ。- モデルがツール呼び出しを発行し、結果を待たずにターンを継続する
- アプリ側はバックグラウンドでツールを実行する
- 後続のAPIリクエストで、元の
call_idを使って結果を突き合わせて渡す - 依存する結果が必要になった時点でのみ待たせたい場合は、任意で
wait_for_tasksツールを用意する
- 実行主体は変わらない。ドキュメントは「ツールを実行するのはあくまでアプリ側。非同期ツールは実行を OpenAI 側に移すものでも、バックグラウンドジョブを管理するものでもない」と明記している。
- 対応は GPT-6 Astra 以降、Responses API のみ。ホスト型の組み込みツールや programmatic tool calling とは併用不可。マルチエージェントモードでの parallel call との組み合わせも非推奨。
- mid-turn steering は WebSocket を通じて、応答生成の最中に追加指示を送り込める機能。
開発者への影響
エージェント型の実装で体感速度を削っているのは、多くの場合ツールの待ち時間だ。外部APIの問い合わせ、画像生成、スクレイピング——1回数十秒の処理が連続すると、その間モデルは完全に止まっている。async: true を付けるだけで、遅い処理を先に投げつつ独立した質問への回答を進められるのは、実装コストの割に効果が大きい。
設計上の勘所は wait_for_tasks の置き方にある。すべてを非同期にすると、依存関係のある処理でモデルが結果の揃わないまま結論を出しかねない。「先に投げてよいもの」と「揃うまで待つべきもの」を明示的に切り分けるのが前提だ。
mid-turn steering は、外れた出力を最後まで生成しきる無駄を減らす。長文ドラフトやコード生成を扱うツールでは、そのままトークン課金の削減になる。
利用条件
GPT-6 Astra 以降、Responses API のみ。Chat Completions ベースの実装では利用できない。
