>_tech-draft
Mastra AIのアイコン
Mastra AI
動画公開日
タイトル

Why Agents Are Actually Workflows - Tony Kovanen, Mastra's Founding Engineer

再生時間

14分 34秒

Mastra開発者が語る!AIエージェントとワークフローの進化、耐久性の秘密

ポイント

  • Mastraの開発者が、AIエージェントとワークフローの関係性、そして堅牢なAIアプリに不可欠な耐久性について深掘りします。
  • AIエージェントの実行ループは本質的にワークフローであり、人間介入や長期実行プロセスからの回復において耐久性が重要となります。
  • すべてのエージェントに耐久性が必要なわけではなく、ユースケースに応じてパフォーマンスと信頼性の最適なバランスを取る方法が理解できます。

Mastraの初期段階から開発を主導してきたTony氏とAbhi氏が、AIエージェントとワークフローの関係性、そしてその基盤となる耐久性について深く掘り下げています。本記事では、YouTube動画の対談内容を基に、Mastraがどのようにして現在のアーキテクチャに至ったのか、そしてなぜ耐久性が現代のAIアプリケーション開発において不可欠なのかを解説します。Vercelの共同創業者でもあるTony氏の視点から、AIシステムの未来像を一緒に探りましょう。

Mastraにおけるワークフローの歴史と進化

Mastraの開発当初、ワークフローの概念が特に重要視されたのは、当時の大規模言語モデル(LLM)の性能がまだ成熟していなかったためです。Tony氏によると、「モデルは一時的に機能が不十分だった」とさえ言える状況でした。このような背景から、開発者は最終的な結果に対してより細やかな制御を可能にする方法を模索しました。

初期ワークフローの役割

  • 精密な制御: 特定の条件に基づいてエージェントの出力を評価し、異なる処理パスへ分岐させる機能が不可欠でした。
  • エージェントの連鎖とコンテキスト注入: 複数のエージェントを連結させ、それぞれのステップで追加のコンテキストを注入したり、特定のケースで人間が介入(Human-in-the-loop)したりする仕組みが構築されました。
  • 人間による評価と承認: 例えば、払い戻しや返品の自動評価のようなシナリオでは、複雑なケースをエージェントが評価し、特定の基準(例:一定額以上)を超える場合に人間が最終的な承認を行うといった運用が可能になりました。これは、モデルだけでは対応しきれない複雑な判断を人間に委ねることで、システムの信頼性と柔軟性を高めるものでした。

現在の議論の焦点

今日では、LLMの性能は劇的に向上しましたが、議論の焦点はシフトしています。現在は、より「長期実行」されるAIプロセスにおいて、どのようにきめ細やかな制御を適用し、安定性と信頼性を確保するかが重要なテーマとなっています。

「エージェントはワークフローである」というMastraの思想

Abhi氏が「Mastraの内部では、エージェントは実はワークフローである」と指摘すると、Tony氏はその構造を詳しく説明しました。

エージェントループの仕組み

エージェントの処理ループは、本質的に一連のステップからなるワークフローとして捉えられます。

  1. LLMへのAPI呼び出し: まず、LLMに対してAPIが呼び出されます。
  2. トークンのストリーミング: LLMはトークンをストリーミングで返します。これらのトークンには、実行すべきツール呼び出しの情報が含まれる場合があります。
  3. ツール呼び出しの実行: ツール呼び出しは、逐次的に、あるいは並列で実行されることがあります。
  4. 結果のLLMへの再投入: ツールが実行された後、その結果が再びLLMに投入され、次のステップの指示が求められます。
  5. ループの継続: このプロセスは、LLMがタスクの完了を宣言するまで繰り返されます。

このように考えると、エージェントが実行する「ループ」は、まさに一連のステップを持つワークフローそのものです。例えば、ツール呼び出しの承認が必要な場合も、それはワークフローにおける人間介入(Human-in-the-loop)のステップに過ぎません。したがって、エージェントのほとんどの機能は、ワークフローの特定のステップとして構築されていると理解できます。

