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

Build agentic workflows with Mastra

再生時間

53分 9秒

Mastraで実践!予測可能なAIワークフロー構築入門:エージェントとの比較とTypeScript実装

ポイント

  • この記事は、LLMを活用した予測可能なAIシステムを構築したい開発者向けです。
  • 非決定論的なAIエージェントとの違いを明確にし、制御されたパスで信頼性の高い実行を可能にします。
  • Mastraを活用し、会議要約やサポート分類などの具体的な実践例で、安定したAIアプリケーション構築のヒントを提供します。

はじめに

本記事は、Mastraで開催されたライブストリーム「Building AI Workflows with Mastra」の内容に基づき、AIワークフローの構築方法と、AIエージェントとの違いについて解説します。本ワークショップは、Mastraの創設エンジニアであるTonyと、開発者体験担当のAlexによって進行されました。この記事を通じて、AIを活用したアプリケーション開発において、より予測可能で安定したシステムを構築するためのヒントが得られるでしょう。

AIシステムを構築する際、多くの方がAIエージェントとAIワークフローの概念を混同しがちです。しかし、これらは異なるアプローチであり、それぞれの特性を理解することが重要です。本記事では、Mastraが提供するAIワークフローに焦点を当て、その具体的な実装方法や活用例を交えながら、予測可能なAIシステムの実現方法を深く掘り下げていきます。

AIワークフローとは?エージェントとの決定的な違い

まず、AIワークフローとは何か、そしてAIエージェントとどのように異なるのかを明確に定義します。

AIエージェントの特性

AIエージェントは、大規模言語モデル(LLM)を基盤とした非常に強力なテクノロジーです。その最大の特性は「非決定論的(non-deterministic)」である点にあります。これは、同じ入力に対しても異なる出力を生成する可能性があることを意味します。例えば、シンプルなプロンプトであっても、10回実行すれば10通りの異なる結果が得られるかもしれません。

エージェントの非決定論的な性質は、以下のようなオープンエンドなタスクにおいて非常に強力です。

  • 新しいコードベースでのタスク実行: コーディングエージェントが、新しい要件に対して最適な解決策を自律的に見つけ出す。
  • 探索的な問題解決: 決まった道筋がない状況で、エージェントが自ら試行錯誤を繰り返し、目標に到達する。

しかし、この強力な自律性には課題も伴います。例えば、Cursorのようなツールを使った経験がある方ならご存知かもしれませんが、エージェントは時に意図しない方向に進んだり、誤解したり、過度な変更を加えたり、無限ループに陥ってタスクが完了しないことがあります。これは、特にビジネスアプリケーションにおいて予測可能性が求められる場面では、リスクとなり得ます。

AIワークフローの特性

これに対し、AIワークフローは、大規模言語モデルを「事前定義されたパス」を通じてオーケストレーション(orchestrate)するシステムです。ワークフローの主な特徴は以下の通りです。

  • 固定されたステップと停止条件: タスクを完了するためのステップ数や、いつ停止するかといった条件が固定されており、開発者によって完全に制御されます。
  • 予測可能で一貫性のある動作: この制御により、エージェントと比較して、より予測可能で一貫性のある動作を実現できます。
  • LLMの能力と制御の融合: LLMの強力な能力を活用しつつも、タスクのパスを厳密に制御できるため、不確実性を最小限に抑えられます。

つまり、AIワークフローは、AIエージェントが持つLLMの力を借りつつ、その実行経路をプログラマが明確に定義し、制御することで、信頼性と安定性を高めたAIアプリケーションを構築するためのアプローチと言えます。

AIワークフローの実践例

具体的な例を通して、AIワークフローがどのように機能するかを見ていきましょう。

例1: 会議要約アプリケーション

会議の議事録(トランスクリプト)を効率的に要約し、参加者に共有するアプリケーションを考えてみましょう。このワークフローは、以下の2つのステップで構成されます。

  1. 議事録の要約: 入力された議事録をLLMに渡し、決定事項、アクションアイテム、担当者などの形式で要約させます。このステップでは、LLMの強力なテキスト理解・生成能力を活用します。
  2. 要約メモのメール送信: 要約された内容を、参加者全員にメールで送信します。このステップでは、SendGridやResendといったAPIサービスを利用し、決定論的(deterministic)な手続き型コードを実行します。

