🙌

Mastra で作る AIエージェント(8) ワークフローでエージェントを並べる

に公開

Mastra で作るAI エージェント というシリーズの第8回です。


新章突入、マルチ・エージェント

これまでの連載で、AIエージェントの構成を「三国志」になぞらえて以下のように把握しました。

  • フロントに立つリーダーの劉備=エージェント:何をやるにしても軍師に相談
  • 天才軍師・諸葛孔明=LLM:劉備に何かと助言するが、決して自分が直接前面に出ない
  • 将軍たち=ツール:劉備に呼ばれて定型作業を遂行、RAG/API/MCPなどなど

この「エージェントとLLMとツールたち」という構成は「AIエージェントの基本」であり、それだけですでにかなり強力です。このポイントは、天才軍師・孔明LLMに多くのツール=将軍たちを渡し、与えられた課題に対して「どのツールを、どのタイミングで、どのように使うか」LLMが自律的に判断しながら推論を進める点にありました。判断を天才に任せずに「まずこの将軍を使って調査し、次にこの将軍を使って記述し」ということをアルゴリズムでガチガチに決めてしまうと、ちょっとひねった応用問題に対応できなくなってしまうのです。

しかし一方で、この「LLMにあらゆる判断をお任せ」という自由度の大きさが、かえって期待外れの出力につながることもあります。LLMの能力を超えて大きすぎる裁量を与えた場合に一人のLLMでは手に余り、本来忘れてはいけないはずの工程をすっ飛ばしたり、システムプロンプトに一部従わなかったりすることがあるのです。

ということで、このシリーズも今回から新章突入で「マルチ・エージェント」の世界に足を踏み入れます。

1つ目の方法は「ワークフロー」

マルチ・エージェントの1つ目の方法は、エージェントを並べて順次実行するワークフローです。

ひとつの課題を解決するプロセスをいくつかの工程に分けて、工程ごとにAIエージェントを割り当てるものです。ユースケースを思い浮かべたほうが理解しやすいかもしれません。

  • (長文要約)ドキュメント分解→要点抽出→意味構造化→要約
    • 長文をいきなり要約すると「地味だけど重要な部分」が抜け落ちやすいです
  • (問い合わせ処理)ユーザー入力の正規化 → 意図分類 → 処理実行
    • 正規化(雑な記載、省略、誤字脱字の補正)と判断(ユーザーの意図判断)を混ぜると勝手解釈や早合点になりがちです
  • (アンケート分析)データ収集 → クレンジング → 分析 → 解釈
    • ノイズの除去と分析と説明は別のスキルであり、また前のタスクの品質が後続のタスクの品質に直結するため専門性を担保します

このように、総じて「全然別の能力が求められる」場合、かつ「あっちをやってはこっちに戻って、ということがなく工程が一方通行である」場合、ワークフローにすることで全体の品質が向上します。

ワークフローの種類

Mastra の 公式Docs にはワークフローの様々な制御方法を紹介しています。

.then順次実行を表現します。

.parallel は複数ステップの同時並列実行を表現します。なお、.parallel で分岐したあとにそれぞれの.then で同じステップが指定された場合は、待ち合わせになります。つまり下図の「step3」は「A」と「B」の両方が完了するまで実行されません。

.branch条件分岐を表現します。「if」に近いですが、必ず後続の1つのブランチのみが選択されます。

.dountil条件が真になるまで繰り返します。

.dowhile条件が真である間繰り返します。

.foreach配列内の各項目に対して同じステップを順次実行します。

ワークフローの制御はいろいろな種類があるので楽しそうですが、個人的なコメントは以下の通りです。

  • 基本は順次実行。タスクを工程に分けて、頭から一方通行で流していく。
  • 並列同時実行はあまり推奨しない。特に「籠城すべきか、外に討って出るべきか」について2つのエージェントに同時に相談して、あとで取りまとめる--みたいなシナリオは避けるべきです。両者の結論が真逆だった場合に、後続が困ります。
  • 分岐は、問い合わせ対応などであり得る。例えば窓口ステップが問い合わせの内容を把握してどの専門家をアサインするか判断し、後続で専門家に割り振るというもの。
  • ループは「ラルフ・ウィガン・ループ」で今後大注目か。今後、応用編として取り上げる予定です。

実際のワークフロー開発は次回紹介

「ワークフローとはなんぞや」が長くなってしまったので、今回はここまで。次回、実際にMastraでワークフロー開発をする流れをご紹介します。

複数のエージェントが協業する世界のはじまり

いかがでしたでしょうか。そもそも「AIエージェント」が「エージェント+LLM+ツール」というチームでしたが、「マルチ・エージェント」はその「AIエージェント」がさらにチームを組むイメージです。これによって、AIエージェントの活動の幅がかなり広がります。

現在、AIエージェント界隈の技術革新は、このマルチ・エージェントをいかにして賢く動かすか、という部分に集中しているように思います。ワークフローはマルチ・エージェントの基本になりますので、ぜひMastraで取り組んでみてください。

>> 次回 : (9) Mastraでの実際的なワークフローの作り方

Discussion