LINE で動く AI チャットボットを、AWS Bedrock AgentCore + Strands Agents でサーバーレスに構築するサンプルです。
LINE にメッセージを送ると、AI エージェントがウェブ検索や AWS ドキュメント検索などのツールを駆使して回答してくれます。 ツール実行中の途中経過もリアルタイムに吹き出し表示されるので、待ち時間のストレスがありません。
| レイヤー | 技術 |
|---|---|
| IaC | AWS CDK (TypeScript) + AgentCore L2 コンストラクト |
| Webhook | API Gateway (REST) + Lambda (Python 3.13 / ARM64) |
| Agent | Strands Agents on Bedrock AgentCore Runtime |
| LLM | Claude Sonnet 4.5 on Amazon Bedrock |
- Tavily API を使ったウェブ検索(ニュース、技術情報、一般知識など)
- AWS Knowledge MCP Server によるAWSドキュメント検索・閲覧
- AWS What's New の RSS フィード取得
- SSE ストリーミングによるリアルタイム応答(ツール実行状況を LINE に通知、最終回答を 1 通で送信)
- 1対1チャット / グループチャット(メンション起動)の両対応
- 会話履歴の保持(セッション管理、15分 TTL)
- OpenTelemetry による可観測性
| ツール | 説明 |
|---|---|
web_search |
Tavily API によるウェブ検索 |
current_time |
現在の UTC 時刻を取得 |
rss |
RSS フィード取得(AWS What's New など) |
clear_memory |
会話の記憶・履歴をクリア |
search_documentation |
AWS 公式ドキュメント検索(MCP Server 経由) |
read_documentation |
AWS ドキュメントのページ読み取り(MCP Server 経由) |
- AWS CLI(SSO 設定済み)、Node.js 18+、Docker
- LINE Developers の Messaging API チャネル
- Tavily の API キー
git clone https://github.com/minorun365/agentcore-line-chatbot.git
cd agentcore-line-chatbot
npm installcp .env.example .env.local.env.local に以下の値を記入します。
| 変数名 | 説明 | 取得元 |
|---|---|---|
LINE_CHANNEL_SECRET |
LINE チャネルシークレット | LINE Developers コンソール |
LINE_CHANNEL_ACCESS_TOKEN |
LINE アクセストークン | LINE Developers コンソール |
TAVILY_API_KEY |
Tavily API キー | Tavily ダッシュボード |
aws sso login --profile your-profile
set -a && source .env.local && set +a
npx cdk deploy --profile your-profileデプロイ完了時に出力される WebhookUrl を LINE Developers コンソールに設定します。
- 「Webhook の利用」→ オン
- 「応答メッセージ」→ オフ
- グループで使う場合は「グループトーク・複数人トークへの参加を許可する」→ オン
npx cdk deploy --profile your-profile # フルデプロイ
set -a && source .env.local && set +a
npx cdk deploy --hotswap --profile your-profile # エージェントのみ高速デプロイ
npx cdk diff --profile your-profile # 差分確認

