地理的に分散したエッジ基盤で、サーバーレスのAIツールやエージェントをデプロイするための、Rust製オープンソースLLM function callingフレームワーク。
openai/swarm
AgentsとChat Completions API上のハンドオフを使って軽量なマルチエージェント連携を実現する、実験・学習向けのPythonフレームワーク。
- スター
- 22,111
- フォーク
- 2,351
- 未解決の Issue
- 38
- 最終コミット
- 7 か月前
これは何?
Swarmは、複数のLLMエージェントを連携させるためのPythonフレームワークです。中核となるプリミティブは2つあります。指示と呼び出し可能な関数をまとめたAgentと、あるエージェントから別のエージェントへ会話を引き継ぐハンドオフです。クライアントのrun()メソッドは、新たな関数呼び出しがなくなるまで、モデルの応答生成、ツールの実行、エージェントの切り替えを繰り返します。その後、更新されたメッセージ、アクティブなエージェント、コンテキスト変数を返します。
SwarmはChat Completions APIのみを基盤とし、呼び出し間で状態を保持しません。そのため、呼び出し元は各ターンでメッセージ履歴を渡します。ストリーミング、エージェントや関数から参照できる実行ごとのコンテキスト変数、コマンドラインから設定を試せるデモ用REPLにも対応しています。
このプロジェクトは、実験・学習向けであることが明示されています。OpenAIによると、現在はOpenAI Agents SDKに置き換えられており、本番環境ではそちらの利用が推奨されています。
主な機能
- 01Agentオブジェクトに、指示とモデルが呼び出せるPython関数をまとめられます。
- 02ハンドオフにより、あるエージェントから別のエージェントへ会話を引き継げます。
- 03コンテキスト変数を関数や動的な指示に渡せます。
- 04Chat Completions APIを基盤としており、サーバー側に状態を保持しません。
- 05ストリーミング応答と、コマンドラインで実行できるデモループに対応しています。
ユースケース
- マルチエージェント間のハンドオフやツール呼び出しの仕組みを実践的に学ぶ。
- リクエストを専門エージェントに振り分けるトリアージフローを試作する。
- タスクごとに異なるエージェントを使うカスタマーサービスのデモを構築する。
クイックスタート
- 1
pip を使って GitHub から Swarm をインストールします(Python 3.10 以降が必要です)
pip install git+https://github.com/openai/swarm.git - 2
README の使用例にあるように、Swarm クライアントを作成し、エージェントと関数を定義してから client.run() を呼び出します
使う前に知っておきたいこと
- Swarm は実験・教育目的のものであり、本番環境での使用を想定していません。
- README によると、Swarm は OpenAI Agents SDK に置き換えられており、本番環境にはこちらが推奨されています。
- Swarm は Chat Completions API を基盤としており、呼び出し間で状態を保持しないため、会話履歴は自分で管理する必要があります。
収録されている特集
トピック
よくある質問
- swarm とは?
- AgentsとChat Completions API上のハンドオフを使って軽量なマルチエージェント連携を実現する、実験・学習向けのPythonフレームワーク。 Swarmは、複数のLLMエージェントを連携させるためのPythonフレームワークです。中核となるプリミティブは2つあります。指示と呼び出し可能な関数をまとめたAgentと、あるエージェントから別のエージェントへ会話を引き継ぐハンドオフです。クライアントのrun()メソッドは、新たな関数呼び出しがなくなるまで、モデルの応答生成、ツールの実行、エージェントの切り替えを繰り返します。その後、更新されたメッセージ、アクティブなエージェント、コンテキスト変数を返します。
- swarm は無料で使えますか?ライセンスは?
- swarm は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- swarm は今もメンテナンスされていますか?
- 半年以上コミットなし。swarm の最終コミットは 2026年4月15日 です。
- swarm は何に使えますか?
- マルチエージェント間のハンドオフやツール呼び出しの仕組みを実践的に学ぶ。 リクエストを専門エージェントに振り分けるトリアージフローを試作する。 タスクごとに異なるエージェントを使うカスタマーサービスのデモを構築する。
- swarm のインストール方法は?
- pip を使って GitHub から Swarm をインストールします(Python 3.10 以降が必要です): pip install git+https://github.com/openai/swarm.git README の使用例にあるように、Swarm クライアントを作成し、エージェントと関数を定義してから client.run() を呼び出します
- swarm はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/openai/swarm
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
状態を持つLLMエージェントを構築するためのTypeScript製オープンソース・エージェントハーネス。コーディングエージェント、CLI、Web UI、SDKを備えています。
テキスト生成、構造化データ、会話に対応する、複数のAIプロバイダーAPIを統一されたシンプルなインターフェースで利用できるPythonクライアントライブラリ。
OpenAI、Anthropic、Ollama、LMStudioなどのLLMから、自然言語で1つ以上のMCPサーバーのツールを呼び出せるPythonライブラリとCLI。
OpenAI互換LLMでデバイスの操作やサービス呼び出し、自動化の作成ができるHome Assistant用カスタムコンポーネント。
ブラウザーWebUI、ターミナルクライアント、チャットアプリ連携、各種ツール、メモリ、MCPに対応した、Python製のセルフホスト型パーソナルAIエージェントフレームワーク。