【AIエージェント構築とは #5】AIエージェントはどうやって作る?

菱川拓郎
菱川拓郎

これまでの連載では、「AIエージェントを構築する」とはどういうことなのか、企業の業務にAIを組み込むには何を考える必要があるのかを紹介してきました。そして、前回は私たちがAIエージェント開発に利用しているTypeScriptフレームワーク「Mastra」について、その特徴や採用している理由を紹介しました。

では、実際にMastraでAIエージェントを作るときには、何をするのでしょうか。今回は、実際にMastraを使ってAIエージェントを作成してみたいと思います。少しだけコードも登場しますが、プログラミングの知識は必要ありません。

まずはMastraをセットアップ

今回は、新しくMastraのプロジェクトを作るところから始めてみます。

ターミナルから、次のコマンドを実行します。

npm create mastra@latest

すると、プロジェクト名や使用するAIモデルのプロバイダーなどを聞かれます。質問に答えていけば、Mastraを使った開発に必要なファイルや設定が自動で用意されます。Mastraでは、このようにCLI(コマンドラインツール)を使って、新しいプロジェクトの雛形を簡単に作ることができます。

セットアップが完了したら、作成されたディレクトリに移動し、次のコマンドを実行すると、Mastra Studio が立ち上がります。

npm run dev

Mastra Studio

この画面で、すでに作成されたAIエージェントに対して指示ができる状態になっています。しかし、このエージェントにはまだ何の指示も与えていないため、ここから具体的にこのAIエージェントにやって欲しい仕事を指定していきます。

Agentへの指示を変更する

たとえば、Webサイトのコンテンツ制作を手伝ってくれるAIエージェントを作るとします。

Mastraでは、Agentというクラスを使ってAIエージェントを定義します。今回、私は次のようなAgentを作成してみました。

export const agent = new Agent({
  id: 'agent',
  name: 'コンテンツ制作アシスタント',
  description: 'Webサイトのコンテンツ制作を支援するアシスタントです。',
  metadata: {
    suggestedPrompts: [
      '会社紹介ページの文章を書いてください。',
      'ブログ記事のタイトル案を出してください。',
    ],
  },
  instructions: `あなたはWebサイトのコンテンツ制作を支援するアシスタントです。
日本語で、わかりやすい文章を書いてください。
情報が足りないときは、短く質問してください。
`,
  model: 'openai/gpt-5.6-terra',
  defaultOptions: {
    maxSteps: 100,
    autoResumeSuspendedTools: true,
  },
  memory: new Memory({
    options: {
      generateTitle: true,
      observationalMemory: {
        model: 'openai/gpt-5-mini',
      },
    },
  }),
  workspace,
  tools: {
    ask_user: askUserTool,
    start_schedule: startScheduleTool,
    stop_schedule: stopScheduleTool,
    web_fetch: webFetchTool,
    web_search: webSearchTool,
  },
  signals: [new TaskSignalProvider()],
});

デフォルトから変更したのは、エージェントの名前と説明、推奨プロンプト、インストラクションです。インストラクションは、このエージェントが基本的に従うべき役割を指定したプロンプトです。

この変更をしたら、また Mastra Studio に戻って、新しいエージェントを試してみましょう。

作成したエージェント

このように、あなたのためだけのコンテンツ制作エージェントが完成しました!

ただし、これで「業務システム」が完成したわけではない

もちろん、このままでお客様に納品できるわけではありません。このままでもAIエージェントと会話できますが、これでは実質的にChatGPTと会話しているのと何ら変わりがありません。ここからは、具体的にAIエージェントが使えるToolやMemoryなどをTypeScriptで実装して付加していくことになります。

また、Mastra Studio は、AIエージェントの挙動を確認するためのインターフェースですので、ここから利用者が使うためのUIも必要になります。一方、そのUIはチャット画面である必要はありません。ボタンかもしれませんし、そもそも他のシステムから自動的に呼び出すため、UI自体が存在しないかもしれません。

どのような形態で利用するにせよ、その中心となるAIエージェントを立ち上げるというところまでは、驚くほどかんたんにできることを感じていただければ幸いです。

次回も Mastra の便利な機能について紹介していきたいと思います。