ホームへ戻る

代理框架與安全

OpenAI Agents SDK 0.22.1、ガードレールをツールおよび MCP 呼び出し境界へ移行

Python Agents SDK では、関数ツールおよびローカル MCP サーバーに入出力ガードレールを適用し、ブロック時にモデルへ渡す代替メッセージをカスタマイズできるようになった。新版ではローカルサンドボックスが継承するホスト環境変数も削減されたが、保護範囲には依然としてホステッドツールや組み込み実行ツールは含まれていない。

European Commission - Photographer: Aurore Martignoni · CC BY 4.0 · Image source
zh-Hant

OpenAI は9月8日、Agents SDK for Python 0.22.1 をリリースし、従来は主にエージェントへの入力と最終出力を対象としていた guardrail の仕組みを、個々のツール呼び出しにまで拡張した。開発者は関数ツールに入力・出力チェックを設定できるほか、ローカルの `MCPServerStdio`、Streamable HTTP、または SSE サーバーのレイヤーにルールを一括で適用できる。サーバーがツールのフィルタリングを完了すると、そのルールは変換されたすべての MCP ツールに適用される。入力ガードレールは実行前に引数を拒否したり、tripwire を作動させたりできる。出力ガードレールは結果を検査し、内容をデータを含まないメッセージに置き換えるか、実行フローを中止できる。ツールに人間による承認も必要な場合、入力チェックはデフォルトで、承認後かつ実際の実行前に再度行われる。

この変更により、権限判定が副作用の発生する境界に配置される。引数内の認証情報の遮断、高リスクなパスの禁止、MCP からの機密データ返却の防止などに適している。`RunConfig.output_guardrail_blocked_message` には固定テキストまたはフォーマット関数を指定できるため、モデルに拒否された元の出力を見せる必要がない。サンドボックスについては、Unix-local session に `inherit_host_environment=False` とカスタム allowlist が追加され、エージェントの子プロセスがホスト環境全体を自動的に継承するのを防げるようになった。Docker session にもラベルを追加でき、セッションの復元時にラベルの一致が検証される。

制約も同様に重要だ。ツールの出力チェックは呼び出し後に行われるため、すでにファイルへ書き込まれた内容、送信済みのネットワークリクエスト、その他の外部副作用を取り消すことはできない。ホステッド MCP、`computer`、`shell`、`apply_patch` などの組み込みツールも、現時点ではこの保護パイプラインを通らない。エンジニアリングチームは次に、各ツールが実際にどの実行パスを通るのかを確認し、fail-closed、最小権限、サンドボックスのネットワークポリシーによって SDK guardrail の境界を補完すべきだ。

出典

  1. Release v0.22.1 · openai/openai-agents-python
  2. Guardrails · OpenAI Agents SDK for Python