代理框架/開發工具
OpenAI Agents SDK 0.21、API不要のテストレイヤーを追加——エージェント、サンドボックス、音声フローをリプレイ検証可能に
新バージョンでは、スクリプト化可能なモデルおよびサンドボックスのテストツールを提供し、モデルプロバイダーを呼び出すことなく、マルチターンのエージェントフローをCIで再現できるようになった。また、OpenAI Python 3とHTTPX 2への対応を進め、中断状態、ツール承認、機密性の高いエラー情報の漏えいに関する問題も修正している。

OpenAIは8月15日、Agents SDK for Python 0.21.0をリリースした。エンジニアリング上、最も重要な変更は新たなエージェント抽象化ではなく、`agents.testing`、`agents.realtime.testing`、`agents.voice.testing`の追加だ。開発者は、あらかじめ構成したモデル出力とサンドボックスイベントを使い、ツール呼び出し、ストリーミングアノテーション、中断、再開、音声パイプラインを、いずれのモデルプロバイダーにもリクエストを送信せずにテストできる。実際のモデルに依存する統合テストと比べて結果の再現性が高く、モデルのバージョン、サンプリング、ネットワーク状態によってCIが断続的に失敗することもない。[リリースノート](https://github.com/openai/openai-agents-python/releases/tag/v0.21.0)では、このインターフェースをprovider-neutralと表現している。これは、テスト対象が特定モデルの品質ではなく、エージェントの制御フローであることを意味する。
もう一つの重要な移行ポイントは、パッケージの依存関係が`openai>=3.0.0,<4`と互換になるよう変更され、HTTPX 2のrequest、response、transport、例外型に対応したことだ。カスタムtransport、例外のインターセプト、monkey patchを使用するプロジェクトでは、引き続きテストを再実行すべきだ。「既知の破壊的なSDK動作がない」ことは、下流側による非公開型への依存が影響を受けないことを意味しないからだ。
0.21.0では、複数の状態境界も厳格化された。中断スナップショットとMCP lifecycleの結果は分離されたコピーとして扱われるようになり、再帰的なagent-toolの承認は再開後も継続できる。また、ストリーミングが終端エラーで終了した場合はモデルのstreamが閉じられ、出力型の検証エラーにツールの完全な出力が含まれなくなった。これらの修正は、永続的なセッションを持つエージェントにとって特に重要だ。共有された可変状態により、ある承認やツール結果が後続の実行を汚染する可能性があるためだ。[SDKドキュメント](https://openai.github.io/openai-agents-python/)によると、Runner自体がターン、ツール、guardrail、handoff、sessionを管理する。そのため、テストレイヤーが状態遷移をカバーできるかどうかは、単にHTTPレスポンスをmockすることよりも重要になる。今後は、テストAPIの安定性に関する保証、プロバイダー間でのイベントの完全な整合性、大規模なサンドボックス軌跡におけるfixtureの保守コストを注視する必要がある。