クイックスタート
プロジェクトと仮想環境の作成
この作業は一度だけ行います。
仮想環境の有効化
新しいターミナルセッションを開始するたびに、この作業を行います。
macOS または Linux の場合:
Windows の場合:
Agents SDK のインストール
OpenAI API キーの設定
キーをお持ちでない場合は、こちらの手順に従って OpenAI API キーを作成してください。
以下のコマンドは、現在のターミナルセッションにキーを設定します。
macOS または Linux の場合:
Windows PowerShell の場合:
Windows コマンドプロンプトの場合:
最初のエージェントの作成
エージェントは、instructions、名前、および特定のモデルなどのオプション設定で定義します。
from agents import Agent
agent = Agent(
name="History Tutor",
instructions="You answer history questions clearly and concisely.",
)
最初のエージェントの実行
Runner を使用してエージェントを実行し、RunResult を取得します。
import asyncio
from agents import Agent, Runner
agent = Agent(
name="History Tutor",
instructions="You answer history questions clearly and concisely.",
)
async def main():
result = await Runner.run(agent, "When did the Roman Empire fall?")
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())
2 回目のターンでは、result.to_input_list() を Runner.run(...) に再度渡すか、セッションを関連付けるか、conversation_id / previous_response_id を使用して OpenAI のサーバー管理状態を再利用できます。エージェントの実行ガイドでは、これらのアプローチを比較しています。
次の目安を参考にしてください:
| 目的 | 最初に使用するもの |
|---|---|
| 完全な手動制御とプロバイダーに依存しない履歴 | result.to_input_list() |
| SDK による履歴の読み込みと保存 | session=... |
| OpenAI が管理するサーバー側での継続 | previous_response_id または conversation_id |
トレードオフと正確な動作については、エージェントの実行を参照してください。
タスクの中心がプロンプト、ツール、会話状態である場合は、通常の Agent と Runner を使用します。エージェントが隔離されたワークスペース内の実ファイルを調査または変更する必要がある場合は、サンドボックスエージェントのクイックスタートに進んでください。
エージェントへのツールの追加
エージェントにツールを追加し、情報の検索やアクションの実行を可能にできます。
import asyncio
from agents import Agent, Runner
from agents.decorators import tool
@tool
def history_fun_fact() -> str:
"""Return a short history fact."""
return "Sharks are older than trees."
agent = Agent(
name="History Tutor",
instructions="Answer history questions clearly. Use history_fun_fact when it helps.",
tools=[history_fun_fact],
)
async def main():
result = await Runner.run(
agent,
"Tell me something surprising about ancient life on Earth.",
)
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())
エージェントの追加
マルチエージェントパターンを選択する前に、最終的な回答を誰が担当するかを決めます:
- ハンドオフ: そのターンの該当部分について、スペシャリストが会話を引き継ぎます。
- Agents as tools: オーケストレーターが制御を維持し、スペシャリストをツールとして呼び出します。
このクイックスタートでは、最初の例として最も簡潔なため、引き続き ハンドオフ を使用します。マネージャー形式のパターンについては、エージェントオーケストレーションおよびツール: Agents as toolsを参照してください。
追加のエージェントも同じ方法で定義できます。handoff_description は、どのタイミングで処理を委任するかについて、ルーティングエージェントに追加のコンテキストを提供します。
from agents import Agent
history_tutor_agent = Agent(
name="History Tutor",
handoff_description="Specialist agent for historical questions",
instructions="You answer history questions clearly and concisely.",
)
math_tutor_agent = Agent(
name="Math Tutor",
handoff_description="Specialist agent for math questions",
instructions="You explain math step by step and include worked examples.",
)
ハンドオフの定義
エージェントには、タスクの解決中に選択できる送信先ハンドオフの選択肢一覧を定義できます。
triage_agent = Agent(
name="Triage Agent",
instructions="Route each homework question to the right specialist.",
handoffs=[history_tutor_agent, math_tutor_agent],
)
エージェントオーケストレーションの実行
Runner は、個々のエージェント、すべてのハンドオフ、およびすべてのツール呼び出しの実行を処理します。
import asyncio
from agents import Runner
async def main():
result = await Runner.run(
triage_agent,
"Who was the first president of the United States?",
)
print(result.final_output)
print(f"Answered by: {result.last_agent.name}")
if __name__ == "__main__":
asyncio.run(main())
参照コード例
リポジトリには、同じ主要パターンを示す完全なスクリプトが含まれています:
- 最初の実行については、
examples/basic/hello_world.pyを参照してください。 - 関数ツールについては、
examples/basic/tools.pyを参照してください。 - マルチエージェントルーティングについては、
examples/agent_patterns/routing.pyを参照してください。
トレースの表示
エージェントの実行中に何が起きたかを確認するには、OpenAI Dashboard の Trace viewerに移動して、エージェント実行のトレースを表示します。
次のステップ
より複雑なエージェントフローを構築する方法を学びます: