「天気のことならなんでも聞いて !」Amazon Bedrock で作るお天気エージェント

~ 株式会社ウェザーニューズによる実装解説

2025-05-01
デベロッパーのためのクラウド活用方法

Author : 
影山拓哉 (株式会社ウェザーニューズ)
森本顕大 (株式会社ウェザーニューズ)
森下貴康 (株式会社ウェザーニューズ)
長友健人 (アマゾン ウェブ サービス ジャパン合同会社)

株式会社ウェザーニューズはお天気アプリ「ウェザーニュース」に生成 AI を用いた気象情報のアシスタント機能「お天気エージェント」を実装しました。

お天気エージェントによりユーザーはチャットボットで天気に関する問い合わせができ、疑問を即座に解消することが可能になりました。例えば、「千代田区で雨が降ったのは何日前 ?」、「車で 2 時間の週末晴れる観光スポットは ?」など従来のお天気アプリや気象情報サイトでは得ることの難しい質問に即座に回答できます。

画像をクリックすると拡大します

本記事では生成 AI エージェント機能の実装例とその工夫について紹介いたします。


お天気エージェント構築の背景

ウェザーニュースでは詳細かつ豊富な気象・防災情報を提供していますが、「もっと詳しい専門的な気象情報・解説が欲しい」、「もっと簡単に気象情報にアクセスしたい」という要望が多くありました。ユーザーに簡単かつ柔軟に天気情報にアクセスできる体験を提供すべく、生成 AI エージェントを用いたチャットボットである「お天気エージェント」の開発をスタートしました。


お天気エージェントの実装

「お天気エージェント」のシステムは、チャット形式の UI、AI、API、プロンプト管理 & ログ監視という 4 つの要素で構成されています。ユーザーはウェザーニュース内のインターフェースを通じて、自然言語で自由に質問を入力します。

UI

初めて使うユーザーはお天気エージェントがどんな質問に答えてくれるのか分からないため、簡単に機能を体験できるように「この後の黄砂の影響は」、「上野恩賜公園の桜、見頃はいつ」のような例文をあらかじめ用意しています。例文は LLMOps ツールを使って社内の非エンジニアのスタッフでも編集できるようにしており、最新の季節や気象トピックを表示できるようになっています。さらに、アプリ内で関連性の高いページを提案することで、ユーザーが求める情報に効率的にたどり着けるよう工夫しています。

これらの工夫により、既存ユーザーでもお天気エージェントが提供できる多様な情報や機能を改めて発見する機会を提供できています。

今後はユーザーのプロンプトから、ユーザーは今どんなことを知りたがっているのかを分析して、トレンドの例文を表示できるようにしたいと考えています。

API

お天気エージェントの API 実装は Chainlit を用いて、WebSocket で通信しています。WebSocket で通信するのは、LLM の推論が全て終了するのを待たず順次出力させる Streaming Response に対応するためです。これによりユーザーが回答の待ち時間のストレスを感じにくい実装としました。リクエストは複数台の AWS Fargate で受け付けており、Chainlit の仕様上クライアントを同一コンテナにルーティングさせるため Application Load Balancer のスティッキーセッションを有効化しました。

AI

エージェント機能の実装には LangChain Agents を利用しました。エージェントが利用できる Tool として、WxTech というサービスで提供される気象情報 API、飛び先ページ情報を保存している Amazon S3 へのアクセス、他にもウェザーニューズが抱える気象データにアクセスする API 等を定義しています。

多様なデータアクセスにより、天気予報だけでなく、台風や地震などの防災情報、花粉や桜などの季節情報、過去の気象データに基づいたグラフ描画機能などを提供し、ユーザーの様々な質問に対して包括的かつ視覚的に情報を提供しています。

これらの API は Python の asyncio を用いて呼び出すようにしており、複数の API を非同期に実行することで応答速度の向上を実現しています。

エージェント機能は以下の図に示す ReAct (Reason + Act + Observation) のフローで実施されます。

ユーザー入力を受け取った LLM (Amazon Bedrock) が推論 (Thought / Reason) を行い、必要に応じてツール呼び出し (Action) を実行しツールの結果 (Observation) を反映しながら回答を更新していくというプロセスを繰り返すことで、最終的に高精度な回答 (Output) を返します。LangChain は、この ReAct の流れをスムーズに実現するためのフレームワークとして、LLM と各種ツールの連携を仲介し、一連の処理をオーケストレーションしています。

