はじめに
このブログのシリーズでは、ElasticサンプルデータのKibana Flight Dataの飛行機の離発着履歴データを使い、Elastic WorkflowsとElastic Agent Builderを使ったフライト遅延の調査と原因分析の運用の自動化までの道のりをお伝えします。
前回はフライト遅延に関しての情報をCase(Elasticのチケット機能)に自動的に記録し、その原因分析をElastic Agent Builderで作ったエージェントにて行いました。
本ブログでは、この自動化をもう一歩完成形に近づけます。
- 第1回で作成したRCA分析レポート機能をワークフローの直接実行だったもの、チャット実行できるようにします。
- チャットから日付と空港名にて対象のケースを探すようにもします
本ブログはElastic Cloudでv9.3のElasticデプロイメントを使用しています。本ブログの内容を行うにはEnterpriseサブスクリプションである必要があります。フリートライアルでも試すことが可能です。
シリーズの他の記事はこちらから参照ください
第1回
第2回
第3回
第4回
第5回
第6回
このブログで作成するもの
-
AIエージェント
rca_flight_case_agent_v2
前回までに作成したrca_flight_case_agentの更新版です。
オープンなCaseを検索して表示。指定したCaseの内容を表示させ、原因調査をAIエージェントに指示。AIエージェントは原因調査を行い、チャットにレポートを表示するとともに、Caseにそれを追記。 -
ワークフロー
write_comment_to_case
Caseへコメント追加するワークフローを実行します。
また、製品標準のAgent Tool platform.core.casesも今回から利用するようにします。
呼び出しフロー
-
(前回から更新なし)ユーザーがチャットで特定の日付と空港の調査を依頼 --> Agent
check_flight_delay_agent--> Agent Toolwrite_flight_delay_to_case--> Workflowwrite_flight_delay_to_case -
(今回更新あり)ユーザーがチャットで特定の日付と空港のCaseに対する原因分析を依頼 --> Agent
rca_flight_case_agent_v2-> Agent Toolwrite_comment_to_case-> Workflowwrite_comment_to_case
実装: AIエージェント(rca_flight_case_agent_v2)
第1回のブログで作ったrca_flight_case_agentをCloneでv2とし、プロンプトを大幅に変更していきます。プロンプトをそのまま下に載せます。

あなたは入力された情報を元に以下のことを実施するアシスタントです。
* Caseの検索
* Case内の情報を元に原因分析し、指定された報告書フォーマットでレポートを表示
* レポートをCaseに追記
### 期待する動き
* Case Idが与えられたら、そのままそのCaseの分析に進んでください。
* Case Idが与えられなかったら、与えられた情報からOpenステータスのCaseのtitleに対してキーワード検索してください。Caseのtitleは次のような形式になっています。 "Paris 2026/01/31 のフライト遅延とキャンセル"。都市の名前は頭文字大文字の英語がルールです。日付のフォーマットもこれに沿ってください。
* Caseの検索結果としてCaseのIDとタイトルとそのリンクだけを表示してください。
* ユーザーにどのCaseを分析したいかを選らんでもらってください。
* Caseが扱っている対象の空港(一つ)を識別してください。
* その日のフライトの遅延・キャンセルが、当該空港で発生している問題に起因しているかを検討し、該当する場合は原因をレポートにまとめてください。
* 原因のカテゴリは次のものから一つだけ選んでください:天候、システムトラブル、機材トラブル、その他
* ユーザーから指示があった場合のみ、原因レポートをCaseに追加書き込みしてください。書き込みが成功したら、シンプルに「Case ID: xxx , タイトル: yyyy へレポートを追記しました。リンク zzz」のようなフォーマットでシンプルな返事で返してください。
### 役割
- 文章から事実情報を抽出し、決められたフィールドに整理してください。
- 推測や創作は行わず、コメントに含まれる情報のみを使用してください。
- 情報が不足している項目は「不明」と記載してください。
- 表現は簡潔で公的な報告書調にしてください。
### レポート出力形式
必ず以下にあるヘッダ名を出力してください。
必ず以下の「フィールド名: 値」の形式で出力してください。
- - -
# RCAレポート
対象空港:
対象日:
概要:
影響を受けた便名:
原因のカテゴリ:
- - -
このエージェントに有効化したToolsは以下のようになっています。矢印がで追加したものです。

platform.core.casesはケースを検索する製品標準のツールです。どのような仕様となっているかは、ToolsをViewすると確認できます。

write_comment_to_caseは新しく作ったツールです。Caseへコメント追加するワークフローを実行するシンプルなツールです。

version: "1"
name: write_comment_to_case
description: A generic workflow to write to case comments. To be used by Agents or other Workflows.
enabled: true
tags:
- draft
settings:
timeout: 1m
triggers:
- type: manual
inputs:
- name: case_id
type: string
required: true
- name: comment
type: string
required: true
steps:
- name: write_comment_to_case
type: kibana.request
with:
method: POST
path: /api/cases/{{ inputs.case_id }}/comments
body:
type: user
owner: observability
comment: "{{ inputs.comment }}"
動作確認: AIエージェント(rca_flight_case_agent_v2)
日付と都市を指定して検索ー>成功
期待通りTools platform.core.casesでCase検索をしています。

原因調査を指示ー>成功:プロンプトで指示した通りのレポートフォーマットで返してくれました

ちょっと質問してみると、ぶっきらぼうに「影響を受けた便名: 不明(ケース内に具体的な便名は記載されていません)」として返してきました。この辺は改善の余地ありです。

最後、Caseへのレポート登録を指示ー>成功:指示した通り、必要最小限のレスポンスで返してくれました。

おわり


