Register and share your invite link to earn from video plays and referrals.

cv usk
@cv_usk
AI / Software Research Notes AI Agent, LLMOps, MLOps, Software Architecture 投稿は個人の意見です。
Joined May 2026
280 Following    413 Followers
# OpenAI Agent SDKの便利で実践的な使い方 🌍 複数のエージェントをどう組み合わせるかで、システム全体の品質が決まります。 LLM駆動とコード駆動、2つのオーケストレーションパターンを使い分けましょう。 📌 タイトル:Agent orchestration 🔗 URL: 🧩 概要 マルチエージェントの連携には、LLMが動的に判断する「LLM駆動」パターンと、Pythonコードで明示的に制御する「コード駆動」パターンの2つがあります。さらに`as_tool`でエージェントをツール化するManagerパターンと、handoffによる制御移譲パターンを組み合わせることで、複雑なワークフローを柔軟に構築できます。 🛠 使い方 LLM駆動パターンでは、`Agent(name="researcher", handoffs=[web_search_agent, code_exec_agent])` のようにhandoffを持たせ、モデルが動的に判断します。コード駆動パターンでは、`researcher`, `outliner`, `writer`, `critic` の各エージェントを定義し、`blog_pipeline(topic)` 関数内で `await input=...)` → `await input= + [...])` → `await input=...)` と順に実行します。生成→評価ループは `for i in range(3)` で `critic` にレビューさせ、`"問題なし"` が含まれれば終了、なければ `writer` に改善させます。並列実行は `asyncio.gather(*[ input=data) for a in agents])` で感情分析・トピック抽出・要約を同時実行します。Managerパターンでは `Agent(name="manager", tools=[ のように子エージェントをツール化して統合します。 🏗 実践的な使い方 **LLM駆動 — オープンエンドなタスク** 調査エージェントにWeb検索・ファイル検索・コード実行・専門家handoffを持たせ、LLMが状況に応じて最適な手段を選択します。「この技術について調べて」のようなオープンエンドな質問に最適で、事前にフローを決定できない場合に使います。 **コード駆動 — 確定的なパイプライン** ブログ生成のようにステップが決まっている場合は、Pythonコードでリサーチ→アウトライン→執筆→批評→改善のパイプラインを明示的に記述します。各ステップの成果物をプログラムで検証・分岐できるため、品質管理がしやすくなります。 **生成→評価ループ** `while`ループで生成と評価を繰り返し、品質基準を満たすまで改善し続けるパターンです。批評エージェントが「OK」を返すまで繰り返すことで、一発生成では得られない品質を実現できます。ループ回数の上限は必ず設定してください。 **asyncio.gatherでの並列実行** 感情分析・トピック抽出・要約など、相互に依存しない複数のタスクを`asyncio.gather`で並列実行します。直列実行に比べてレイテンシが大幅に短縮されます。 **Managerパターン(as_tool)とhandoffの使い分け** `as_tool`はManagerエージェントが制御を保持したまま子エージェントを「ツールとして」呼び出します。制御がManagerに戻るため、複数の子エージェントの結果を統合する場合に適しています。handoffは制御を完全に移譲するため、専門エージェントに任せきりにする場合に向いています。 💡 ユースケース 🔬 研究調査(LLM駆動でWeb検索/論文検索/コード分析を動的選択) 📝 コンテンツ制作パイプライン(コード駆動でリサーチ→執筆→レビュー→改善) ⚡ 並列データ分析(asyncio.gatherで感情/トピック/要約を同時実行) 👔 Managerパターン(分析チームの結果を統合してレポート作成) ⚠️ 注意点 - LLM駆動パターンは柔軟ですが、モデルの判断ミスによる不要なhandoffやツール呼び出しが発生する可能性があります。重要なフローはコード駆動で制御してください。 - 生成→評価ループには必ず上限回数を設定してください。無限ループになるとトークンコストが際限なく増加します。 - `asyncio.gather`で並列実行する場合、1つのタスクの失敗が他のタスクに影響しないよう、`return_exceptions=True`の使用を検討してください。 - `as_tool`で呼ばれた子エージェントの結果はテキストとしてManagerに返されます。構造化データが必要な場合は`output_type`を指定してください。 ✨ LLM駆動とコード駆動を適材適所で使い分け、最適なマルチエージェントアーキテクチャを設計しましょう! #OpenAIAgentSDK# #AIAgent#
Show more