この例では、トランスクリプトの要約というAIの得意な部分にはLLMの力を使い、メール送信という確実な処理が必要な部分には既存のAPIと手続き型コードを使用しています。このように、AIワークフローは、LLMの強みと伝統的なプログラミングの安定性を組み合わせることで、**「両者の良いとこ取り」**を実現し、予測可能な出力を得ることができます。

例2: サポート問い合わせのカテゴリ分類

顧客からのサポート問い合わせを自動的に分類するシステムも、AIワークフローの良い例です。

従来のAIアシスタント、特にチャットサポートAIアシスタントは、顧客と対話しながら問題を解決するため、非常に複雑な実装が必要です。そして、もしエージェントが少しでも誤った方向に進んでしまうと、ビジネスにとって大きな損害となる可能性があり、多くの企業は実稼働への導入をためらっています。

AIワークフローを使えば、以下のような手順で、より安全にサポート問い合わせを分類できます。

  1. 問い合わせ内容の抽出・理解: LLMを用いて、顧客の問い合わせテキストから、問題の種類や緊急度などの情報を抽出します。
  2. カテゴリ分類: 抽出された情報に基づき、問い合わせを特定のカテゴリ(例: 注文、支払い、技術サポートなど)に分類します。これもLLMが担当できますが、定義された分類基準に従って動作します。
  3. 適切な担当部署へのルーティング: 分類されたカテゴリに基づいて、問い合わせを適切なサポートチームや担当者に割り当てます。これは、内部APIやデータベース操作による手続き的なステップです。

このアプローチにより、エージェントが「脱線」するリスクを抑えつつ、LLMの強力なテキスト処理能力を活用して、サポート業務の効率化と一貫した対応を実現できます。

Mastraワークフローの主要な機能と今後の展望

Mastraでは、このようなAIワークフローを構築するための機能が提供されています。本ワークショップでは、参加者がMastraで初めてのワークフローを構築する手順を、既存のコード例を通じて学びました。

今後のワークフロー開発では、さらに高度なオーケストレーション機能が重要となります。具体的には、以下のような機能が挙げられます。

  • ブランチング(Branching): 条件に基づいてワークフローの実行パスを分岐させる機能。これにより、より複雑なビジネスロジックに対応できます。
  • マッピング(Mapping): リストや配列の各要素に対して、同じ一連の操作を適用する機能。データ処理の自動化に役立ちます。
  • ルーピング(Looping): 特定のステップを繰り返し実行する機能。反復処理が必要なタスクに有効です。
  • Human in the Loop: 特定の段階で人間の承認や介入を必要とする機能。完全に自動化できない、または人間によるチェックが不可欠なプロセスにおいて、信頼性を高めます。

Mastraの創設エンジニアであるTonyは、これらのワークフロー機能開発の主要な担当者の一人であり、参加者は「ソース」から直接学ぶ貴重な機会を得ました。Mastraは開発者体験を重視しており、SDKの改善、ドキュメンテーションの充実、そして本ワークショップのような教育コンテンツを通じて、開発者の皆様がより簡単にAIを活用したアプリケーションを構築できるよう支援しています。

本ワークショップで示されたコードはすべてGitHubリポジトリで共有され、セッションも録画されています。これにより、後からでも内容を確認し、自身のプロジェクトにMastraワークフローを導入することが可能です。

まとめ

本記事では、Mastraを活用したAIワークフローの構築について、その基本概念、AIエージェントとの違い、そして具体的な実践例を交えて解説しました。

AIワークフローは、LLMの強力な能力と、プログラマが定義する予測可能で制御された実行パスを組み合わせることで、信頼性の高いAIアプリケーションを開発するための鍵となります。会議要約やサポート問い合わせの分類といったタスクにおいて、その有効性は明らかです。

Mastraは、ブランチング、マッピング、ルーピング、Human in the Loopといった高度なオーケストレーション機能を備え、開発者がより柔軟で堅牢なAIシステムを構築できるようサポートします。ぜひMastraを活用して、あなたの次のAIパワードアプリケーションを開発してみてください。

参考動画

Building AI Workflows with Mastra: https://www.youtube.com/watch?v=HGt8pVPpX9g