LLM の実行基盤としては Amazon Bedrock、モデルには Claude 3.5 Sonnet v2 を採用しました。このモデルを用いることで、高い応答性能と柔軟な対話設計が可能になり、ユーザーに対して迅速かつ適切な天気情報を提供できる仕組みを実現しています。

チャット形式のためユーザーが天気と無関係な投稿をした際にも対応できるよう、プロンプトでは以下のようなことを工夫しています

  • 専門性の強調 :
    天気情報提供に特化していることを明確に伝え、天気以外の質問にはその旨を案内します。
  • 補足質問の提示 :
    天気情報と直接関係のない質問があった場合、具体的にどの地域の天気が知りたいかなどの補足質問を提示し、対話を天気情報へ誘導します。
  • フレンドリーな返答 :
    絵文字やシンプルな表現を使い、柔らかく天気情報の提供に導くメッセージを返します。

プロンプト管理 & ログ監視

BtoC 向けの本システムはプライバシーの考慮が必要なため、LLMOps ツールは Amazon VPC 内にセルフホスティングしています。プロンプトは LLMOps ツールで一元管理しており、ユーザー入力に対して適切な Tool が選択されるかなどを検証しながら、システムの挙動とユーザー反応を継続的に分析し最適化を行っています。

開発過程で特に課題となったのは、モデルが学習データから「先週の雨」、「8 月半ばの暑さ」といった具体的な気象情報を自動生成してしまう現象でした。この問題に対応するため、「お天気エージェント」の強みを活かし、ウェザーニューズ独自の正確な気象データを Tool から取得して回答に利用するように調整しました。これによりモデルの推測ではなく実際の気象情報に基づいた信頼性の高い返答を実現しています。

チャット画面に表示されるサンプル質問は、非エンジニアのスタッフが手軽に更新できる仕組みとなっており、気象情報のようにリアルタイム性が求められるデータにも柔軟に対応可能です。

また、LLMOps ツールはログの収集も行っており、質問を匿名で一定期間保存することができます。ログの活用としてシンプルなフィルタリングをした後にベクトル変換、クラスタリングを実施することで類似する質問をグループ化します。これにより会話の分類や抽象化が自動的に行われ、対話内容の傾向やテーマを整理しプロンプトの最適化に役立てる仕組みとなっています。

*この会話ログは検証時のものです


導入効果

現在お天気エージェントはプロフェッショナル向けサブスクリプションプランであるウェザーニュース Pro でのみ提供しています。リリース以降はこの機能をきっかけに多くのユーザーに入会していただいています。

また、気象情報配信チャンネルのウェザーニュースLiVE でキャスターがお天気エージェントを活用するシーンが増えたことで、単なる機能としてだけでなく番組内の重要なコンテンツとしても定着しつつあります。


今後の展望

今後は通常の有料ユーザーや無料ユーザーへの提供も視野に入れコスト最適化や性能向上に取り組んでいます。コスト最適化の観点では Amazon Bedrock の Prompt Caching などの機能に期待しています。

ユーザーのログやフィードバックをもとに改善を重ねており、将来的にはユーザーごとに最適化された「自分だけのお天気エージェント」として更なるユーザー体験の向上を目指しています。

お天気エージェントの事例は AWS Summit Japan 2025 で展示予定です。お天気エージェントの詳細については幕張でお話ししましょう !


builders.flash メールメンバーへ登録することで
AWS のベストプラクティスを毎月無料でお試しいただけます

筆者プロフィール

影山拓哉
株式会社ウェザーニューズ
モバイル・インターネット事業部 クラウドインフラチーム

ウェザーニュースアプリなどのバックエンド開発を担当。
ピストとマウンテンバイクが趣味だけど、長距離走ったことはないです。
ちなみにバイクの名前は Voo くんです。

森本顕大
株式会社ウェザーニューズ
WNIデータインフラグループ

ウェザーニューズのデータ部署にて、生成 AI プロジェクトのチームリーダーを担当。
べつにアウトドアな趣味はないのに、車を買いました。
ちなみにかけてるメガネは伊達ちゃんです。

森下貴康
株式会社ウェザーニューズ
モバイル・インターネット事業部 モバイルアプリ開発チーム

iOS 版ウェザーニュースアプリの開発に従事。お天気エージェントでは主にフロントエンドの開発を担当。

長友健人
アマゾン ウェブ サービス ジャパン合同会社
ソリューションアーキテクト

AWS のソリューションアーキテクトとして Web 系のお客様を中心にアーキテクチャ設計支援を担当。
べつに自転車が趣味ではないのに、自転車で台湾一周しました。
ちなみに犬の名前はキリちゃんです。

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する