はじめに
OpenAI Agents SDKは、マルチインテリジェントなワークフローを構築するために設計されたOpenAIの軽量な開発ツールです。Pythonをベースにしており、簡単に使い始めることができ、開発者はエージェント、ハンドオフ、ガードレール、トレースを設定することで複雑なタスクを自動化することができます。例えば、コードを書くアシスタントや、多言語でのやり取りを処理するインテリジェントなシステムを構築するために使うことができる。ハイライトは、OpenAI Chat Completions API フォーマットをサポートする全てのモデルプロバイダとの互換性と柔軟性です。すべてのレベルの開発者がすぐに始められるように、詳細なドキュメントとサンプルコードが公式に提供されています。
機能一覧
- インテリジェント・ボディ・カスタマイゼーション専属のインテリジェント・アシスタントを作成するために、言語モデルにコマンド、ツール、制限を設定します。
- タスク切り替え英語アシスタントからスペイン語アシスタントへの切り替えなど、インテリジェンス間のシームレスなタスク切り替えをサポートします。
- 安全認証入出力チェックを内蔵し、安全で信頼性の高い結果を保証します。
- オペレーショナル・トラッキングスマートボディの動作プロセスを自動的に記録し、デバッグや最適化を容易にします。
- ツール・エクステンション天気のチェックや特定のタスクの処理など、カスタムツールの追加が可能。
- モデル互換性OpenAIのAPIフォーマットに準拠している限り、複数のモデルプロバイダーがサポートされています。
ヘルプの使用
設置プロセス
OpenAI Agents SDKを使用するには、まずPython環境を構築する必要があります。以下はその手順です:
- 仮想環境の構築
他のプロジェクトとのコンフリクトを避けるため、ターミナルで以下のコマンドを入力して、別のPython環境を作成する:
python -m venv env
そして環境をアクティブにする:
- ウィンドウズ
env\Scripts\activate
- Mac/Linuxシステム:
source env/bin/activate
- SDKのインストール
環境をアクティブにした後、以下のコマンドを実行してSDKをインストールします:
pip install openai-agents
- APIキーの設定
コードを実行する前に、OpenAIのAPIキーを設定する必要があります。ターミナルに入力してください:
export OPENAI_API_KEY='你的密钥'
または、環境変数経由でコードにロードする。鍵の安全性に注意してください。
以上の手順が完了したら、ツールの使用開始です。
使用方法
OpenAIエージェントSDKの中核は以下の通りです。 Agent
歌で応える Runner
クラス。Agent
知能の行動を定義するために使われる。Runner
実行と結果の返却を担当する。以下、主な機能の動作について詳しく説明する。
1.基本的な知的アシスタントの作成
すぐに始めたいですか?プログラミングについて俳句を詠む知性体の簡単な例を試してみてください:
from agents import Agent, Runner
agent = Agent(name="Assistant", instructions="You are a helpful assistant")
result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
print(result.final_output)
手続き::
- インテリジェンスを作成し、名前と指示を設定します。
- 支出
Runner.run_sync
ランを同期させ、タスク要件を入力する。 - 実行すると、"コードの中のコード、関数は自分自身を呼び出し、無限ループのダンス "のようなものが出力される。
2.タスクスイッチの有効化
タスク切り替えは、複数のインテリジェンスがコラボレーションできるようにするSDKの機能です。例えば、多言語リクエストの処理など:
from agents import Agent, Runner
import asyncio
spanish_agent = Agent(name="Spanish agent", instructions="You only speak Spanish.")
english_agent = Agent(name="English agent", instructions="You only speak English.")
triage_agent = Agent(
name="Triage agent",
instructions="Handoff to the appropriate agent based on the language of the request.",
handoffs=[spanish_agent, english_agent],
)
async def main():
result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?")
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())
手続き::
- 多重知能を定義し、それぞれに具体的な指示を与える。
- 第一次インテリジェンス(
triage_agent
)、切り替え可能なインテリジェンスを指定する。 - 支出
Runner.run
非同期で実行し、スペイン語の問題を入力する。 - 主要な理性的なボディは言語に従って転換する
spanish_agent
というような返事をする。
3.カスタムツールの追加
を使用することができます。 function_tool
インテリジェンスが外部機能を呼び出すためのツールを定義する。例えば、天気のチェックなど:
from agents import Agent, Runner, function_tool
@function_tool
def get_weather(city: str) -> str:
return f"The weather in {city} is sunny."
agent = Agent(
name="Weather agent",
instructions="You are a helpful agent.",
tools=[get_weather],
)
async def main():
result = await Runner.run(agent, input="What's the weather in Tokyo?")
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())
手続き::
- で関数を定義する。
@function_tool
装飾。 - 知的な身体に道具を加える
tools
パラメーター - 走った後、インテリジェント・ソサエティはツールに電話をかけ、"東京の天気は晴れです "と返す。
4.ラントラッキングの使用
SDKにはトラッキング機能が組み込まれており、スマートボディの動作の詳細を走行ごとに記録します。スマートボディの動作については result
実行中のプロセスを表示したり、外部ツール(Logfireなど)と統合して分析するためのオブジェクト。追加設定なしでデフォルトで動作します。
5.セキュリティ認証の設定
セキュリティ・バリデーション(ガードレール)は、入力と出力をチェックすることができる。例えば、ユーザーが知的体に数学の宿題をさせないようにする:
from agents import Agent, Runner, input_guardrail
from pydantic import BaseModel
class MathCheck(BaseModel):
is_math_homework: bool
reasoning: str
guardrail_agent = Agent(
name="Guardrail check",
instructions="Check if the user is asking you to do their math homework.",
output_type=MathCheck,
)
@input_guardrail
async def math_guardrail(ctx, agent, input):
result = await Runner.run(guardrail_agent, input)
return GuardrailFunctionOutput(
output_info=result.final_output,
tripwire_triggered=result.final_output.is_math_homework,
)
agent = Agent(
name="Support agent",
instructions="Help customers with their questions.",
input_guardrails=[math_guardrail],
)
async def main():
try:
await Runner.run(agent, "Can you solve 2x + 3 = 11?")
except Exception as e:
print("Guardrail stopped the request")
手続き::
- 入力をチェックするガード・インテリジェンスを定義する。
- 支出
@input_guardrail
ガード機能を作る。 - メインインテリジェンスにガードを追加する。入力に数学の作業が含まれる場合、実行は中断される。
作業工程詳細
- インテリジェント・サーキュレーションコール
Runner.run()
そうすると、SDKは以下のステップを実行します:- 言語モデルを呼び出して応答を生成する。
- ツールコールやタスクスイッチをチェックする。
- ツールコールを実行し、結果を記録する。
- タスクスイッチがあれば、新しいスマートボディにジャンプする。
- 最終出力が生成されるまで、あるいは
max_turns
キャップ
- 出力タイプもし
output_type
そうでなければ、最初のツールレスコールまたはスイッチに対する応答が最終的な出力となる。
使用上の推奨事項
- テスト中にコンポーネントを調整するトラッキング機能で各工程を詳細に表示し、問題を素早く突き止めます。
- 最適化ミッションのニーズに合わせて設定
max_turns
サイクリングのしすぎを避ける。 - エクステンション公式発表への言及
examples
フォルダーに保存して、さらに多くの用途を探ってみよう。
公式ドキュメント:https://openai.github.io/openai-agents-python/