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

Schedule AI Agents to Run Automatically in Mastra

再生時間

2分 40秒

Master Agentのスケジュール機能徹底解説!定期実行でSlack連携を強化

ポイント

  • Master Agentのスケジュール機能は、エージェントを定期的に自動実行し、特にSlack連携を強化したい開発者向けの新機能です。
  • スレッドレスモードとスレッドモードの二つの実行形式があり、cronスケジュールで柔軟にタスクを自動化できます。
  • 天気予報通知を例に機能の使い方を解説しており、効率的な情報提供やリマインダー設定などの自動化に役立つ知見が得られます。

Master Agentのスケジュール機能徹底解説!定期実行でSlack連携を強化

はじめに

Master Agentに待望のスケジュール機能が導入されました。この新機能により、エージェントを定期的に自動実行できるようになり、特にSlackチャンネルのようなコミュニケーションツールとの連携において、その真価を発揮します。本記事では、このスケジュール機能の概要、利用モード、具体的な活用例、そしてその仕組みについて詳しく解説します。

Master Agentのスケジュール機能とは?

Master Agentのスケジュール機能は、指定されたプロンプトに基づき、cronスケジュールを利用してエージェントを定期的に実行する機能です。この機能には、大きく分けて二つの実行モードがあります。

1. スレッドレスモード (Threadless Mode)

このモードでは、エージェントの実行は会話の流れとは独立してバックグラウンドで行われます。会話に直接介入することなく、定期的なタスクや情報収集などを実行したい場合に適しています。

2. スレッドモード (Threaded Mode)

スレッドモードでは、エージェントが会話に定期的に参加します。これにより、以下のようなアクションを自動的に実行できます。

  • 要約の提供
  • リマインダーの送信
  • 質問の投げかけ

この機能は、Studio環境でも、または自身のアプリケーションに組み込んだMaster Agentでも利用可能です。特にSlackチャンネルと組み合わせることで、エージェントが定期的に要約を送信するといった使い方は非常に便利です。

具体的な利用例:天気予報エージェントとの連携

ここでは、スケジュール機能を用いた天気予報エージェントの具体的なデモンストレーションを通じて、その使い方を解説します。

1. 事前準備と初期の問い合わせ

事前にSlackに追加されたスケジューリング対応のMaster Agentを使用します。まずは、このエージェントにロンドンの天気を尋ねてみます。

エージェントはスレッド内でツールコールを実行し、「27.7度」といった現在の天候情報を返信します。

2. 定期実行の設定

次に、このエージェントに「10秒ごとに天気を教えて」と指示し、定期的な情報更新を設定します。この要求を処理するために、カスタムツールが使用されます。

3. カスタムツール start weather schedule

「start weather schedule」というカスタムツールが追加されており、これがユーザーの入力(この場合は頻度に関する指示)を受け取り、それに基づいてスケジュールを作成します。

  • 実行結果: エージェントは約10秒ごとに呼び出され、その結果はスレッドモードで会話スレッド内に表示されます。これにより、定期的に最新の天気予報が自動的に投稿される様子を確認できます。

4. スケジュールの停止

もし定期的な更新が不要になった場合は、「stop the weather schedule」と指示することで、簡単にスケジュールを停止できます。

スケジュールの仕組みとAPI

Master Agentのスケジュール機能は、master.schedules schedulesという参照を通じて動作します。ここから、スケジュールの作成、更新、削除といった操作を行うことができます。

スケジュールのシグネチャ(引数)

スケジュールを作成する際の主要な引数は以下の通りです。

  • ID: スケジュールを一意に識別するためのキーです。これにより、後で特定のスケジュールを検索できます。
  • Agent ID: 呼び出すMaster AgentのIDです。
  • Prompt: エージェントを実行する際に使用するプロンプトです。このプロンプトは、ツールコールなどから動的に渡すことも可能です。
  • Thread ID: スケジュールが関連付けられるスレッドのIDです。例えば、SlackのスレッドIDがこれに該当します。
  • Resource ID: ユーザーまたは組織のIDです。

詳細設定

エージェントがすでに実行中(ターンの途中やループ中)の際にスケジュールが呼び出された場合の動作など、いくつかの設定を調整することも可能です。

スケジュールの作成方法

スケジュールを作成する方法は複数あります。

  • ツールコール内での呼び出し: 上記の天気予報の例のように、ツールコール内で動的にスケジュールを作成できます。これにより、ユーザーが自身のスケジュールを柔軟に選択できるようになります。
  • スクリプト内での作成: スクリプト内でスケジュールを直接定義し、作成することも可能です。

持続性と実行の条件

作成されたスケジュールはデータベースに保持され、サーバーの再起動後も存続します。ただし、cronスケジュールが正しく機能し、エージェントが定期的に実行されるためには、Masterサーバーがどこかのサーバー上で、または開発環境でバックグラウンドで常に稼働している必要があります。

まとめ

Master Agentのスケジュール機能は、エージェントの自動化と、特にSlackなどのコミュニケーションプラットフォームとの連携を大幅に強化する強力なツールです。定期的な情報提供、リマインダー、タスクの自動実行など、様々なユースケースでその価値を発揮します。この機能を活用することで、より賢く、効率的なエージェントシステムを構築できるようになるでしょう。

詳細な情報やクイックスタートガイドについては、公式ドキュメントをご確認ください。

参考動画

https://www.youtube.com/watch?v=LYZWn3qHyWM