Upgrade to Pro — share decks privately, control downloads, hide ads and more …

システム障害時の業務影響調査AIエージェントを自部署にリリースした件

Yoshi
December 22, 2024

 システム障害時の業務影響調査AIエージェントを自部署にリリースした件

複数のシステムが密に連携し、一部のシステム/機能で障害があった際に影響範囲を洗い出すのに時間がかかってしまうという課題があった。
そこで、AIエージェントを使用して自然言語で影響範囲を洗い出すアプリをリリースしましたので、内容を共有いたします。

Yoshi

December 22, 2024
Tweet

Other Decks in Technology

Transcript

  1. 4 ◼ 情シス本部では、SoE、SoR、Decoupling層に分け、お客様のニーズに即座に対応 できるようモダン化が進んでいるが、その反面、複数のシステムが密に連携し、一部の システム/機能で障害があった際に影響範囲を洗い出すのに時間がかかってしまう。 情シス部門での障害対応時の課題 SoE Decopuling SoR SoE(System

    of Engagement): お客様接点を重視して設計されたシステム Decoupling: SoEとSoRを疎結合化するために設計されたシステム SoRのIFを隠蔽し、SoRの情報を引き上げる SoR(System of Record): 情報を正確に記録することを目的としたシステム
  2. 5 ◼ API影響対応表(Excel)から連携システム/影響範囲を人手で確認し、 障害速報の作成/発信を行っている 障害時の現状の対応 現状 障害発生 障害速報ひな形作成→発信 複数資料を経由して影響を特定 影響特定までに時間を要する

    API_IDから 影響範囲(フロント)を特定 API_IDを特定 システムA システムB Cシステム システム... 想定される障害速報のひな形は 人手で事前に用意している 影響範囲の特定/障害速報のひな形 の作成に時間を要するため AIエージェントを使って 課題解決できないか
  3. 6 ◼ AIエージェントとは 事前に決められた目標を達成するために対話やデータ収集を行い、そのデータを 使用して自律的に自己決定タスクを実行するソフトウェアプログラム AIエージェントとは AI エージェントとは何ですか? - 人工知能のエージェントの説明

    - AWS (amazon.com) Aシステムでの開局遅延発生時の 影響範囲を洗い出して 結果をTeamsに投稿して ユースケース: 障害発生時の影響範囲を洗い出して周知したい 情報収集 タスク実行 次の情報を取得し、 1. Aシステムの機能 2. 開局遅延時のIF 3. IFのAPI ID 4. APIの影響範囲 結果をTeamsに投稿 Aシステムでの開局遅延発生時の 影響範囲は◦◦です。 結果をTeamsに投稿しました。 考案中... 目標設定 • システム用語検索関数 • API情報検索関数 • Teams投稿関数 ツール群 ※事前に定義
  4. 7 ✓ アラート検知から影響フロント特定まで手動で実施 生成AIエージェントを利用し影響フロントを一発特定したい ユースケース 現状 基幹にて障害発生 障害速報ドラフト作成→発信 改修後 複数資料を経由して影響を特定

    Aシステムでの開局遅延 影響範囲を洗い出して 結果から障害速報のドラフトを作成して 自律的にタスクを考案し、 情報を集めるエージェント ① ② ③ ④ ②③④ Aシステム用ツール Bシステム用ツール Cシステム用ツール 検索条件をもとに 業務影響(画面)を特定 できるツール 障害速報ドラフトを 作成するツール 影響フロント画面は◦◦です。 障害速報のドラフト版は 以下です。。。。 ②③ ④ 事前に定義した必要な情報を 収集するために自律的にタスクを考案 AIエージェント実施範囲 影響特定までに時間を要する チャット応答にて即回答 API_IDから 影響範囲(フロント)を特定 API_IDを特定
  5. 8 概要図 Streamlit LangChain/LangGraph AWS Cloud Virtual private cloud (VPC)

    Amazon Elastic Container Registry (Amazon ECR) Amazon DynamoDB Amazon Bedrock Amazon Elastic Compute Cloud (Amazon EC2) Loki 会話履歴 OpenSearch ベクトル 保存/検索 文章生成 ログ保存 Amazon Simple Storage Service (Amazon S3) ファイル保存 FastAPI ツール内部処理 OpenSearch Dashboard 可視化
  6. 9 ◼ Step1. エージェントの作成:目標や回答のルールを設定 ◼ Step2. エージェントが使うツールの作成 ◼ Step3. 画面の作成

    障害箇所から影響フロント特定・障害速報文面作成が可能な生成AIエージェントを作成 ## あなたの役割 あなたの役割はAPI仕様書からAPIを特定し、そのAPIから業務影響を回答することです。 ## あなたが従わなければいけないルール 1. 回答はできるだけ短く、要約して回答してしてください...... 必要なタスクは… ツール実行中… 結果は…となります。 @tool(args_schema=SearchAPIInput) def search_api(query, max_result_num=5): """ ## Toolの説明 本Toolは中継システムのAPI仕様書を参照し、システム名、IF名 (論理名)から関連するAPI_ID検索を実行するためのツールです。 ## Toolの動作方法 1. userが影響範囲を確認したいシステム[input(str): system_name]、IF名(論理名)[input(str):if_name]から該当 するAPI_IDを検索します 2. assistantは以下の戻り値の形式で検索結果をuserに回答します ## Inputの形式 Input ------- system_name[str]: システム名 if_name[str]: IF名(論理名) ## 戻り値の形式 Returns ------- List[str]: - API_ID """ ~ @tool(args_schema=SearchAPIInput) def search_business_impact_from_api (query, max_result_num=5): """ ## Toolの説明 本Toolは中継システムのAPI仕様書を参照し、API_ID[input: query]から業務影響を検索を実行するためのツールです。 ## Toolの動作方法 1. userがAPI_ID(ex.XXX00001)から業務影響を検索します 2. assistantは以下の戻り値の形式ですべての業務影響をuserに回 答します ## 戻り値の形式 Returns ------- List[List[Dict[str, str]]]: Each inner list contains dictionaries with the following keys: - index - 利用システム - 利用画面/API ID ~~~ """ ~ @tool(args_schema=SearchAPIInput) def create_trable_info_draft(query, max_result_num=5): """ ## Toolの説明 本Toolは障害速報のドラフトを作成するためのツールです。 ## Toolの動作方法 1. userが障害速報に必要な情報をqueryとして渡します。 2. assistantは以下の戻り値の形式で障害速報ドラフト結果をuser に回答します。 ## 戻り値の形式 Returns ------- str: 障害速報ドラフト """ prompt_template = """ 次のexampleを参考に返してください <example> ~障害速報のテンプレート~ </example> ``` """ ~ ①システム名、IF名からAPI IDを検索するツール ②API IDからフロント影響を特定するツール ③障害速報ドラフトを作成するツール (一部略) (一部略) (一部略)
  7. 11 ◼ 使ってみて ⚫ ツールを準備し適切にプロンプトを与えるとエージェントが勝手に考え、 タスクを実行してくれるのが便利だと感じた。 ◼ 課題 ⚫ AIエージェント

    • 意図しない結果を返すことがある(プロンプトで改善の余地あり) – ツール内のプロンプトをチューニングすれば減らすことができるため、 どういった風にツールの説明をするかが鍵となると感じた。 ⚫ 障害速報ドラフト生成 • APIの影響情報だけではユーザ目線ではなく開発者目線の障害速報の文章になってしまう – ユーザ目線としてどういった情報が必要でどこから取得できるのかをエージェントに教える必要がある ⚫ LangChainのバージョン管理面 • 下位互換が少なく、バージョンを上げるたびに改修が必要のことが多い… ◼ サマリ ⚫ AIの挙動は基本的にプロンプトチューニングで制御可能であり、その上でエージェントに多数の手 足(ツール)を与えることで任意のタスクを自律的に実行してもらうことが期待できる 所感