Zenn
🍋

Open AI: エージェント構築用の新APIツール

3

はじめに

現地時間2025年3月11日、OpenAIからエージェント構築用の新APIツールについてアナウンスがありました。
https://www.youtube.com/watch?v=hciNKcLwSes

Web Search Toolのサンプルコード
from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
    model="gpt-4o-search-preview",
    web_search_options={},
    messages=[
        {
            "role": "user",
            "content": "What was a positive news story from today?",
        }
    ],
)

print(completion.choices[0].message.content)

具体的にChat Completions APIを使うと、ChatGPTが普段ウェブ検索をするのに使っている特別なモデルや機能を直接利用できます。この仕組みによって、AIは質問に答える前に、常に最新の情報をインターネットから取得します。
gpt-4o-search-previewgpt-4o-mini-search-previewというモデルを使うと、質問に応える前に必ずウェブ検索を行うことが可能です。
また、必要な時だけウェブ検索機能を使いたい場合は、Responses APIを利用して、web_search_previewというツールを呼び出す方法があります。この方法を使うことで、必要に応じてAIが最新情報を取り入れた回答を生成できます。

File Search Toolのサンプルコード
from openai import OpenAI
client = OpenAI()

response = client.responses.create(
    model="gpt-4o-mini",
    input="What is deep research by OpenAI?",
    tools=[{
        "type": "file_search",
        "vector_store_ids": ["<vector_store_id>"]
    }]
)
print(response)

Responses APIにはファイル検索というツールもあり、過去にアップロードしたファイルから必要な情報を見つけ出すことができます。ファイル検索は「セマンティック検索」と「キーワード検索」を使って情報を探し出します。ベクトルストアという仕組みにファイルを保存することで、モデルがその知識を参照して、より詳しい情報を提供できるようになります。

ベクトルストアやセマンティック検索の詳しい仕組みについては、OpenAIが提供する検索ガイド(https://platform.openai.com/docs/guides/retrieval) で確認できます。このツールはOpenAIが管理しているため、利用者が特別なコードを作る必要はなく、モデルが必要と判断した場合、自動でファイルから情報を取得して回答します。

Computer use

Computer useのサンプルコード
from openai import OpenAI
client = OpenAI()

response = client.responses.create(
    model="computer-use-preview",
    tools=[{
        "type": "computer_use_preview",
        "display_width": 1024,
        "display_height": 768,
        "environment": "browser" # other possible values: "mac", "windows", "ubuntu"
    }],
    input=[
        {
            "role": "user",
            "content": "Check the latest OpenAI news on bing.com."
        }
        # Optional: include a screenshot of the initial state of the environment
        # {
        #     type: "input_image",
        #     image_url: f"data:image/png;base64,{screenshot_base64}"
        # }
    ],
    truncation="auto"
)

print(response.output)

Computer-Using Agent(CUA) モデル「computer-use-preview」を使って実装していきます。GPT-4oの視覚機能と高度な推論を組み合わせて、画面操作の制御とタスクの実行をシミュレートします。
Responses APIを通じて利用可能です。Chat Completions APIでは利用できないようです。

Computer useの仕組みとしては、click(x,y) や type(text) などのコンピューター操作を送信すると、コードがコンピューターまたはブラウザ環境で送信した操作を実行します。その結果得られたスクリーンショットがモデルに返されます。

この仕組みにより、画面操作する人間の行動をシミュレートし、モデルはスクリーンショットを通じて環境の状況を把握して、次に取るべき行動を提案していきます。

そして、クリックやタイピング、スクロールなどを伴うさまざまなタスクを自動化できます。例えば、フライト予約や製品検索、フォーム入力などが可能です。

Computer useの具体的な統合方法については、サンプルアプリのリポジトリ (https://github.com/openai/openai-cua-sample-app) が参考になりそうです。

Agent SDK

https://x.com/OpenAIDevs/status/1899531857143972051
Swarmを改良した、マルチエージェントワークフローを調整するための新しいオープンソースSDKです。組み込みツールでエージェントを設定し、タスクを引き渡し、安全ガードレールを追加し、デバッグとパフォーマンス最適化のために実行トレースを視覚化します。

ドキュメント (https://openai.github.io/openai-agents-python/)
サンプルアプリのリポジトリ (https://github.com/openai/openai-agents-python)

おわりに

若干私自身用に整理した感がありますが、みなさんの何かの参考になると幸いです!

3
Accenture Japan (有志)

Discussion

Moriyama, TakayukiMoriyama, Takayuki

とても興味深い内容でした。ありがとうございます。

特にComputer use、Agent SDKが興味ありますね。

Agent SDKについては、Swarmというのがあり既にチェーンプロンプトなどのプロンプトフローが作成できる状態なんですね。ちょっと調べてみます。

ログインするとコメントできます