Swarm の概要
Swarm: 軽量マルチエージェントオーケストレーションフレームワーク
Swarmとは?
Swarmは、OpenAIが開発した実験的な教育用フレームワークで、人間工学に基づいた軽量なマルチエージェントオーケストレーションを検証するために使用されます。エージェントの連携と実行を軽量、高度に制御可能、かつ簡単にテストできるようにすることに重点を置いています。Swarmは、エージェントとハンドオフという2つのプリミティブな抽象化を通じてこれを実現します。
注: Swarmは、Swarmのプロダクション対応の進化版であるOpenAI Agents SDKに置き換えられました。プロダクションでの使用にはAgents SDKに移行することをお勧めします。
Swarmの仕組み
Swarmは、エージェントが指示とツールを包含できるようにすることで動作します。エージェントはいつでも、会話を別のエージェントに引き渡すことができます。これらのプリミティブは、ツールとエージェントのネットワーク間の豊かなダイナミクスを表現するのに十分強力であり、スケーラブルで現実的なソリューションを構築できます。
Swarmエージェントは、Chat Completions APIによって駆動され、呼び出し間でステートレスです。client.run()関数は、次のループを実装します。
- 現在のエージェントから補完を取得します。
- ツールの呼び出しを実行し、結果を追加します。
- 必要に応じてエージェントを切り替えます。
- 必要に応じてコンテキスト変数を更新します。
- 新しい関数呼び出しが行われない場合は、返します。
Swarmを選ぶ理由
Swarmは、設計上、軽量でスケーラブル、かつ高度にカスタマイズ可能なパターンを検証します。単一のプロンプトにエンコードするのが難しい、多数の独立した機能と指示を扱う状況に最適です。
主な機能とコンセプト
- エージェント: 指示とツールを包含します。指示と関数によって定義された特定のワークフローまたはステップを表すことができます。
- ハンドオフ: エージェントは実行を別のエージェントに引き渡すことができます。
- 関数: SwarmエージェントはPython関数を直接呼び出すことができます。関数は通常、文字列を返す必要があります(値は文字列としてキャストされます)。
- コンテキスト変数: エージェントはコンテキスト変数にアクセスして更新できるため、状態を維持し、情報を共有できます。
- ストリーミング: Swarmはストリーミング応答をサポートし、リアルタイムの更新を提供します。
Swarmの使用方法
インストール:
pip install git+ssh://git@github.com/openai/swarm.gitまたは
pip install git+https://github.com/openai/swarm.gitSwarmクライアントのインスタンス化:
from swarm import Swarm client = Swarm()エージェントの定義:
from swarm import Agent agent_a = Agent( name="Agent A", instructions="You are a helpful agent.", functions=[transfer_to_agent_b], ) agent_b = Agent( name="Agent B", instructions="Only speak in Haikus.", ) def transfer_to_agent_b(): return agent_bSwarmの実行:
response = client.run( agent=agent_a, messages=[{"role": "user", "content": "I want to talk to agent B."}], ) print(response.messages[-1]["content"])
Swarmは誰のためのものか?
Swarmは、マルチエージェントオーケストレーションについて学びたい開発者向けの教育リソースです。単一のプロンプトにエンコードするのが難しい、多数の独立した機能と指示を扱う場合に適しています。
例
- basic: セットアップ、関数呼び出し、ハンドオフ、コンテキスト変数などの基本に関する簡単な例。
- triage_agent: 適切なエージェントに引き渡すための基本的なトリアージステップの設定の簡単な例。
- weather_agent: 関数呼び出しの簡単な例。
- airline: 航空会社のコンテキストでさまざまなカスタマーサービスリクエストを処理するためのマルチエージェントセットアップ。
- support_bot: ユーザーインターフェイスエージェントと、いくつかのツールを備えたヘルプセンターエージェントを含むカスタマーサービスボット。
- personal_shopper: 販売と払い戻し注文を支援できるパーソナルショッピングエージェント。
結論
SwarmはOpenAI Agents SDKに取って代わられましたが、マルチエージェントオーケストレーションを理解するための貴重な教育リソースです。スケーラブルでカスタマイズ可能なAIワークフローを構築するための基盤を提供します。Agents SDKは、組み込みのメモリ管理と検索を求める開発者向けのプロダクション対応ソリューションであり、Swarmからの大幅な進化を表しています。
"Swarm" のベストな代替ツール
Vivgrid は、開発者が安全ガードレールと低遅延推論を備えた AI エージェントを構築、監視、評価、デプロイするのに役立つ AI エージェントインフラストラクチャプラットフォームです。GPT-5、Gemini 2.5 Pro、DeepSeek-V3 をサポートしています。
UBOSは、AIエージェント向けのビジネスオペレーティングシステムであり、マルチエージェントオーケストレーションとオープンソースツールを使用して、AI駆動型アプリケーションを構築、デプロイ、および管理するためのローコードプラットフォームを提供します。
CrewAIはオープンソースのマルチエージェントプラットフォームで、あらゆるLLMとクラウドプラットフォームを使用してエンタープライズアプリケーション向けのAI自動化ワークフローを構築および編成できます。
Flowiseは、AIエージェントとLLMオーケストレーションを視覚的に構築するためのオープンソースの生成AI開発プラットフォームです。ドラッグ&ドロップUIを使用して、カスタムLLMアプリを数分で構築します。
Vellum AI は、ビジュアルビルダーと SDK を使用して、エンタープライズ AI ワークフローとエージェントを構築、評価、および実用化するための LLM オーケストレーションおよび可観測性プラットフォームです。
Vagent は、n8n で構築されたカスタム AI エージェント向けにクリーンで音声対応のインターフェースを提供します。単一の webhook で統合し、60 以上の言語で自然な音声インタラクションが可能で、ローカルデータストレージで登録不要です。
自動AIモデル選択で毎回正しい答えを得る。ChatBetterは、すべての主要AIプロバイダーにシンプルなインターフェースでアクセス可能。
Substrate は複合 AI の究極プラットフォームで、強力な SDK を提供し、最適化されたモデル、ベクトルストレージ、コードインタープリタ、エージェント制御を備えています。多段階 AI ワークフローをこれまで以上に高速に構築——LangChain を捨ててスムーズな開発を実現。
Marvin は、大規模言語モデル (LLM) を使用した AI アプリケーション構築のための強力な Python フレームワークです。状態管理、エージェント調整、構造化出力を簡素化し、インテリジェントなアプリを作成する開発者に適しています。
データからのインテリジェンスとコンテキストで駆動される高精度のエンジニアリングタスクを実行するコードベース向けタスク指向のカスタムエージェントを構築します。システムデザイン、デバッグ、統合テスト、オンボーディングなどのユースケース向けにエージェントを構築。
Agency Swarm は、カスタマイズ可能な役割とオーケストレーションされた通信を備えた信頼性の高いマルチエージェント AI アプリケーションを構築するための OpenAI Agents SDK を拡張するオープンソースフレームワークです。
Go Agent SDKは、GoでインテリジェントなAIエージェントを構築、デプロイ、オーケストレーションするための強力なオープンソースSDKです。エージェントワークフローを簡素化し、カスタムツールを統合します。
ElectroNeek:AIを搭載した自動化プラットフォーム。コード不要のAIエージェントにより、デスクトップとSaaSの統合を簡素化。部門全体のワークフローを自動化。
RLAMA:RAG システムとインテリジェント エージェントを作成するための AI プラットフォーム。ローカル モデルを使用して AI ソリューションを構築、デプロイ、管理します。