その他

【Mastra】セットアップをしてみた(+エージェントを使ってみた!)

その他
この記事は約9分で読めます。

はじめに

みなさんこんにちは!

最近、さまざまなAIエージェントが出てきて、世の中がすごい変わってきてるなぁ・・・。と思ってます。その中で、こんなAIエージェントがいいな、とか、あんなAIエージェント欲しいな、と思いつくわけですが、AIエージェントって、作るの難しそうと思いますよね。

ですが、世の中には、RAGやMCP連携をして、AIエージェントを作れるフレームワークがあるようです。それが、今回紹介するMastra(マストラ)です!

Mastra.ai
The Typescript AI framework

Mastraとは

Mastraとは、AIエージェント開発が効率的にできるフレームワークで、TypeScriptで実装されています。MCP連携やRAGを使用することで、思い通りのAIエージェント開発をすることができます。

この後記事でも紹介をするセットアップをすると、最初のコードが揃った状態(デフォルトであるお天気エージェントが使える状態)で始めることができるので、必要に応じてプログラムを書き換えていくことで使うことができます。
似たものでDifyというツールもありますよね。こちらはノーコードでAIエージェントを作ることができるものになってます。比較の記事を書いていた方がいらっしゃったので、よろしければご覧ください。

DifyとMastraを徹底比較:ノーコードからTypeScriptフレームワークまで、生成AI開発プラットフォームの最前線を解剖する長編ガイド|ユニコ🦄
はじめに:AIアプリ開発の二大潮流「ノーコード」と「コードベース」 なぜ今「Dify」と「Mastra」が注目されているのか 生成AIの活用が一般化しつつある中、誰でもAIアプリを作れるプラットフォームが必要とされている ノーコードで始めたいユーザーにはDifyが最適 TypeScriptベースで柔...

また、Mastraは公式のドキュメント(日本語)もありますので、よければこちらもご覧ください。

はじめに | Mastra ドキュメント
Mastraは、TypeScriptエージェントフレームワークです。AIアプリケーションや機能を素早く構築するのに役立ちます。ワークフロー、エージェント、RAG、統合、同期、評価など、必要なプリミティブセットを提供します。

Mastraが使えるように準備をしていく

今回のセットアップでは、こちらの記事を参考にさせていただきました。非常に詳しくMastraについての記述がされていましたので、よければこちらもご覧ください!

第2章:Mastra開発環境の構築|Mastraで作るAIエージェント入門

Node.jsをインストールする

まずはNode.jsをインストールします。
MastraはこのNode.jsの環境でないと動かないので、まだインストールしていない人がいれば、しておきましょう。

インストール自体は簡単で、ダウンロードボタンを押すと、インストーラーがダウンロードされます。それを開いて、インストーラーの指示に従ってインストールしていけばいいだけです。

Node.js — どこでもJavaScriptを使おう
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

コマンドを実行する

インストールが完了したら、Mastraのプロジェクトを実施したいフォルダで、下記のコマンドをターミナルで実行しましょう。今回はmastraというフォルダを作って、その中で実行しました。

npm create mastra@latest

セットアップしていく

コマンドを入力すると、Mastra Createの画面が出てきます。主な設定項目は以下の通りです。一個ずつ説明していきますね!

┌  Mastra Create
│
◇  What do you want to name your project?
│  mastra-be-test
│
◇  Project created
│
◇  npm dependencies installed
│
◇  mastra installed
│
◇  Dependencies installed
│
◇  .gitignore added
│
└  Project created successfully

ここでは、インストールするパッケージの確認です。EnterでOKです。

Need to install the following packages:
create-mastra@0.1.9
Ok to proceed? (y) 

ここでは、プロジェクトの名前を入力します。好きなプロジェクトの名前を入力しましょう。思いつかなかったり、特に名前をつけなくてもいい場合は、そのままEnterを教えてください。

  Mastra Create
│
◆  What do you want to name your project?
│  # my-mastra-app (任意の名前を入力)

名前を入力してエンターを押すと、プロジェクトの準備をしてくれます。しばらくすると、以下のsrc/の部分で止まるので、Enterを押してください。Mastraの関連ファイルをsrcフォルダに置くかどうかの質問です。

◇  Project created
│
◇  npm dependencies installed
│
◇  mastra installed
│
◇  Dependencies installed
│
◇  .gitignore added
│
└  Project created successfully


┌  Mastra Init
│
◆  Where should we create the Mastra files? (default: src/)
│  src/
└

続けて、インストールするコンポーネントを選択します。
Agentsは必ず選ぶようにしましょう。半角入力の状態でスペースキーを押すとチェックが入ります。Workflowsは、大規模な開発をする人や開発のステップを固定的に定義するときなどに必要になります。興味がある人は、チェックを入れるといいです。入れたらEnterを押しましょう。

