AI Agents · レッスン

OpenAI Assistants APIとThreads

OpenAIが管理するエージェントです。インフラは不要ですが、ベンダーロックインが生じ、オブザーバビリティにも不足があります。

レッスン 3/415 ステップ

「OpenAI Assistants APIとThreads」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

これは何ですか

OpenAI Assistants APIは、管理型のエージェント製品です。アシスタント(モデル + 指示 + ツール)を定義し、ユーザーは「スレッド」(会話)を介して操作します。状態、RAG、コードインタープリター、ファイルストレージはOpenAIが管理します。

2つの大きな魅力

  1. 組み込みのfile_search — マネージドRAGで、ベクトルDBを運用する必要がありません
  2. 組み込みのcode_interpreter — サンドボックス化されたPython実行環境です

これらの機能を自前で構築せずに利用したい場合は、Assistantsが迅速です。

Creating an Assistant

from openai import OpenAI
client = OpenAI()

assistant = client.beta.assistants.create(
    name='Support Bot',
    instructions='You help customers with orders.',
    model='gpt-4o-mini',
    tools=[{'type': 'file_search'}, {'type': 'code_interpreter'}]
)

Threads = Conversations

thread = client.beta.threads.create()

client.beta.threads.messages.create(
    thread_id=thread.id,
    role='user',
    content='Where is my order?'
)

run = client.beta.threads.runs.create(
    thread_id=thread.id,
    assistant_id=assistant.id
)

完了をポーリングする

Runは非同期です。完了するまでポーリングします:

import time
while run.status not in ('completed', 'failed', 'requires_action'):
    time.sleep(1)
    run = client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id)

Function Calling

chat.completionsのツールと同じパターンです。run.status == 'requires_action' の場合は、ツール呼び出しをディスパッチして結果を送信します:

if run.status == 'requires_action':
    tool_outputs = []
    for tc in run.required_action.submit_tool_outputs.tool_calls:
        result = dispatch(tc)
        tool_outputs.append({'tool_call_id': tc.id, 'output': json.dumps(result)})
    client.beta.threads.runs.submit_tool_outputs(thread_id=thread.id, run_id=run.id, tool_outputs=tool_outputs)

File Search (Vector Store)

vector_store = client.beta.vector_stores.create(name='docs')
client.beta.vector_stores.file_batches.upload_and_poll(
    vector_store_id=vector_store.id,
    files=[open('handbook.pdf', 'rb')]
)
assistant = client.beta.assistants.update(assistant.id, tool_resources={'file_search': {'vector_store_ids': [vector_store.id]}})

Code Interpreter

code_interpreterを追加すると、Assistantはサンドボックス化されたPython実行環境を利用できます。データ処理に最適です:

{'type': 'code_interpreter'}

Streaming

with client.beta.threads.runs.stream(thread_id=thread.id, assistant_id=assistant.id) as stream:
    for event in stream:
        print(event)

トレードオフ

  • + ベクトルストアとサンドボックスのインフラが不要です
  • + メモリとスレッド状態を管理してくれます
  • + file_searchによる引用が組み込まれています
  • - ベンダーロックインが発生します
  • - 検索戦略を細かく制御できません
  • - 直接chat.completionsを使うよりレイテンシーが高くなります
  • - 可観測性がより限定されます

ロードマップ

OpenAIは、Assistantsの後継としてResponses APIを発表しました。Responsesが落ち着くまでAssistantsの導入を見送るチームもあります。

プロトタイプに使用する

50行でドキュメントQAボットを立ち上げるなら、Assistantsに勝るものはなかなかありません。厳格なSLAとカスタム検索が必要な本番環境なら、自前で構築します。

コスト

Assistantsでは次の料金が発生します:

  • 通常のトークン料金
  • file_search: 1GBあたりの日額ストレージ料金
  • code_interpreter: セッション単位の料金

低ボリュームなら安価ですが、大量に使うと費用が積み上がります。

Assistantsに最適な用途

Assistants APIに最も適したユースケースは何でしょうか。

まとめ

Assistantsはマネージド型のエージェント製品です。file_search、code_interpreter、スレッドを備えています。プロトタイプには最適ですが、大規模な本番環境にはあまり向きません。Responses APIにも注目してください。

無料で開始

AI チューターと学ぶ AI Agents — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
60
レッスン
239

よくある質問

「OpenAI Assistants APIとThreads」レッスンは無料ですか?

はい。「OpenAI Assistants APIとThreads」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。

「OpenAI Assistants APIとThreads」で何を学びますか?

OpenAIが管理するエージェントです。インフラは不要ですが、ベンダーロックインが生じ、オブザーバビリティにも不足があります。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Agentsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「OpenAI Assistants APIとThreads」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Agentsレッスンでコードを書いて実行できますか?

はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. LangGraphとCrewAIとAutoGen
  2. 長期稼働エージェント向けのLetta(旧MemGPT)
  3. OpenAI Assistants APIとThreads
  4. ユースケースに合ったフレームワークの選択
← AI Agentsに戻る