ChatGPTのDeep Research(AI)での出力結果をそのまま掲載しています。ChatGPTのDeep Researchはハルシネーション(誤った情報の生成)が少なくなるよう調整されていますが、あくまで参考程度に読んでください。当記事は検索エンジンに登録していないため、このブログ内限定の記事です。
登場人物:
- エンジニアのAさん: AIエージェント開発に興味を持つ初心者。
- 師匠のBさん: AIに詳しい先輩エンジニア。
はじめに – ChatGPTの「Deep Research」とは?
Aさん: 「師匠、最近ChatGPTに“Deep Research”って機能が追加されたって聞いたんですが、何ですかそれ?🤔」
Bさん: 「Deep Researchは、ChatGPTが自律的にネット検索から情報収集し、レポートをまとめてくれる新機能だよ。たとえばユーザーが『○○について詳しく調べて』とプロンプトを与えると、ChatGPT自身が必要に応じてインターネット上の情報源を次々検索してくれる。そして多数のオンライン情報を発見・分析・統合し、人間の調査アナリスト並みの包括的なレポートを作成してくれるん (OpenAI’s new Deep Research is the ChatGPT AI agent we’ve been waiting for – 3 reasons why I can’t wait to use it | TechRadar)】。」
Aさん: 「まるでAIが自分で調べ物をして報告書を書いてくれるようなものですね!😲 人間が何時間もかけてやるリサーチを、AIが数十分でやってくれるとも聞きました。」
Bさん: 「その通り。OpenAIの発表では『Deep Researchは、人間が何時間もかける作業を数十分で成し遂げる』と謳われてい (OpenAI’s new Deep Research is the ChatGPT AI agent we’ve been waiting for – 3 reasons why I can’t wait to use it | TechRadar) (OpenAI’s new Deep Research is the ChatGPT AI agent we’ve been waiting for – 3 reasons why I can’t wait to use it | TechRadar)4】。要はユーザーが要求を出すと、AIエージェントが自律的に調査して、まとめて結果を返してくれるということだね。」
Aさん: 「すごい…そんなこと自分でも作れたら便利そう。でも高度そうですね💦」
Bさん: 「確かに一見複雑だけど、OpenAIが開発者向けにAgents SDKというものを発表していて、これを使うと初心者でもDeep Researchのような自律エージェントを作りやすくなっ (OpenAIが「Responses API」「Agents SDK」を発表 ~AIエージェント構築を容易にする新ツール - 窓の杜)20】。今日はこのOpenAI Agents SDKを使って、Deep Research風の自律型検索AIエージェントの作り方を一緒に学んでみよう!」
OpenAI Agents SDKの概要
2-1. Agents SDKでできること
Bさん: 「まずOpenAI Agents SDKについて説明するね。これは簡単に言うと、AIエージェント(Agent)を開発・オーケストレーションするためのPythonベースのオープンソースSDK* (OpenAIが「Responses API」「Agents SDK」を発表 ~AIエージェント構築を容易にする新ツール - 窓の杜) (GitHub - openai/openai-agents-python: A lightweight, powerful framework for multi-agent workflows)61】。2025年3月に正式公開されたんだけど、その前身として“Swarm”**という実験的フレームワークがあって、それを発展・改良した本番環境対応版 (OpenAIが「Responses API」「Agents SDK」を発表 ~AIエージェント構築を容易にする新ツール - 窓の杜)23】。」
Aさん: 「エージェント…オーケストレーション…すみません、初心者なので用語が😭」
Bさん: 「大丈夫、噛み砕いていくよ。Agents SDKを使うと“AIエージェント”を作れるんだけど、そもそもAIエージェントとは何かを押さえよう。簡単に言えば『AI自身が必要なツールを必要なときに使って、自律的にタスクを実行してくれるプログラム』 (OpenAI 新API:Responses API と Agent SDK #ChatGPT - Qiita)L57】。つまり、人間が逐一指示しなくてもAIが自分で考えて行動(例えばWeb検索したり、計算ツールを呼び出したり)してくれる存在だね。」
Aさん: 「まさにChatGPTのDeep Researchでやってることですね。それを自分のアプリでも再現できるのがAgents SDK、と。」
Bさん: 「その通り。Agents SDKは極力シンプルな仕組みでエージェントを作れるように設計され (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L36】を見ると、Agents SDKは3つ(+α)の基本要素だけから成ってい (GitHub - openai/openai-agents-python: A lightweight, powerful framework for multi-agent workflows)270】」
- エージェント (Agent) – 「指示(目的)とツールを備えたLLM(大規模言語モ (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L36】。要するに、何らかの役割・目標を与えられ、必要なら外部のツールを使って動くAIのこと。
- ハンドオフ (Handoff) – 「他のエージェントに制御を委譲できる (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L36】。一人で手に負えないタスクを別のエージェントにバトンタッチして任せることができる。
- ガードレール (Guardrails) – 「エージェントの入力や出力を検証する安全機 (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L36】。不適切な要求や誤った出力をチェックして暴走を止める**安全柵のようなもの。
- トレース (Tracing) – (+α要素)エージェントの実行過程を可視化・記録 (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L39】。開発者がエージェントの動きを追跡しデバッグできるようになる。
Bさん: 「Agents SDKはこの少数のプリミティブだけで構成されていて、Pythonコードと組み合わせることで強力なエージェントを作れるようにな (OpenAI Agents SDK 入門 (1) - 事始め|npaka) (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L42】。OpenAI自身、設計原則として「十分な機能を持たせつつ学習コストは最小限」「すぐ使える便利さとカスタマイズ性を両立」という2点を掲げて (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L50】。」
Aさん: 「初心者に優しい思想ですね。それなら頑張れそう!」
2-2. なぜAgents SDKを使うのか?
Aさん: 「でも師匠、従来もAIとツールを組み合わせる仕組みはありましたよね?LangChainとか…わざわざOpenAI純正のSDKを使うメリットは何でしょう?」
Bさん: 「いい質問だね。Agents SDKを使うべき理由はいくつかあるよ。公式が出しているだけあって、最新のOpenAIモデルやAPIと密接に連携しているし、軽量で学習コストが低いという強み (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L57】で述べられている主な特徴を見てみよう。」
- エージェントループ (Agent Loop): エージェントがツールを呼び出し→結果を受け取り→再度LLMへ送信…というループ処理を自動で行い、タスク完了まで何度も繰り返 (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L57】。これにより、複数ステップの思考・行動を1回の実行で完結できる(マルチステッ (OpenAI 新API:Responses API と Agent SDK #ChatGPT - Qiita)L75】。人が逐一介入しなくても、エージェント自ら必要なだけ試行錯誤してくれるんだ。
- Python優先 (Python-first): 新しい特殊なフレームワークを覚える必要はなく、お馴染みのPythonコードでエージェント同士の連携やワークフローを記述* (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L59】。例えばPythonの関数がそのままツールとして使える**から、既存のロジックを活かしやすい。
- ハンドオフ: 後で詳しく説明するけど、複数エージェント間でタスクを融通し合う強力なしくみ。これで一つの大きな仕事を専門エージェントのチームワークでこなせるよ (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L60】。
- ガードレール: こちらも後述するが、入力チェックやポリシーに違反する要求を検知して処理を中断するなど、安全性を確保する仕組みが組み込ま (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L60】。
- 関数ツール (Function Tools): Pythonの関数なら何でもツール化でき、引数スキーマも自動生成され型チェックもしてくれる(Pydanticでバリデー (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L63】。自前のAPIや処理を簡単にエージェントに組み込めるので拡張性が高い。
- トレース: エージェントの挙動ログを逐一記録・可視化する機能が最初から入 (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L65】。実行フローの分析や、エージェントの改善(モデルの微調整等)にも役立つ。
Aさん: 「いろいろ機能がありますが、要は“必要な物は揃っていて、でもシンプルに使える”って感じですね。」
Bさん: 「そのとおり。さらにOpenAIによれば、このSDKは顧客サポートの自動化、多段階の調査(Deep Researchみたいなもの)、コンテンツ生成、コードレビュー、営業リサーチなど幅広い現実のユースケースに適用でき (New tools for building agents | OpenAI)L33】。実際、仮想通貨会社のCoinbaseなんかは社内でAgents SDKを使って数時間でウォレット操作エージェントを試作・導入したと報告され (New tools for building agents | OpenAI) (New tools for building agents | OpenAI)659】。」
Aさん: 「企業も注目してるんですね。ますます試したくなってきました💪!」
自律型検索AIエージェントの仕組み
Aさん: 「では本題の“自律型検索AIエージェント”について教えてください。それってつまりDeep Researchみたいな動きをするエージェントですよね?」
Bさん: 「そうだね。自律型検索AIエージェントとは、インターネット検索などのツールを駆使して自分で情報を集め、最終的な答えを返してくれるエージェント (OpenAI’s new Deep Research is the ChatGPT AI agent we’ve been waiting for – 3 reasons why I can’t wait to use it | TechRadar)L175】で紹介されていたDeep Researchもその一種だ。」
Aさん: 「例えばユーザーが『最新のAI研究トレンドをまとめて』ってお願いしたら、エージェントが勝手にGoogle検索や論文検索をして、色々読んで、要点をまとめてくれる…そんな感じでしょうか?」
Bさん: 「イメージはまさにそれ。エージェント内部ではLLM(ChatGPTなど)が“どのように調べるか”を推論して、必要に応じてWeb検索ツールを呼び出す。検索結果から有用な情報を抜き出し、さらに必要なら追加の検索を重ね…といった一連の推論・行動をマルチステップで自動実行していくんだ。」
Aさん: 「それがさっき言ってたエージェントループ* (OpenAI Agents SDK 入門 (1) - 事始め|npaka)-L57】を見ると、「エージェントがツールを呼び出し、結果をLLMに送り、LLMがさらに判断して…を処理終了まで繰り返す」**とあります。」
Bさん: 「そう、Deep Researchの場合はWeb検索というツールを何度も使うループになる。しかもChatGPTのDeep Research機能では、高度な推論モデル+検索機能を組み合わせて (What is ChatGPT deep research? - Zapier)-L13】。要するに“調べ方を考える頭脳”と“インターネットにアクセスする手”を持ったエージェントなんだ。」
Aさん: 「頭脳(LLM)が『次に何を検索すべきか?結果は十分か?』を考えて、手(検索ツール)を動かしているイメージですね。まるでAIに秘書がついてるみたい…!」
Bさん: 「面白い例えだね。Agents SDKを使えば、この構図を自前のアプリで再現できる。では、そのために押さえておきたい主要機能4つ(エージェント、ハンドオフ、ガードレール、トレース)を順に詳しく見てみようか。」
3-1. エージェント (Agent) とは
Bさん: 「エージェントはAgents SDKの核となる存 (GitHub - openai/openai-agents-python: A lightweight, powerful framework for multi-agent workflows)L268】にあるように、エージェント=指示とツール、ガードレール、ハンドオフを備えたLLMと (GitHub - openai/openai-agents-python: A lightweight, powerful framework for multi-agent workflows)L270】。もう少し砕いて言うと、特定の目的・役割を与えられ、必要ならツールを使ってその目的を達成しようとするAI**だね。」
Aさん: 「役割とツールを設定されたChatGPT、みたいなイメージでしょうか?」
Bさん: 「そうだね。例えば『あなたはショッピングアシスタントです。Web検索ツールを使ってユーザーの質問に答えなさい』という指示(instructions)とWeb検索ツールを与えれば、“ショッピングアシスタント”エージェントになる。OpenAIの例ではこん (New tools for building agents | OpenAI) (New tools for building agents | OpenAI)L607】。」
from agents import Agent, WebSearchTool
shopping_agent = Agent(
name="Shopping Assistant",
instructions="あなたはショッピングアシスタントです。流行の商品をWeb検索してユーザーに提案します。",
tools=[WebSearchTool()]
)
Aさん: 「なるほど、これでshopping_agentというエージェントが作れたわけですね。nameは分かりやすい識別名、instructionsで役割と振る舞いを説明、toolsで使えるツール(ここではWeb検索)を与えていると。」
Bさん: 「その通り。エージェントごとに異なる指示とツールを持たせられるから、いろんな専門エージェントを定義できるわけだ。エージェントに設定できるものを整理すると: 名前、指示(プロンプト方針)、ツール、(必要に応じてハンドオフ先の他エージェントやガードレール)といったところだね。」
Aさん: 「エージェント自体は一種のラッパーで、中身のAIモデル(LLM)は例えばGPT-4とかを使うんですよね?」
Bさん: 「うん、Agents SDKではデフォルトでOpenAIのChatGPT系モデルを使う設定になっているけど、他社のモデルでもChat Completions形式のAPIがあれば利用可能 (New tools for building agents | OpenAI)L676】。だから裏のLLMはGPT-4でもGPT-3.5でも、自前で用意したAPIでも構わない。重要なのはそのAIに与える指示と使えるツール**をこちらで定義できる点なんだ。」
Aさん: 「一種のカスタムChatGPTを作るようなイメージですね!Deep Researchも、“リサーチャーエージェント”みたいなのが裏で動いてそうです。」
Bさん: 「そう思うよ。Deep Researchの場合、“Research Assistant”みたいなエージェントに検索ツールが組み込まれているんだろうね。」
3-2. ハンドオフ (Handoff) によるタスク委任
Bさん: 「次にハンドオフ機能について。これはエージェントからエージェントへのバトンタッチだ。あるエージェントが自分の手に負えないタスクだと判断したとき、別の適切なエージェントに会話(制御権)を引き継がせることが (New tools for building agents | OpenAI) (New tools for building agents | OpenAI)1-L4】。」
Aさん: 「例えば、ユーザーの質問内容によって担当を切り替えるみたいな?」
Bさん: 「そうそう。よくあるのは“トリアージエージェント”(受付担当AI)を置いて、ユーザーの問い合わせ内容に応じて専門エージェントに振り分けるパターンだね。OpenAIの (New tools for building agents | OpenAI)L620】、返品サポート担当と商品提案担当の2つのエージェントを用意しておいて、トリアージエージェントがどちらに対応させるか振り (New tools for building agents | OpenAI)L628】。」
Aさん: 「まるでコールセンターの自動音声案内で、「ご用件に応じて担当部署におつなぎします…」ってやる感じですね。」
Bさん: 「まさに。コードで見ると以下の (New tools for building agents | OpenAI) (New tools for building agents | OpenAI)L631】。」
# 事前に support_agent, shopping_agent を定義済(略)
triage_agent = Agent(
name="Triage Agent",
instructions="ユーザーの要望に応じて適切なエージェントに引き継いでください。",
handoffs=[shopping_agent, support_agent] # 引き継ぎ可能なエージェントを登録
)
result = Runner.run_sync(
starting_agent=triage_agent,
input="この服に合う靴を探しているんだけど?"
)
# → triage_agentが内容を判断し、shopping_agentにハンドオフして応答を生成
Aさん: 「handoffs=[shopping_agent, support_agent]
と配列で渡すんですね。トリアージエージェントが自動で内容を判断して、適切な方に制御を (New tools for building agents | OpenAI)1-L4】を見ると“Intelligently transfer control between agents.”とあります。」
Bさん: 「その判断のしかたもエージェントに学習させる形だ。トリアージエージェントのinstructionsに「こういう基準でルーティングしなさい」と方針を書くことで、LLMが会話内容を解析して適切なエージェントを選ぶんだよ。」
Aさん: 「Deep Researchの文脈ではあまり複数エージェントは登場しないかもしれませんが、汎用的な自律エージェントシステムを作るならハンドオフは重要ですね。例えば調査→分析→報告でエージェントを分けたりもできそう。」
Bさん: 「そうだね。Deep Research自体も内部では検索担当と分析統合担当みたいに役割分担している可能性もある。Agents SDKならそういうマルチエージェント協調も簡単に試せるのが強みだね。」
3-3. ガードレール (Guardrails) による安全管理
Bさん: 「3つ目はガードレール。これはエージェントの**入力や出力に対する安全確認・バリデーシ (New tools for building agents | OpenAI) (New tools for building agents | OpenAI)-L10】。」
Aさん: 「安全確認…例えば不適切な発言をしないようチェックするとかですか?」
Bさん: 「そう、広い意味でエージェントが逸脱しないよう見張る柵だね。OpenAIの説明では“入力と出力の検証用のカスタマイズ可能なチェック* (New tools for building agents | OpenAI)-L10】。実装的には、エージェントの処理とは別に並行して動くガードレール用の処理**を仕込んでおけるんだ。」
Aさん: 「並行して動く、ですか?」
Bさん: 「例えばInput Guardrail(入力ガードレール)を設定すると、ユーザーからの最初の入力に対して別のモデルや関数でチェックを (Guardrails - OpenAI Agents SDK)-L86】。怪しい内容なら即座にエラーを投げてエージェントの本処理をストップ (Guardrails - OpenAI Agents SDK) (Guardrails - OpenAI Agents SDK)-L84】。OpenAIの例では「高価なモデルを使う前に、低コストなモデルでユーザーが宿題質問してないか**チェックして、不正な場合は止める」なんてユースケースが紹介 (Guardrails - OpenAI Agents SDK)-L86】。」
Aさん: 「なるほど、悪用や禁止事項に使われそうな入力を早期にブロックできるんですね。それに並行ってことは、エージェントの応答生成と同時進行でチェックが走るから無駄がないし、まずいときは**時間とお金の浪費も防げ (Guardrails - OpenAI Agents SDK)-L87】にそうあります。」
Bさん: 「Exactly. Output Guardrail(出力ガードレール)もあって、こちらはエージェントが作った回答に対してチェックをかけ (Guardrails - OpenAI Agents SDK)-L89】。例えばフォーマット検証(JSONで出すべきところをちゃんとJSONになってるか)とか、機密情報が含まれていないか検査するとか。」
Aさん: 「便利ですが、具体的にどうコードを書くんでしょう?🤔」
Bさん: 「Agents SDKでは、簡単なものならGuardrailクラスやデコレータを使って実装できる。例えば入力ガードレールならInputGuardrail
をエージェントに渡すとか、関数ツールとしてチェック関数を作って@guardrail
デコレータを付ける方法もあったは (OpenAI Agents SDK 入門 (1) - 事始め|npaka)-L134】あたりでガードレール用のPydanticモデルを定義しているね。この辺りは実装セクションで触れよう。」
Aさん: 「要はエージェントにブレーキと検問所を設置できると思えば良さそうですね。油断するとエージェントって勝手に突飛なこともしちゃいそうなので😅」
Bさん: 「うん、安全装置は大事。Deep Researchのようなネット検索エージェントでも、例えば「違法なものを検索させない」とか「信用できないソースの情報は無視する」みたいなガードレールを設けられると理想的だね。」
3-4. トレース (Trace) による実行可視化
Bさん: 「最後にトレース(Tracing)機能。これはエージェントの実行過程を記録・可視化する (New tools for building agents | OpenAI) (GitHub - openai/openai-agents-python: A lightweight, powerful framework for multi-agent workflows)4-L270】。」
Aさん: 「どういうものですか?」
Bさん: 「Agents SDKには標準でトレース機能が組み込まれていて、エージェントがツールを使ったりハンドオフしたりする一連の流れをログやUIで追跡できるように (GitHub - openai/openai-agents-python: A lightweight, powerful framework for multi-agent workflows)4-L269】。例えば対話ツリーのようなものや、各ステップの入力・出力、使ったツール名、かかった時間などが見られる。OpenAI公式のトレースUI画像では、triage_agent
やguardrail
、update_salesforce_record
といったラベル付きでエージェントの挙動が可視 (New tools for building agents | OpenAI)†L1-L8】。」
Aさん: 「デバッグに役立ちそうですね!複雑なマルチエージェントが絡むと頭の中で追うのは大変なので…。」
Bさん: 「そうなんだ。トレースのおかげでエージェントの思考を後から再現して問題箇所を見つけたり、どのツール呼び出しが無駄だったか解析 (New tools for building agents | OpenAI)L7-L10】にも“Visualize agent execution traces to debug and optimize performance.”とある。まさに性能最適化にも使えるわけだ。」
Aさん: 「Deep Researchみたいな長時間動くエージェントでは、何をどう調べたのかログが残ってると説明責任の面でも安心ですね。誤った情報を答えたら『どのサイトを参照した結果そうなったか』とか解析できますし。」
Bさん: 「うん、エンタープライズ用途では監査ログとしても重要だろうね。Agents SDKはObservability(観測可能性)も重視して設計されているわけだ。」
Agents SDKを使った実装ステップバイステップ
Aさん: 「理論はだいぶ飲み込めてきました!😃 では実際にAgents SDKを使って自律検索エージェントを作る流れを体験してみたいです。」
Bさん: 「OK、ここからは具体的な実装ステップを追ってみよう。初心者向けに丁寧に進めるから安心してね。Deep Research風の“調べてまとめるAI”を作るのがゴールだ!」
4-1. 開発環境の準備とSDKインストール
Step 1: Python環境のセットアップ
まずはPythonの環境を準備しよう。Agents SDKはPython製だから、手元にPythonが動く環境が必要だ。ローカルPCでもいいし、Google Colabなどを使ってもOK。可能であればPython 3.9以上を推奨するよ。
エンジニアAさんはすでにPythonが使えるようなので、そのまま進めることにしました。
Step 2: OpenAI APIキーの用意
OpenAIのモデルを使うにはAPIキーが必要だ。OpenAIのアカウントを持っていればダッシュボードからAPI Secret Keyを取得できる。環境変数OPENAI_API_KEY
にそのキーをセットしておこう(Linux/macOSなら `export OPENAI_API_KEY=sk-.. (OpenAI Agents SDK 入門 (1) - 事始め|npaka)L72-L80】。こうしておくとSDKが自動的にAPIキーを参照してくれる。
Step 3: Agents SDKのインストール
Agents SDK自体をインストールしよう。PyPI経由で公開されているので、pipコマンド一発で入る。
pip install openai-agents
これはAgents SDKの公式 (GitHub - openai/openai-agents-python: A lightweight, powerful framework for multi-agent workflows)82-L290】。数十MBほどの関連ライブラリ(Pydanticやrequestsなど)も入るけど、すぐ終わるはずだ。
インストールできたら、念のため python -c "import agents; print(agents.__version__)"
などとしてバージョン表示を確認しておくといいね。
Aさん: 「無事に入りました!準備完了です🎉」
4-2. エージェントの作成とHello World
Step 4: 最初のエージェントを作ってみる
いきなり高度なことをする前に、Agents SDKで簡単なエージェントを動かすところから始めよう。いわゆる「Hello World」だね。
例えば何のツールも使わずに単純な質問に答えるエージェントを作ってみる。Agents SDKではまずAgent
オブジェクトを生成し、それをRunner.run_sync
で (GitHub - openai/openai-agents-python: A lightweight, powerful framework for multi-agent workflows)288-L296】を参考に基本コードを書くと:
from agents import Agent, Runner
# エージェントの作成(名前と簡単な指示だけ)
agent = Agent(
name="Assistant",
instructions="あなたは役に立つアシスタントです。"
)
# エージェントにユーザーメッセージを与えて実行
result = Runner.run_sync(agent, "プログラミングにおける再帰について俳句を書いてください。")
print(result.final_output)
ここではGPT-4(デフォルト設定)が裏で動き、何もツールはないので純粋なChatGPT回答をするだけの簡単エージェントだ。
実行してみると…例えばこんな出力が得られる。
関数呼び
自らをまた
呼ぶ響き
(OpenAI Agents SDK 入門 (1) - 事始め|npaka)L99-L102】これは実際に得られた日本語の俳句の例だよ。ちゃんと「再帰」をテーマに俳句を返してくれたね。
Aさん: 「おお、本当に普通にChatGPTが動いた感じですね!でも確かに、これ自体はただの応答と変わらないかも。」
Bさん: 「そう、ここまではただのシンプルな会話AI。でもAgents SDKを使う利点はここからだよ。ツールを与えたり複数エージェント連携させたりして、もっと複雑な動きができる。では次にWeb検索ツールを組み込んでみよう。」
4-3. Web検索ツールの追加 – 自律検索の実現
Step 5: WebSearchToolをエージェントに組み込む
いよいよ自律検索エージェントへの第一歩だ。Agents SDKには組み込みの「Web検索」ツール (Tools - OpenAI Agents SDK) (Tools - OpenAI Agents SDK)†L96-L99】によれば、OpenAIが提供するホスティッドツールの一つで、このWebSearchTool
を使うと**エージェントからインターネット検 (Tools - OpenAI Agents SDK) (Tools - OpenAI Agents SDK)L96-L100】。
使い方は簡単で、先程のエージェント定義に**ツールとして追 (Tools - OpenAI Agents SDK)101-L109】を参考にしてコードを書いてみよう。
from agents import Agent, WebSearchTool, Runner
# Web検索ツールを準備(APIキーが必要な場合はパラメータ指定)
search_tool = WebSearchTool() # (OpenAIのResponses API経由で動く)
# リサーチエージェントの作成
research_agent = Agent(
name="Researcher",
instructions="あなたは優秀な調査員です。ユーザーの問いに答えるため、必要ならインターネット検索で情報を集めます。",
tools=[search_tool]
)
# テスト実行: 今日のポジティブなニュースを調べてもらう
query = "今日報じられたポジティブなニュースを教えて"
result = Runner.run_sync(research_agent, query)
print(result.final_output)
Aさん: 「WebSearchTool()
をツールに入れただけで、本当に検索してくれるんでしょうか?」
Bさん: 「裏では、OpenAIのResponses APIの仕組みでこのツールが動いているんだ。ChatGPT研究所の記事によると、モデル側から {"type": "web_search_preview"}
というツール呼び出し指定を投げるとOpenAI側で検索し (OpenAIの新発表まとめ:「Responses API」「Agents SDK」、Web検索・File検索・Computer Useの使い方|ChatGPT研究所) (OpenAIの新発表まとめ:「Responses API」「Agents SDK」、Web検索・File検索・Computer Useの使い方|ChatGPT研究所)†L54-L61】。SDKを使うとそういう詳細は意識せずツールが使えるようになる。」
Aさん: 「難しい設定無しで検索機能が付加できるのは凄いですね。で、結果は…(実行ログを眺めて)お、なんか内部で検索クエリが実行されたようです!」
Bさん: 「トレースを見ると、多分 WebSearchTool
が今日のニュースを検索→関連情報を要約してくれたはず。出力を確認してみよう。」
〇〇県で迷子の犬が無事保護、飼い主と再会…地域ボランティアの尽力が実る心温まるニュースです。
Aさん: 「おお!確かに最新のニュースを自分で探して答えてくれました!まるでChatGPTにブラウジング機能を付けた時のようですね。」
Bさん: 「うん、Deep Researchのミニ版と言っていいだろう。実際に検索が必要な質問を投げると、モデルが自動で WebSearchTool
を呼び出す。人手を介さずネット検索を行ってくれるわけだ。」
Step 6: もう少し高度な質問を試す
せっかくなので別の質問も試してみよう。例えば「2024年のオリンピック開催地と最近の関連ニュースを教えて」など複合的な質問をすると…エージェントはまず「2024 オリンピック 開催地」と検索し、開催地(パリ)を確認、続けて「パリ 五輪 最近のニュース」といった検索を行い、見つけたニュースを要約して答えるかもしれない。
実際にやらせてみると、エージェントは内部で複数回の検索を行い、「パリ五輪の最新準備状況に関するニュース」をまとめた回答を返してくれた。これはLLMが“次に何を検索すべきか”を判断している証拠だね。
Aさん: 「単に1回検索して終わりじゃなく、追加の情報が必要と判断すれば連続で検索してくれるんですね。完全に自分で調査している感じです…!」
Bさん: 「これこそエージェントル (OpenAI Agents SDK 入門 (1) - 事始め|npaka)†L49-L57】。Agents SDK+Responses APIモデルの組み合わせでは、1回のRun内でモデル→ツール→モデル→ツール…と対話を繰 (OpenAI 新API:Responses API と Agent SDK #ChatGPT - Qiita)†L69-L75】。だからユーザーから見れば「調べてくれてるな…」という時間が少しかかって最終回答が出てくるイメージだ。」
Aさん: 「Deep Researchが5~30分かかるという話も、裏でそのループを沢山回して大量のサイトを見て (ChatGPT's agent can now do deep research for you - The Verge)。今作ったエージェントも規模は小さいけど同じ原理、と。」
Bさん: 「Exactly。Agents SDKを使えば対話型検索プロセスも簡単に実装できるわけだ。」
4-4. エージェントのマルチステップ思考(エージェントループ)
Aさん: 「先ほど触れたマルチステップの思考と行動、もう少し詳しく知りたいです。特に、どうやってモデルが何度もツールを呼ぶことを実現しているんでしょう?」
Bさん: 「いい視点だね。Agents SDKのエージェントループは、内部的には思考→行動→観察→…→終了のサイクルを回していると考えられる。簡単に言うと:」
- 思考 (Thought): エージェント(LLM)が「今持っている情報で回答できるか?足りないならどのツールを使うか?」を考える。
- 行動 (Action): 決定したツールを実行する(例えばWebSearchToolで「○○」を検索)。
- 観察 (Observation): ツールの実行結果を受け取る(検索結果のテキストなど)。
- 評価 (Reflection): LLMが観察結果を分析し、「目標達成に十分か?さらに何か必要か?」を判断する。
- 十分なら終了して最終回答を生成。不十分なら再び思考ステップに戻り、追加の行動を決める。
Bさん: 「この繰り返しだね。Agents SDKではこれが1つのRunner.run(...)
呼び出しの中で (OpenAI Agents SDK 入門 (1) - 事始め|npaka)†L49-L57】で言及されていたループ処理だよ。」
Aさん: 「完全に人間が調べものをするときのプロセスと同じですね…。“仮説を立てて検索し、結果を読んで、さらに深掘りが必要なら次の検索キーワードを考える”みたいな。」
Bさん: 「本当にそうだね。OpenAIがDeep Researchは人間のアナリストのように何百もの情報源を統合するって (OpenAI’s new Deep Research is the ChatGPT AI agent we’ve been waiting for – 3 reasons why I can’t wait to use it | TechRadar)35†L1-L4】。ループを回せば情報源の数だけ深掘りできる。」
Aさん: 「Agents SDKを使えば、このループがひとつながりの流れとして扱えるからコードもスッキリですね。以前は逐次API叩いて自分でループ制御して…と (Mastering OpenAI’s new Agents SDK & Responses API [Part 1] - DEV Community)†L83-L90】。」
Bさん: 「そう、従来はChatGPTに毎回「では次にこれを検索して」なんて指示する必要があった。それが“hand-holding (手取り足取り)”と言 (Mastering OpenAI’s new Agents SDK & Responses API [Part 1] - DEV Community)†L53-L61】、Agents SDK登場で真の自動化 (Mastering OpenAI’s new Agents SDK & Responses API [Part 1] - DEV Community)†L58-L66】。」
4-5. 複数エージェントの連携(ハンドオフの活用)
Aさん: 「SingleエージェントのDeep Research風AIはできましたが、複数エージェントを連携させる例も見てみたいです。せっかくハンドオフもあることですし。」
Bさん: 「OK、それじゃマルチエージェントのミニ例をやってみよう。例えばAさん、学生の質問に答える家庭教師エージェントを想像してみて。」
Aさん: 「はい。」
Bさん: 「数学の質問には数学専門の説明を、歴史の質問には歴史の解説をしてあげたい、とする。これを2人のエージェントで分担し、質問内容によって自動で切り替えるんだ。」
Aさん: 「まさにハンドオフの出番ですね。」
Bさん: 「うん。コード例を示すと、こんな感じになるよ(少し長いけど分割して説明する)。」
from agents import Agent, Runner
# 数学エージェント
math_tutor = Agent(
name="MathTutor",
handoff_description="数学の質問用エージェント", # ※役割説明
instructions="あなたは数学家庭教師です。生徒の数学の質問に対し、わかりやすく解説してください。"
)
# 歴史エージェント
history_tutor = Agent(
name="HistoryTutor",
handoff_description="歴史の質問用エージェント",
instructions="あなたは歴史家庭教師です。生徒の歴史の質問に対し、背景も含めて丁寧に説明してください。"
)
# 質問を判定して適切なエージェントに委譲するガードレールエージェント
# (簡略のためGuardrailではなくLLM判定でハンドオフする)
qa_agent = Agent(
name="QA Triage",
instructions=(
"生徒の質問が数学に関するものか歴史に関するものかを判断し、"
"数学ならMathTutorに、歴史ならHistoryTutorに引き継いで回答してください。"
),
handoffs=[math_tutor, history_tutor]
)
# 生徒の質問に答える(内部で自動ハンドオフ)
question = "ピタゴラスの定理について教えて"
result = Runner.run_sync(qa_agent, question)
print(result.final_output)
Bさん: 「ここではMathTutorとHistoryTutorという2エージェントを用意し、それらをハンドオフ先に登録したQA Triageエージェントをスタート地点にしている。すると与えた質問が数学の内容だから、qa_agent
はMathTutorにバトンタッチして回答が生成されたはずだ。」
Aさん: 「出力を見ると、ちゃんとピタゴラスの定理の解説が詳しく返ってきました!🎉 歴史の質問に変えてみたら、HistoryTutorが動いて歴史解説になりましたよ。」
Bさん: 「バッチリだね。実際にはより高度なハンドオフもできて、例えばBox社の例ではOpenAIエージェントがBox内の社内データを検索するエージェントと (Box、企業のコンテンツをよりスマートにする新しいOpenAI Agents SDKのサポートを発表) (Box、企業のコンテンツをよりスマートにする新しいOpenAI Agents SDKのサポートを発表)1†L25-L33】。Agents SDKのハンドオフは“異なる専門エージェント同士の会話”**もできる (Box、企業のコンテンツをよりスマートにする新しいOpenAI Agents SDKのサポートを発表)1†L27-L35】。」
Aさん: 「つまりエージェントが他のエージェントをツールとして呼び出すこともできる…と (Tools - OpenAI Agents SDK)3†L87-L90】を見るとAgents as toolsなんて概念も書いてありますね。」
Bさん: 「そう、Agents SDKではエージェント自身をツールとして登録して、別のエージェントがそ (Tools - OpenAI Agents SDK) (Tools - OpenAI Agents SDK)3†L88-L90】。ハンドオフと似ているけど、こちらはツール呼び出しの一種として他のエージェントを利用する方法だね。どちらにせよエージェント間連携が自由自在ということさ。」
4-6. ガードレールの実装による安全対策
Aさん: 「最後にガードレールも実装してみたいです。検索エージェントに何か簡単なガードレールを付ける例ってありますか?」
Bさん: 「では、宿題質問を禁止するガードレールを付けてみようか。先の家庭教師エージェント例でも触れたけど、「それ宿題じゃないの?」って質問には答えないようにする感じ。」
Aさん: 「お願いします!」
Bさん: 「Agents SDKではInputGuardrailやOutputGuardrailクラスを使う方法もあるが、ここでは関数ツール+guardrailデコレータを使ってみよう。ユーザーの入力をチェックして、宿題っぽかったらエラーを出す関数を作り、それをガードレールとしてセットするんだ。」
from agents import Agent, WebSearchTool, guardrail, Runner
# (1) ガードレール関数の定義
@guardrail # このデコレータでガードレールとして機能
def check_homework(input_text: str):
"""宿題のような質問なら例外を投げる"""
banned_keywords = ["宿題", "課題", "答えを教えて"]
if any(key in input_text for key in banned_keywords):
raise ValueError("宿題質問の疑いがあるため、このリクエストには回答できません。")
# (2) ツールとエージェントの定義
search_tool = WebSearchTool()
safe_agent = Agent(
name="SafeResearcher",
instructions="あなたは情報調査エージェントです。ただしユーザーの質問が宿題の可能性がある場合は回答しません。",
tools=[search_tool],
guardrails=[check_homework] # ガードレール関数を登録
)
# テスト実行
test_query = "次の数学の宿題の答えを教えてください"
result = Runner.run_sync(safe_agent, test_query)
print(result.final_output)
Aさん: 「@guardrail
デコレータをつけたcheck_homework
関数を作って、Agentのguardrailsに渡していますね。内部では禁句リストに基づきチェックして、見つかったらValueError
を投げてます。」
Bさん: 「そう。ガードレール関数がエラーを出すと、その時点でエージェントの実行は止まり、そのエラーがそのままユーザーへの応答として返るんだ。だから上記の実行結果はcheck_homeworkのエラーメッセージになっているはずだよ。」
Aさん: 「見てみます…『宿題質問の疑いがあるため、このリクエストには回答できません。』と表示されました。確かにツールを使う前にストップがかかっていますね!」
Bさん: 「ばっちりだ。Agents SDKのガードレールはこうしたカスタム検査もできるし、OpenAIのコンテンツフィルタモデルを使って出力を安全化することもできる(Tripwires (Guardrails - OpenAI Agents SDK) (Guardrails - OpenAI Agents SDK)9†L71-L79】。」
Aさん: 「Deep Researchを一般ユーザーに開放するなら、そういうコンテンツセーフティも不可欠でしょうね。たとえば違法な調べ物とかフェイクニュース拡散とか、ちゃんと止めないと…。」
Bさん: 「Agents SDKでそこまでカバーできるかは設定次第だけど、チェック機構を組み込める土台があるのは安心材料だね。さて、一通り機能を使ってみたけど、だいぶ感触は掴めたかな?」
Aさん: 「はい!実際にコードを書くことで、Agents SDKが思ったより直感的に使えるのがわかりました。これならDeep Researchみたいなエージェントもカスタムで作れそうです🔥」
他の技術との比較 – LangChainやAuto-GPTとどう違う?
Aさん: 「ところで、類似のことができるライブラリやプロジェクトって他にも色々ありますよね。LangChainとかAuto-GPTとか…。Agents SDKはそういうのと比べて何が違うんでしょうか?」
Bさん: 「いい論点だね。Agents SDKはOpenAI公式という強みがあるけど、世の中には先行事例もあった。ここではLangChainとAuto-GPTを中心に、Agents SDKとの比較ポイントを整理しよう。」
5-1. LangChainとの比較
LangChainは言わずと知れたLLMアプリ開発フレームワークで、チェーン(LLM応答をつなぐ処理)やエージェント(ツール使用を伴う自律 (Exploring Popular AI Agent Frameworks: Auto-GPT, BabyAGI, LangChain Agents, and Beyond - Kuverto | AI Agent Builder Platform)51†L13-L21】にもあるように、LangChainのエージェントはWeb検索やAPI呼び出しなど様々なツール統合が可能で、メモリ管 (Exploring Popular AI Agent Frameworks: Auto-GPT, BabyAGI, LangChain Agents, and Beyond - Kuverto | AI Agent Builder Platform)51†L15-L23】。
Agents SDKとの主な違いを挙げると:
- 設計思想の違い: LangChainは多数の抽象化(ChainやMemory、Agent種別など)が用意され柔軟だが、その分学習コストも高め。Agents SDKはプリミティブを最小限に絞っており、Python標準の感覚で使 (OpenAI Agents SDK 入門 (1) - 事始め|npaka) (OpenAI Agents SDK 入門 (1) - 事始め|npaka)21†L51-L59】。どちらが良いかは用途次第だが、SDKの方がシンプルで初心者には取り組みやすい。
- エージェントの構成: LangChainではエージェントの種類(例: ReactAgent, OpenAIFunctionsAgentなど)が複数あり、使い分けに知識が要る。一方Agents SDKはAgentクラスひとつで様 (Unpacking OpenAI's Agents SDK: A Technical Deep Dive into the …)。言わばオールインワンなAgent**で、内部的にはOpenAIのChatモデル機能をフル活用する形だ。
- 公式サポート: Agents SDKはOpenAI自身が開発・保守しており、今後のOpenAI APIの新機能とも親和性が高い。例えばResponses APIのホスティッドツール(Web検索等)もすぐ使えるし、アップデー (OpenAIの新発表まとめ:「Responses API」「Agents SDK」、Web検索・File検索・Computer Useの使い方|ChatGPT研究所) (OpenAIの新発表まとめ:「Responses API」「Agents SDK」、Web検索・File検索・Computer Useの使い方|ChatGPT研究所)37†L43-L51】。LangChainはオープンソースコミュニティ主導なので、OpenAI新機能への対応はコミュニティの対応待ちになる。
- 性能と最適化: LangChainは多機能ゆえにオーバーヘッドもあると言われる。Agents SDKは** (GitHub - openai/swarm: Educational framework exploring ergonomic, lightweight multi-agent orchestration. Managed by OpenAI Solution team.)14†L55-L64】、不要な層を挟まず直接APIを叩くような実装になっている。さらにトレースやガードレールがビルトインで、エンタープライズ向けの信頼性・デバッグ性を (GitHub - openai/openai-agents-python: A lightweight, powerful framework for multi-agent workflows)†L264-L270】。
Aさん: 「要するにLangChainは汎用マルチツールのスイスナイフ、Agents SDKは公式特化のシンプル高性能ツールという感じでしょうか。どちらもケースによって使い分けですね。」
Bさん: 「そうだね。ただOpenAI自身もAgents SDKは他のコミュニティの素晴らしい成果にインスパイアされ (New tools for building agents | OpenAI)†L678-L684】。実際PydanticやGriffe(ドキュメント解析) (New tools for building agents | OpenAI)†L678-L684】、LangChain等から学んだ部分もあるだろう。開発者としては選択肢が増えた**と捉えて、自分に合う方を選べば良いと思うよ。」
5-2. Auto-GPTとの比較
次にAuto-GPTについて。Auto-GPTは2023年頃に登場したGPT-4を使った自律エージェントの先駆けで、与えられたゴールから自分でタスクを分解し、インターネット検索やファイル操作を繰り返して目標達成を試みるという実 (Exploring Popular AI Agent Frameworks: Auto-GPT, BabyAGI, LangChain Agents, and Beyond - Kuverto | AI Agent Builder Platform)†L126-L134】。いわゆる「AIが自分自身をプロンプトして改善していく」仕組みで、一躍注目を浴びたんだ。
Agents SDKと比較すると:
- アプローチの違い: Auto-GPTはプロンプトエンジニアリング中心。一つの大きなシステムプロンプトを用意し、GPT-4がそこから自問自答しながら行 (Exploring Popular AI Agent Frameworks: Auto-GPT, BabyAGI, LangChain Agents, and Beyond - Kuverto | AI Agent Builder Platform)†L128-L131】の言う「chain thoughts」は、モデル自身が次のアクションを文字で決め、それを実行→結果をまたプロンプトに追加…というループだった。一方Agents SDKは明確なツール呼び出しインターフェース**(function calling)を使い、ループ制御もコード側で管理する。モデルは行動の選択をするが、実行は構造化されている。
- 安定性・ガードレール: Auto-GPTはモデル主導のため、時に的外れなループに陥ったり、不必要なウェブ検索を延々と続けたりするケースも報告された。対してAgents SDKはガードレールで無駄や不適切動作を** (Guardrails - OpenAI Agents SDK) (Guardrails - OpenAI Agents SDK)49†L81-L84】、そもそも無限ループにならない工夫(例えば定められたターン数で打ち切る等)も盛り込まれているようだ。
- 実装の容易さ: Auto-GPTを動かすには環境構築やプロンプトの調整が必要で、非エンジニアにはハードルが高かった。一方Agents SDKはPythonコードを書くだけで、**より直観的にエージェントのロジ (Mastering OpenAI’s new Agents SDK & Responses API [Part 1] - DEV Community)16†L58-L66】で述べられていたように、「以前は複雑だった自動化がSDKのおかげでゲームチェンジャーに (Mastering OpenAI’s new Agents SDK & Responses API [Part 1] - DEV Community)16†L58-L66】。初心者にとってはAgents SDKの方が扱いやすいだろう。
- 目的: Auto-GPTは汎用の自己完結型AIを目指す野心的な試みだった。Agents SDKは開発者が特定用途のエージェントを構築するためのツールセットだ。いわばAuto-GPTは完成品のデモ寄りで、Agents SDKはそれを部品化して実用的にしたものと言えるかもしれない。
Aさん: 「Auto-GPT、当時試したけど結構暴走しがちで実用には厳しい印象でした…。Agents SDKは堅実にまとめられている感じですね。やはり公式サポートのあるフレームワークは信頼感があります。」
Bさん: 「Auto-GPTやそれに触発されたBabyAGIなどのアイデアが、OpenAIの公式開発に反映されてきたとも言えるね。Agents SDKはそうした実験の成果を取り込みつつ安全性・信頼性を高めて世に出たフレームワークだと思うよ。」
活用事例・ケーススタディ紹介
Aさん: 「Agents SDKや自律エージェントについて、実際の活用事例もいくつか知りたいです。ChatGPTのDeep Research以外にも先ほど企業利用の話が出ましたし、参考になる例があればぜひ!」
Bさん: 「ではOpenAI公式の事例と既存プロジェクトの観点でいくつか紹介しよう。」
6-1. ChatGPT Deep Researchの裏側
まずは改めてChatGPTのDeep Researchそのものだ。これはChatGPTアプリ内の機能なので厳密にはAgents SDKを直接使ってはいないかもしれないが、概念的には非常に近い。OpenAIはDeep Researchを「OpenAIの次なるエージェント」と位置付けており、これはつまりChatGPTの中に特定タスクに特化したエージェントを組み (OpenAI’s new Deep Research is the ChatGPT AI agent we’ve been waiting for – 3 reasons why I can’t wait to use it | TechRadar)†L167-L175】。実際、「Deep Researchはユーザーのプロンプトに対して自律的にウェブを探索し、何百もの情報源を分析・統合してレポートを作成する (OpenAI’s new Deep Research is the ChatGPT AI agent we’ve been waiting for – 3 reasons why I can’t wait to use it | TechRadar)る。
Deep Researchの動作イメージは、本記事で作成したResearcherエージェントをさらに大規模・高性能にしたものと思えば良いだろう。違いとしては:
- 高度な推論モデル: Deep ResearchではGPT-4の特殊版(推論特化型)が用いら (What is ChatGPT deep research? - Zapier)。Agents SDKでもGPT-4を使えるが、OpenAI内部ではより最適化されたモデルを使っている可能性がある。
- 長時間のマルチステップ: ChatGPT上では5~30分ほどエージェントが動き続けることがある。これは我々が試した簡易エージェントよりはるかに多くの検索・推論ステップを重ねている。Agents SDKでも時間制限を適切に設定すれば理論上は長時間動かせる(ただしトークン消費量と料金に注意)。
- UI連携: ChatGPTでは進捗UIや中断ボタンなどユーザーフレンドリーな作りになっている。Agents SDK単体ではそこまでのUIは提供しないが、トレース情報を使って独自に進捗表示を実装することも可能だろう。
Aさん: 「Deep Researchは月額200ドルのProプランで先行 (OpenAI’s new Deep Research is the ChatGPT AI agent we’ve been waiting for – 3 reasons why I can’t wait to use it | TechRadar)†L191-L199】。かなり高度だけど、Agents SDKで自前に作れば似たことを社内向けツールとして実現することもできそうです。」
Bさん: 「そう思う。事実、OpenAIはマルチステップの調査(multi-step research)はAgents SDKの主要用 (New tools for building agents | OpenAI) (New tools for building agents | OpenAI)†L652-L659】。Deep Researchと同等とはいかなくても、カスタムエージェントで必要十分な深さのリサーチBOTを作って社内ナレッジ整理に使う、なんてことも現実的だね。」
6-2. 企業での活用例(Coinbase・Boxなど)
OpenAIの発表では、早速Agents SDKを企業がプロトタイピングに活用した例が挙げられている。その代表が**Coinbase (New tools for building agents | OpenAI) (New tools for building agents | OpenAI)†L660-L668】。
- CoinbaseのAgentKit: 暗号資産企業のCoinbaseは、Agents SDKを使って「AgentKit」というエージェント機 (New tools for building agents | OpenAI)†L650-L658】。これはAIエージェントが仮想通貨ウォレットと対話し、オンチェーンの操作を行える (New tools for building agents | OpenAI)†L652-L659】によれば、Coinbaseの開発者は自社の開発者向けSDKのアクションをカスタムツールとして組み込んで、わずか数時間でエージェントを動かしたとのことだ。新しいアクションの追加も容易になり、開発者は複雑な設定より**有用な統合に集中 (New tools for building agents | OpenAI)†L654-L659】。
- Boxのエンタープライズ検索: クラウドストレージ企業のBoxもAgents SDKを試用し、社内データとインターネットの横断検索を行うエージ (New tools for building agents | OpenAI)†L660-L668】。Boxは社内の機密データ(Boxに保存された文書)を検索する独自エージェント(Box AI Agent)を持っていたが、それとWeb検索エージェントを組み合わせて、最新版の外部情報+社内ナレッジを同時に検索・ (New tools for building agents | OpenAI) (New tools for building agents | OpenAI)†L662-L670】。これにより、例えば金融サービス企業が「社内の市場分析レポート」と「最新の経済ニュース」を統合して取得する、といったこ (New tools for building agents | OpenAI) (New tools for building agents | OpenAI)†L666-L670】。重要なのは、内部の権限やセキュリティポリシーを守ったままエージェントが社内データにアクセスする点で、Agents SDKを使ってそのあたりの (New tools for building agents | OpenAI) (New tools for building agents | OpenAI)†L662-L670】。
Aさん: 「企業レベルでも短期間で実用プロトタイプを作れるのは魅力ですね。Boxの例なんて、Deep Researchの企業内データ版みたいです。社内文書と外部情報をまとめてくれるなんて最高じゃないですか。」
Bさん: 「本当だね。Agents SDKは外部APIやDBとも組み合わせ自由だから、工夫次第でどんな領域のエージェントも作れる。公式も**「自律的なAIシステムが現実世界にインパクトを与えるよう、今後も新機能を追加して (Box、企業のコンテンツをよりスマートにする新しいOpenAI Agents SDKのサポートを発表) (Box、企業のコンテンツをよりスマートにする新しいOpenAI Agents SDKのサポートを発表)11†L15-L23】し、これから事例がどんどん増えるだろう。」
Aさん: 「他にもRedditなんかを見ると、個人でDeep Researchっぽいエージェントを作った人もいるみたいです(“より安価なDeep Researchを自作した”と (I made a better Deep Research agent that's multiple times cheaper)。みんな考えることは同じなんですね。」
Bさん: 「そうだね、自動で調べてくれるAIというのは夢がある。Agents SDKが登場したことで、それがかなり身近になったのは確かだよ。」
まとめ – 自律エージェント開発のこれから
Aさん: 「今日はOpenAI Agents SDKを使って自律型検索AIエージェントの作り方を教わりましたが、思った以上に色々できて驚きました!最初は難しそうと思ってましたが、師匠の物語仕立てのおかげで理解が深まりました😄」
Bさん: 「お疲れさま!最初は専門用語も多かったけど、実際にコードを書いて試すことで掴めたんじゃないかな。Agents SDKのシンプルさも感じてもらえただろうし、自律エージェントの魅力も伝わったと思う。」
Aさん: 「はい。振り返るとポイントは:“エージェント”に役割とツールを与えるだけで、あとはAIがマルチステップで考えて動いてくれるということですね。それを支えるハンドオフやガードレールも便利でした。Deep Researchみたいな高度な機能も、基本はこれらの組み合わせだとわかりました。」
Bさん: 「その通り。Agents SDKは今回扱ったWeb検索以外にもファイル検索(自分で与えたPDFやテキストから情報取得)やコンピュータ操作(ブラウザやターミナル操作をエミュレート)なんか (OpenAIの新発表まとめ:「Responses API」「Agents SDK」、Web検索・File検索・Computer Useの使い方|ChatGPT研究所) (OpenAIの新発表まとめ:「Responses API」「Agents SDK」、Web検索・File検索・Computer Useの使い方|ChatGPT研究所)。これらを組み合わせれば、より強力なエージェントも作れる。例えばウェブで調べてExcelレポートにまとめて保存なんてことも夢じゃない。」
Aさん: 「広がりますねぇ…!✨」
Bさん: 「OpenAIは今後もAgents SDKをオープンソースで改 (New tools for building agents | OpenAI)2†L678-L684】し、Node.js (New tools for building agents | OpenAI)2†L672-L676】。また、Responses APIなどエージェント用APIプラットフォーム全体 (New tools for building agents | OpenAI)2†L688-L696】。つまり、自律エージェント開発はこれからますます盛り上がる**はずだよ。」
Aさん: 「私も負けずに、このSDKで色々なエージェントを作ってみたくなりました!まずは今日のDeep Research風エージェントを改良して、自分の仕事の情報収集を手伝ってもらおうかな…なんて。」
Bさん: 「いいね!最初はシンプルな用途から試して、徐々に複雑なことにチャレンジすると良いよ。今回の知識がその助けになれば幸いだ。未来の仕事場では、AIエージェントが同僚として活躍する (New tools for building agents | OpenAI) (New tools for building agents | OpenAI)2†L690-L698】。Aさんもぜひ、自作エージェントでその最先端を体験してみてね!」
Aさん: 「はい、ありがとうございました!Agents SDKを武器に、自律エージェント開発がんばります💪!」
参考文献
- OpenAI, “New tools for building agents” – OpenAI公式ブログ (New tools for building agents | OpenAI) (New tools for building agents | OpenAI)
- npaka, 「OpenAI Agents SDK 入門 (1) - 事始め」 – note (OpenAI Agents SDK 入門 (1) - 事始め|npaka) (OpenAI Agents SDK 入門 (1) - 事始め|npaka)】
- OpenAI公式GitHub, *OpenAI Agents (GitHub - openai/openai-agents-python: A lightweight, powerful framework for multi-agent workflows) (GitHub - openai/openai-agents-python: A lightweight, powerful framework for multi-agent workflows)18†L264-L269】
- Impress Watch, 「OpenAIが「Responses API」「Agents SDK」を発表 ~AIエージェント構築を容易にする新ツール」 (OpenAIが「Responses API」「Agents SDK」を発表 ~AIエージェント構築を容易にする新ツール - 窓の杜)日)
- Harry Guinness, “What is ChatGPT deep research?” – Zapier Blog (OpenAI’s new Deep Research is the ChatGPT AI agent we’ve been waiting for – 3 reasons why I can’t wait to use it | TechRadar)0日)
- TechRadar, *“OpenAI’s new Deep Research is the ChatGPT AI agent we’ve been waiting for” (OpenAI’s new Deep Research is the ChatGPT AI agent we’ve been waiting for – 3 reasons why I can’t wait to use it | TechRadar) (OpenAI’s new Deep Research is the ChatGPT AI agent we’ve been waiting for – 3 reasons why I can’t wait to use it | TechRadar)75】
- Bobby Hall Jr, “Mastering OpenAI’s new Agents SDK & Responses API [Part 1]” – DEV.to (Mastering OpenAI’s new Agents SDK & Responses API [Part 1] - DEV Community) (Mastering OpenAI’s new Agents SDK & Responses API [Part 1] - DEV Community)】
- OpenAI APIドキュメント, *Agents (Tools - OpenAI Agents SDK) (Tools - OpenAI Agents SDK)
- OpenAI APIドキュメント, *Agents SDK (Guardrails - OpenAI Agents SDK) (Guardrails - OpenAI Agents SDK)】
- OpenAI APIドキュメント, *Agents (OpenAI Agents SDK 入門 (1) - 事始め|npaka) (OpenAI Agents SDK 入門 (1) - 事始め|npaka)】
- Kazuhiro Sera (OpenAI DX), 「OpenAI Responses API と Agents SDK リリースのまとめ」 – Zenn (Box、企業のコンテンツをよりスマートにする新しいOpenAI Agents SDKのサポートを発表) (Box、企業のコンテンツをよりスマートにする新しいOpenAI Agents SDKのサポートを発表)】
- OpenAI, “新発表まとめ:Responses API・Agents SDK” – ChatGPT研究所 (OpenAIの新発表まとめ:「Responses API」「Agents SDK」、Web検索・File検索・Computer Useの使い方|ChatGPT研究所) (OpenAIの新発表まとめ:「Responses API」「Agents SDK」、Web検索・File検索・Computer Useの使い方|ChatGPT研究所)】
- VentureBeat, “OpenAI’s strategic gambit: The Agents SDK and why it changes everything for enterprise AI” (OpenAI's strategic gambit: The Agents SDK and why it changes everything for enterprise AI | VentureBeat)4日)
- Kuverto Blog, *“Exploring Popular AI Agent Frameworks: Auto-GPT, BabyAGI, LangChain Agents, and Bey (Exploring Popular AI Agent Frameworks: Auto-GPT, BabyAGI, LangChain Agents, and Beyond - Kuverto | AI Agent Builder Platform)50†L126-L134】
- SmythOS, *“OpenAgents vs AutoGPT: A Comprehensive Compari (OpenAgents Vs AutoGPT: A Comprehensive Comparison) (OpenAgents Vs AutoGPT: A Comprehensive Comparison)】