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

File-Based Agents in Mastra: Drop In a Folder, Get an Agent

再生時間

3分 43秒

Mastraのファイルベースエージェント:接着剤コードを排除し開発効率を高める新手法

ポイント

  • AIエージェント開発者は、Mastraのファイルベースエージェントを活用し、接着剤コードを排除して開発効率を飛躍的に向上できます。
  • ファイルシステムにファイルを配置するだけで、メモリ、ツール、ワークスペース、スキルなどの機能をエージェントに直感的に追加・拡張できます。
  • これにより、プロジェクト構造が明確になり管理が簡素化され、将来的なエージェントの自己改善や機能の再利用性にも繋がります。

Mastraのファイルベースエージェント:接着剤コードを排除し開発効率を高める新手法

はじめに

AIエージェントの開発において、「接着剤コード」 (glue code) は、プロジェクト構造を複雑にし、開発効率を低下させる一因となることがあります。本記事では、Mastraが提供する「ファイルベースエージェント」という革新的なアプローチを紹介します。これは、特定のフォルダにファイルを配置するだけでマスターエージェントに機能を追加し、接着剤コードを排除することで、プロジェクト構造を明確にし、開発プロセスを劇的に効率化するものです。

ファイルベースエージェントとは?

ファイルベースエージェントは、ファイルシステムそのものをプロジェクト構造の直接的な表現として利用する概念です。これにより、特別な設定や複雑なコード記述をすることなく、フォルダやファイルの配置によってエージェントの能力を定義・拡張できます。

具体的には、エージェントの機能や設定、リソースなどを、決められたフォルダ構造とファイル命名規則に従って配置するだけで、Mastraプラットフォームが自動的にそれらを認識し、エージェントに組み込みます。

エージェントの構築:アシスタントの作成

まずは、ファイルベースエージェントの基本的な作成方法を見ていきましょう。例えば、「アシスタント」と呼ばれるエージェントを定義する場合、以下のように簡単なステップで実現できます。

  1. エージェントフォルダの作成
    • assistant という名前のフォルダを作成します。
  2. システム指示と設定ファイルの配置
    • この assistant フォルダ内に、エージェントの役割を定義する system instruction ファイルと、使用するモデルを指定する config.ts ファイルを配置します。

現時点では、このエージェントにはまだメモリ、ツール、スキルといった高度な機能は備わっていません。

機能を拡張する:メモリ、ツール、ワークスペースの追加

ファイルベースエージェントの真骨頂は、その機能拡張の容易さにあります。追加したい機能をファイルとして配置するだけで、エージェントの能力をシームレスに拡張できます。

メモリの追加

エージェントにメモリ機能を追加するのは非常に簡単です。

  • assistant フォルダ(エージェントを表すフォルダ)内に memory.tcs ファイルを追加するだけです。

これにより、メモリ機能が有効になり、チャット履歴などのコンテキストをエージェントが保持できるようになります。

ツールの追加

エージェントが外部の情報を検索したり、特定のアクションを実行したりするための「ツール」も同様に追加できます。

  1. tools というフォルダを作成します。
  2. 新しいファイルを作成し、そのファイル名をツールの名前にします。例えば、「ナレッジ検索」ツールを追加するなら knowledge-search.ts というファイルを作成します。

Studioに戻ると、「knowledge search」ツールが登録されていることが確認でき、例えば「acme」に関する検索を行うことが可能になります。

ワークスペースの活用

エージェントが特定のファイルやデータを操作できる「ワークスペース」を与えることもできます。

  1. workspace という新しいフォルダを作成します。
  2. このフォルダ内に、例えば Acme policy.txt といったシードデータ(ダミーポリシー)を配置します。

これで、エージェントはこれらのワークスペースツールを利用できるようになります。エージェントに「ワークスペースからAcme policyを読んでください」と指示すると、実際にその内容を読み取ることができます。また、このシードフォルダを作成することで、新たに作成されるすべてのワークスペースでこれらのファイルが利用可能になります。

この流動的なアプローチは、特にコーディングエージェントにとって非常に有効です。彼らはファイルツリーをプロジェクト構造の最も直接的な表現として捉え、容易に作業を進めることができるためです。

スキルを活用:Humanizeスキルで自然な出力を実現

Mastraがサポートするあらゆる機能は、このファイルベース構造を用いて追加できます。特に強力な機能の一つが「スキル」の導入です。

例えば、「humanize」というスキルを追加する手順を見てみましょう。このスキルは、大規模言語モデル (LLM) の出力を、人間が書いたかのように自然な表現に変換するものです。

  1. skills という新しいフォルダを作成します。

  2. 統合ターミナルを開き、skills npmパッケージを使用して humanize スキルを追加します。

    # 例: skills npmパッケージを使ってhumanizeスキルを追加
    # この操作は通常CLIから行われますが、ここでは概念を示します。
    npm install @mastra/skill-humanize # 実際にはMastraのスキル管理コマンドを使用します
    
  3. ダウンロードされたスキルを適切なトップレベルフォルダに移動します(CLIを使って直接行える場合もあります)。

これで、「humanizer」スキルが利用可能になります。もしエージェントに「humanizerを使ってポリシーをhumanizeしてください」と依頼すると、このスキルが適用され、より自然な表現の出力が得られます。さらに、この出力がファイルに書き込まれることもあります。

ファイルベースエージェントがもたらす革新と将来性

ファイルベースエージェントのアプローチは、開発プロセスに様々な革新をもたらします。

  • プロジェクト構造の明確化と管理の簡素化: 接着剤コードが不要になることで、プロジェクトの構成が直感的になり、管理がはるかに容易になります。
  • レジストリによる再利用性: Shad CNのようなツールのように、ツールやエージェントのテンプレートレジストリを作成し、必要なものをファイルシステムに簡単に配置できるようになる可能性があります。これにより、手動での配線作業をすることなく、機能を素早く導入できます。
  • エージェントの自己改善: HermesやOpen Clawのようなアプローチと同様に、エージェント自身が能力を改善するように促すことも可能になります。特にコーディングエージェントの場合、(まだ公式に文書化されていない隠しヘルパー create coding agent もありますが) エージェントがファイルをリアルタイムで編集・更新することで自己改善できるようになるでしょう。接着剤コードの複雑さを考慮する必要がなく、これは非常に強力な機能となります。

まとめ

Mastraのファイルベースエージェントは、接着剤コードを排除し、ファイルシステムを通じてエージェントの機能を直感的かつ効率的に構築・拡張できる画期的な開発手法です。メモリ、ツール、ワークスペース、スキルといった様々な要素を容易に組み込むことができ、開発の流動性を高めます。さらに、エージェントの自己改善や、再利用可能なコンポーネントのレジストリ構築といった将来的な可能性も秘めています。

この強力なアプローチをさらに深く理解するためには、公式ドキュメントを参照することをお勧めします。

参考動画

https://www.youtube.com/watch?v=5Kfn-oYkJNg