2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mastraで立ち上げたAiエージェントをLINEボットにする

Last updated at Posted at 2025-07-13

前回、MastraでAiエージェントを立ち上げてブラウザまたはPWAから会話していました。
MastraとMCPを作って自分用Aiエージェントを作る

今回は、LINEボットにして、LINEアプリから会話できるようにします。また、「今日の天気をLINEして」といったように、AiエージェントからLINEにメッセージを飛ばせるようにします。

必要なソースは以下に置きました。

前回、MastraとMCPを作って自分用Aiエージェントを作るでセットアップが完了している前提です。

また、LINEボットにするには、パブリックなドメイン名を持ち、パブリックネットワークから常時アクセスできる場所におく必要があります。

構成

以下のような構成となります。/lineagent-webhookというエンドポイントを作ります。

image.png

準備

以下から、ZIPをダウンロードします。

展開した状態で、api\controllers\lineagent-apiを前回セットアップ済みのフォルダの同じ場所にコピーします。
それにより、以下の4つのエンドポイントが公開されます。

・/lineagent-webhook:
これが、LINEボットとしてLINEからメッセージが転送されてくるエンドポイントです。

以下は、LINEボットとして必要ではありませんが、のちのAiエージェントからLINEメッセージを送信するためのエンドポイントです。
・/lineagent-push-message:
・/lineagent-push-image:
・/lineagent-get-profile:

LINEボットとして必要なライブラリをセットアップします。

> npm install @line/bot-sdk

LINEボットの登録

まだ、LINEのビジネスアカウントを作成していない場合は、ブラウザから、LINE Account Managerコンソールを開きます。

やることは以下の通りです。
・ビジネスアカウントを追加
・設定の、Messaging APIから、Messging APIを利用する にする。
・設定の、応答設定から、応答機能の、応答メッセージをOff

詳細はこちらを参照してください。
https://developers.line.biz/ja/docs/messaging-api/getting-started/

次に、ブラウザから、LINE Developersコンソールを開きます。

作成したビジネスアカウント名があるはずです。channel typeは、Messaging API です。
チャネル基本設定の「チャネルシークレット」を覚えておきます。
Messaging API設定の「チャネルアクセストークン」を発行し、覚えておきます。

.envに先ほど覚えておいたのを以下に追記します。

LINE_CHANNEL_ACCESS_TOKEN=【チャネルアクセストークン】
LINE_CHANNEL_SECRET=【チャネルシークレット】
LINE_CHARACTER_NAME=【お気に入りのキャラクタ名】
LINE_API_KEY=【任意の秘匿の値】

LINE_CHARACTER_NAMEは必須ではありませんが、お気に入りのキャラクタ名を指定します。
例:LINE_CHARACTER_NAME=ツンデレの御坂美琴

一度、再起動します。

> node app.js

LINE Developersコンソールに戻って、Webhook URLに、外部公開ドメイン名を含んだPUBLIC_HOST_NAMEに/lineagent-webhookを連結させたURLを指定します。
更新ボタンを押して、検証ボタンを押します。成功と表示されればOKです。

image.png

Webhookの利用をOnにします。エラーの統計情報は必要に応じてOnにします。
これで準備ができました。
さっそくQRコードから友達追加してみます。

LINEから、「こんにちは」と入れると、

別に、あんたのために返事してるわけじゃないんだから。.....まあ、こんにちは、って言ってやったわ。このくらいで感謝しなさいよね。

と返ってきました。応答は、指定したLINE_CHARACTER_NAMEで変わってきます。ドラゴンボールの孫悟空とか入れたらまた変わるかと思います。なので、LINEボットにアイコンを付けると気分が変わりますよ ^_^;

AiエージェントからLINEにメッセージを送る

今度は、Aiエージェントの方から、LINEボットに友達になっているユーザにメッセージを送信します。
/mcp-lineというMCPサーバを作ります。LINEにテキストを送り部分は、さきほど作ったエンドポイントに含まれている/lineagent-push-messageを使います。

image.png

準備

さきほどZIP展開した中に、api\controllers\line-mcpがありますので、前回セットアップした環境の同じフォルダにコピーします。

.envに以下を追記します。

LINE_DESTINATION_USER_ID=【LINEのUserID】

LINEのUserIDは、デフォルトでLINE送信したい友達のUserIDです。自分専用のAiエージェントにしたい場合は自分ですね。
UserIDは、LINEボットからメッセージを送信すると、Node.jsのコンソールログ(console.log())として以下のように出力されています。

[/lineagent-webhook calling] 
{type: 'user', userId: '【LINEのUserID】'} 
こんにちは

再起動します。

> node app.js

使い方

ブラウザやPWAアプリからAiエージェントを開きます。

PUBLIC_HOST_NAME/chatagent

例えば、「横浜の天気をLINEで送って」と入力すると、「了解しました」の応答とともに、以下のようなLINEメッセージが送られてきます。

「横浜の今日の天気は、曇り時々晴れで、最高気温は29.4度、最低気温は22.2度、降水量は1.5mmです。」

以上

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?