# OpenAI Agent SDKの便利で実践的な使い方
🌍 ガードレールで、エージェントの入出力を安全に制御しましょう!
安価な高速モデルで事前チェックを行い、不適切なリクエストをブロックしてコストを削減できます。
📌 タイトル:Guardrails
🔗 URL:
🧩 概要
Guardrailsは、エージェントの入力と出力に対してチェックを実行する仕組みです。入力ガードレール(Input guardrails)はユーザー入力を検証し、出力ガードレール(Output guardrails)はエージェントの応答を検証します。安価な高速モデルをガードレールに使い、高価なモデルの不要な実行を防ぐことで、コスト最適化を実現できます。トリップワイヤー方式で、問題を検出した時点で実行を即座に中断します。
🛠 使い方
`agents`から`Agent`, `InputGuardrail`, `OutputGuardrail`, `GuardrailFunctionOutput`をインポートします。ガードレール関数`check_homework_request(context, agent, input_data)`を定義し、内部で` input_data)`を呼び出して分類結果を取得します。戻り値は`GuardrailFunctionOutput(output_info= tripwire_triggered="TutorBot", instructions="You are a tutoring assistant.", input_guardrails=[InputGuardrail(guardrail_function=check_homework_request)])`のように定義します。
🏗 実践的な使い方
**安価モデルによる事前フィルタリング(コスト削減)**
高価なメインモデルを実行する前に、安価な高速モデルで「宿題の代行」「不正利用」などを検出してブロックします。トリップワイヤーが発動すると、メインモデルの実行がスキップされるためコスト削減になります。
安価な分類用エージェント`Agent(name="Classifier", model="gpt-4o-mini", output_type=ClassificationResult)`を定義し、`abuse_check`関数内で` input_data)`を実行します。`tripwire_triggered="Assistant", model="gpt-4o", input_guardrails=[InputGuardrail(guardrail_function=abuse_check)])`に設定します。
**出力ガードレールによるコンテンツチェック**
エージェントの応答に機密情報や不適切な内容が含まれていないかを検証します。
出力ガードレール関数`check_sensitive_output(context, agent, output)`を定義し、` f"Check this output for sensitive content: {output}")`で機密情報の有無を判定します。`tripwire_triggered="SupportBot", output_guardrails=[OutputGuardrail(guardrail_function=check_sensitive_output)])`のように設定します。
**サポートボットの関連性チェック**
ユーザーの質問がサポート範囲内かを事前に判定し、範囲外の質問には早期に対応します。
関連性チェック関数`relevance_check(context, agent, input_data)`で` input_data)`を実行し、`tripwire_triggered=not "SupportBot", instructions="Answer customer support questions about our product.", input_guardrails=[InputGuardrail(guardrail_function=relevance_check)])`として設定します。
💡 ユースケース
🛡 宿題代行・不正利用リクエストのブロック(コスト削減)
🔍 機密情報の出力防止(PII、社内情報の漏洩防止)
📋 サポートボットの対応範囲制御
⚡ 安価モデルによる事前スクリーニングでAPI費用を最適化
⚠️ 注意点
- ガードレールのトリップワイヤーが発動すると`InputGuardrailTripwireTriggered`例外が発生します。適切にキャッチして処理してください
- 入力ガードレールはメインモデルと**並列**で実行されるため(デフォルト)、ガードレールが間に合わない場合はメインの実行が進む可能性があります
- ガードレール自体のモデル呼び出しコストも考慮してください
- 複数のガードレールを設定でき、いずれかが発動すれば中断されます
✨ ガードレールを活用して、安全性とコスト効率を両立したエージェントを構築しましょう!
#
OpenAIAgentSDK# #
AIAgent#