This pull request enhances the document translation workflow by switching to the new GPT-4.1 model. The generator script’s prompt now includes a “workflow” section that guides the model to iterate self-reviews on its outputs to autonomously achieve the highest quality. This addition has noticeably improved the naturalness and consistency of the wording in the translated outputs.
5.9 KiB
5.9 KiB
クイックスタート
プロジェクトと仮想環境の作成
この作業は一度だけ行えば十分です。
mkdir my_project
cd my_project
python -m venv .venv
仮想環境の有効化
新しいターミナルセッションを開始するたびに、これを実行してください。
source .venv/bin/activate
Agents SDK のインストール
pip install openai-agents # or `uv add openai-agents`, etc
OpenAI API キーの設定
まだお持ちでない場合は、こちらの手順に従って OpenAI API キーを作成してください。
export OPENAI_API_KEY=sk-...
最初のエージェントを作成する
エージェントは instructions、名前、およびオプションの設定(例: model_config )で定義します。
from agents import Agent
agent = Agent(
name="Math Tutor",
instructions="You provide help with math problems. Explain your reasoning at each step and include examples",
)
さらにエージェントを追加する
追加のエージェントも同様の方法で定義できます。 handoff_descriptions は、ハンドオフのルーティングを判断するための追加コンテキストを提供します。
from agents import Agent
history_tutor_agent = Agent(
name="History Tutor",
handoff_description="Specialist agent for historical questions",
instructions="You provide assistance with historical queries. Explain important events and context clearly.",
)
math_tutor_agent = Agent(
name="Math Tutor",
handoff_description="Specialist agent for math questions",
instructions="You provide help with math problems. Explain your reasoning at each step and include examples",
)
ハンドオフを定義する
各エージェントで、タスクを進めるために選択できる送信先ハンドオフオプションのインベントリを定義できます。
triage_agent = Agent(
name="Triage Agent",
instructions="You determine which agent to use based on the user's homework question",
handoffs=[history_tutor_agent, math_tutor_agent]
)
エージェントのオーケストレーションを実行する
ワークフローが正しく動作し、トリアージエージェントが 2 つの専門エージェント間で正しくルーティングするか確認しましょう。
from agents import Runner
async def main():
result = await Runner.run(triage_agent, "What is the capital of France?")
print(result.final_output)
ガードレールを追加する
入力または出力に対して実行するカスタムガードレールを定義できます。
from agents import GuardrailFunctionOutput, Agent, Runner
from pydantic import BaseModel
class HomeworkOutput(BaseModel):
is_homework: bool
reasoning: str
guardrail_agent = Agent(
name="Guardrail check",
instructions="Check if the user is asking about homework.",
output_type=HomeworkOutput,
)
async def homework_guardrail(ctx, agent, input_data):
result = await Runner.run(guardrail_agent, input_data, context=ctx.context)
final_output = result.final_output_as(HomeworkOutput)
return GuardrailFunctionOutput(
output_info=final_output,
tripwire_triggered=not final_output.is_homework,
)
すべてをまとめる
すべてを組み合わせて、ハンドオフと入力ガードレールを使ったワークフロー全体を実行してみましょう。
from agents import Agent, InputGuardrail, GuardrailFunctionOutput, Runner
from pydantic import BaseModel
import asyncio
class HomeworkOutput(BaseModel):
is_homework: bool
reasoning: str
guardrail_agent = Agent(
name="Guardrail check",
instructions="Check if the user is asking about homework.",
output_type=HomeworkOutput,
)
math_tutor_agent = Agent(
name="Math Tutor",
handoff_description="Specialist agent for math questions",
instructions="You provide help with math problems. Explain your reasoning at each step and include examples",
)
history_tutor_agent = Agent(
name="History Tutor",
handoff_description="Specialist agent for historical questions",
instructions="You provide assistance with historical queries. Explain important events and context clearly.",
)
async def homework_guardrail(ctx, agent, input_data):
result = await Runner.run(guardrail_agent, input_data, context=ctx.context)
final_output = result.final_output_as(HomeworkOutput)
return GuardrailFunctionOutput(
output_info=final_output,
tripwire_triggered=not final_output.is_homework,
)
triage_agent = Agent(
name="Triage Agent",
instructions="You determine which agent to use based on the user's homework question",
handoffs=[history_tutor_agent, math_tutor_agent],
input_guardrails=[
InputGuardrail(guardrail_function=homework_guardrail),
],
)
async def main():
result = await Runner.run(triage_agent, "who was the first president of the united states?")
print(result.final_output)
result = await Runner.run(triage_agent, "what is life")
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())
トレースを確認する
エージェントの実行中に何が起こったかを確認するには、OpenAI ダッシュボードの Trace viewer にアクセスして、エージェント実行のトレースを表示してください。
次のステップ
より複雑なエージェントフローの構築方法を学びましょう:
- エージェント の設定方法について学ぶ
- エージェントの実行 について学ぶ
- tools、guardrails、models について学ぶ