Strands Agents のGraphとSwarmの使い分け(実務的な観点)

今、Strands Agents の入門のちょっとだけ進んだ段階をやってみてるんだけど、

タイトルのところが、現時点でもはっきりしてない。

はじめ、なんとなく Swarmは動的にルーティングやディスパッチができることが利点だよねーと思ってて、で、それを典型的な業務フローにあてこもうとすると、ハマらなったんだよね。
あれ?これってGraphでよかったのかも、ってなりがちで。

で、現状こう考えてる

Swarm と Graph の使い分けの実務的な切り口

  • Swarm は、何をすべきかを見つけるための上流向き

  • Graph は、見つけた論点を順番どおりに確実に処理する下流向き

  • まず Swarm で入口をさばいて、論点が固まったら Graph に渡す

流れのイメージ

[曖昧な依頼・論点発見]
 --> [Swarm] --> [論点整理・専門家へ引き継ぎ]
        --> [責務判定や処理順が固まる]
          --> [Graph] --> [定型実行・承認・記録]


これの上流がSwarm、下流がGraph

※Graphでも並列指示(事前に決めた分岐・並列・合流)はできる。でもそれは観点と役割が事前にはっきりしているケース。コードレビューとかね。

このみなし方あってるかわからないけど、この考え方でSwarm側のデモを作ってみようと思う。

ちなみにGraph +A2A でコード実装修正ループのデモ(アーキテクチャ、構成。実用性は微妙)が動確までできたから、それも近々投稿したい。


いいなと思ったら応援しよう!