Mastraにおける耐久性(Durability)の重要性

Mastraにおける耐久性は、AIシステム、特に長期実行されるエージェントや人間介入を伴う複雑なプロセスにおいて、極めて重要な要素です。Tony氏は耐久性の主な3つの側面を説明しました。

1. 人間介入(Human-in-the-loop)のサポート

特定のツール呼び出しの承認、外部からの情報待ち、手動でのコンテキスト提供など、人間がシステムに介入する場面では耐久性が必要不可欠です。人間からのフィードバックは、数時間後、あるいは数週間後になる可能性もあります。システムがその間状態を保持し、再開できる能力がなければ、このようなユースケースは現実的ではありません。

2. 長期実行エージェントからの回復

AIエージェントが数日間にわたって実行されるような長期タスクにおいて、システムクラッシュや予期せぬエラーが発生するリスクは常に存在します。耐久性がない場合、クラッシュが発生すると、それまでの処理が無駄になり、多大なコストと時間が失われます。耐久性があれば、中断した時点から処理を再開できるため、リソースの無駄をなくし、効率的な運用を可能にします。

3. イベント履歴のストリーミングと確認

実行中のエージェントから外部システムへのアップデートのストリーミング、またはユーザーが現在の状況だけでなく過去のイベント履歴を確認したい場合にも耐久性は重要です。例えば、ネットワーク接続の問題でリアルタイムの更新が見られなかったとしても、耐久性のあるシステムであれば、過去のすべてのイベントを遡って確認できます。これにより、システムの透明性が高まり、デバッグや監査が容易になります。

すべてのエージェントは耐久性を持つべきか?

耐久性の重要性を踏まえると、「すべてのエージェントは耐久性を持つべきではないか」という疑問が湧くかもしれません。しかしTony氏は、それはユースケースによると述べ、必ずしもそうではないと指摘しています。

ユースケースによる選択

  • 会話型エージェント: 短い対話のターンで完結し、ツール呼び出しがほとんどないような純粋な会話型エージェントの場合、過度な耐久性を持たせることは無駄になる可能性があります。このようなケースでは、多くの問題が発生する可能性が低く、すべてのステージで状態を保存し、常に最悪の事態に備えることはパフォーマンスのオーバーヘッドにつながります。
  • パフォーマンスの考慮: 耐久性を持たせるための永続化処理は、システムにパフォーマンス上の制約をもたらすことがあります。数回の短いターンで終わるような処理では、耐久性を持たせない方が高速に動作することが多いです。

制御の重要性

すべてのユースケースが長期実行であるわけではないため、開発者が耐久性の有無を制御できることが重要です。これにより、アプリケーションの要件に応じて最適なパフォーマンスと信頼性のバランスを取ることができます。

まとめ

MastraのTony氏とAbhi氏の対談から、AIエージェントとワークフローの関係性、そして特に長期実行や人間介入を伴う複雑なAIアプリケーションにおける耐久性の重要性が明らかになりました。

  • エージェントはワークフローである: エージェントの実行ループは、本質的に一連のステップからなるワークフローとして設計されています。
  • 耐久性の三本柱: 人間介入のサポート、長期実行からの回復、イベント履歴のストリーミングは、現代の堅牢なAIシステムにとって不可欠な要素です。
  • ユースケースに応じた選択: しかし、すべてのエージェントが耐久性を必要とするわけではなく、会話型のような短期的なユースケースでは、パフォーマンスを優先するために耐久性を省略することも有効な戦略となります。

AI技術が進化し続ける中で、このような基盤となるアーキテクチャの理解は、より信頼性が高く、スケーラブルなAIアプリケーションを開発するために不可欠であると言えるでしょう。

参考動画: https://www.youtube.com/watch?v=AM9pCWlBU8E