◆  Choose components to install:
│  ◻ Agents (recommended)
│  ◻ Workflows
└

ツールを使用するかどうかのチェックです。左矢印でYesにしてEnterを押します。

◆  Add tools?
│  ● Yes / ○ No

どのAIエージェントを使用するかをここで選択します。みなさんの使っているAIエージェントを選択しましょう。

◆  Select default provider:
│  ● OpenAI (recommended)
│  ○ Anthropic
│  ○ Groq
│  ○ Google
│  ○ Cerebras

APIキーを今設定するかどうかを聞かれています。後からでも設定できますが、今設定できる方は、設定してしまいましょう。

◆  Enter your openai API key?
│  ● Skip for now (default)
│  ○ Enter API key

サンプルファイルを用意するかの質問です。最初のうちはYesを選んでおくといいと思います。

◆  Add example
│  ● Yes / ○ No

関連ツールのインストールを聞かれますが、スキップのEnterで構いません。

◆  Make your AI IDE into a Mastra expert? (installs Mastra docs MCP server)
│  ● Skip for now (default)
│  ○ Cursor (project only)
│  ○ Cursor (global, all projects)
│  ○ Windsurf
│  ○ VSCode

すると、Mastraが正常に初期化されたとメッセージが出てきました。
今回はAPIキーを登録していないので、登録しておいてね、というメッセージも追加されています。

◇  
│
◇   ─────────────────────────────────────────────────────────╮
│                                                            │
│                                                            │
│        Mastra initialized successfully!                    │
│                                                            │
│        Add your OPENAI_API_KEY as an environment variable  │
│        in your .env file                                   │
│                                                            │
│                                                            │
├────────────────────────────────────────────────────────────╯
│
└  
   To start your project:

    cd # プロジェクト名
    npm run dev

cd # プロジェクト名 + npm run dev で、プロジェクトを始められると書いてあるので、言われた通りにしてみましょう。

ブラウザを起動させる

npm run dev でサーバーが起動します。

http://localhost:4111/ でMastraの画面が開きます。ブラウザで下のような画面が出ればOKです!
標準で、お天気エージェントが使用できますので、今回は試しにこれも触ってみましょう。

お天気エージェントや、これから紹介する記憶機能については、こちらの記事を参考にさせていただきました。セットアップの部分から詳しく紹介されていますので、よろしければこちらもご覧ください!

MastraのAIエージェントで記憶機能を試す|ニケちゃん
こんにちは、ニケです。 皆さん、Mastra使っていますでしょうか? 私は最近ハマっていて時間があればドキュメントを読むようにしています。 今回はAIエージェントの記憶機能を試してみたので、その紹介をしようと思います。 Using Agent Memory | Agents | Mastra Docs ...

記憶機能

AIエージェントでは、会話内容を記憶させる機能もあります。(記憶してないと、人っぽい会話はできませんもんね!)もちろん、これはプログラムでどのくらい記憶させるかも調整させることができます。記事によっては、デフォルトでついてきてない方もいたようですが、私の場合は最初から記憶機能がついていました。バージョンによる差などあるのでしょうか?

お天気エージェントで、記憶機能を試してみましょう。
お天気エージェントはお天気についてしか答えることはできませんが、知識を使わない(会話で知識を与えた)ことは答えることができます。例えば、「札幌出身のエンジニアで、札幌についての天気をおしえて」聞きます。

ちゃんと天気のことについて教えてくれました。これに続けて、職業を聞きます。
先ほど、「札幌出身のエンジニアで・・・」と質問しているので、記憶機能のおかげで、あなたはエンジニアです!と答えてくれました。

お天気エージェント

何も設定しなくても、Mastraがお天気エージェントを最初から準備してくれています。(逆に言えば、現状ではお天気エージェントしかありませんが・・・)せっかくなので、その機能を試してみましょう。

本社のある札幌の天気を尋ねてみます。すると、しっかりと天気の情報を回答してくれました!

一方で、天気以外の情報を聞くと、全く答えてくれません。
弊社についての情報を聞いてみると、まったく答えてくれませんでした。(あたりまえ)

さいごに

これで、Mastraの環境構築が完了し、お天気エージェントが使える状態になりました。
次回のMastraの記事では、今回の環境構築から、AIエージェントを作ってみたいと思います!

今回作ったものも、GitHubにアップしています。よければご覧ください。

GitHub - iwasakiterukazuimpl/mastra
Contribute to iwasakiterukazuimpl/mastra development by creating an account on GitHub.