Media > AI活用ユースケース > 情報システム > 運用を委託している会社の月次の運用報告書を、契約のサービスレベルと前月の報告に照らして点検し、確認の質問を作る

運用を委託している会社の月次の運用報告書を、契約のサービスレベルと前月の報告に照らして点検し、確認の質問を作る

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

運用を委託している会社から毎月届く運用報告書を、契約で決めたサービスレベルの指標と前月の報告に照らして点検します。未達の指標、定義と違う測り方、あいまいな記述を洗い出し、委託先への確認の質問までそろえます。

サマリー
生成AI
ChatGPT/Claude/Gemini
連携・自動化
Google Apps Script/Make/n8n/Power Automate/Python
対象業界
IT・SaaS/小売/製造/金融
対象部門
情報システム
対象業務
内容確認・チェック/比較検討
主な課題
人手が足りない/属人化している/確認ミスが多い
AIで行う処理
判定
主な効果
判断支援/品質標準化/工数削減
導入難易度
★★★☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
条件付き
現在工数
60h/月
AI導入後
20h/月
想定削減
67%
年間削減
480h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 委託先から運用報告書のメールが届き、担当者が添付をシステムごとのフォルダに保存する
  2. 報告書のPDFを開き、稼働率、障害、問い合わせ、作業実績の数字を拾う
  3. 契約の別紙を開き、指標ごとに目標値と見比べる
  4. 前月の報告書と課題管理表を開き、継続している課題の状況を見比べる
  5. 気になった記述に付箋を付け、委託先への質問をメモにまとめる
  6. 月次の定例会の前に、質問を委託先へ送る
  7. 点検の結果を課題管理表に書き写す
導入後(After)
  1. 人委託先から届いた運用報告書と添付を、システムごとのフォルダに保存する(これまでと同じ)
  2. 自動保存をきっかけにワークフローが動き、ファイルの形式と、前月の報告書・SLA台帳がそろっているかを確かめる
  3. 自動添付の一覧(障害・問い合わせ)を表形式のテキストに変換する
  4. 自動報告書のPDF、前月の点検結果、SLA台帳を Claude API に渡し、指標ごとの報告値と測り方を読み取らせる
  5. 自動読み取った報告値と目標値を、プログラムが数値で比べて `met` / `not_met` を決める
  6. 自動あいまいな記述と、前月から説明なく消えた課題を一覧にする
  7. 自動判定ごとに、委託先への確認の質問の下書きを作る
  8. 人担当者が、`not_met` と `definition_mismatch` と `not_reported` の行を報告書と照らして確かめる
  9. 人質問を直して委託先へ送り、課題管理表を更新する
各工程の詳しい説明を読む
  1. 委託先から運用報告書のメールが届き、担当者が添付をシステムごとのフォルダに保存する
  2. 報告書のPDFを開き、稼働率、障害、問い合わせ、作業実績の数字を拾う
  3. 契約の別紙を開き、指標ごとに目標値と見比べる
  4. 前月の報告書と課題管理表を開き、継続している課題の状況を見比べる
  5. 気になった記述に付箋を付け、委託先への質問をメモにまとめる
  6. 月次の定例会の前に、質問を委託先へ送る
  7. 点検の結果を課題管理表に書き写す

(a)契約の別紙と突き合わせていない月がある。 3番目は、別紙を開いて指標を1つずつ探す作業です。報告書の数字が目標を上回っていそうなら、別紙を開かずに「問題なし」で済ませる月が出ます。 報告書が数字を出していない指標は、そもそも見比べる対象として目に入りません。

(b)測り方の違いに気づけない。 契約では「計画停止は、事前に合意したものに限り稼働率の計算から除く」とあるのに、報告書の稼働率はすべての計画停止を除いて計算されている。数字は99.9%で目標を超えていても、契約の定義で計算し直すと届いていない。報告書の脚注まで読まないと分からない差です。

(c)前月の課題が黙って消える。 前月の報告に「障害の恒久対策:対応中(来月中に完了予定)」とあったものが、今月の報告に何も書かれていない。完了したのか、忘れられたのか、報告から外したのかが分かりません。4番目の見比べを省いた月に、そのまま流れます。

(d)点検の深さが人で決まる。 別紙を毎月開いているのは1名だけで、その人が休むと点検は「数字を眺める」だけになります。どこを見れば危ないかが、その人の頭の中にしかありません。

  1. 【人】 委託先から届いた運用報告書と添付を、システムごとのフォルダに保存する(これまでと同じ)
  2. 【自動】 保存をきっかけにワークフローが動き、ファイルの形式と、前月の報告書・SLA台帳がそろっているかを確かめる
  3. 【自動】 添付の一覧(障害・問い合わせ)を表形式のテキストに変換する
  4. 【自動】 報告書のPDF、前月の点検結果、SLA台帳を Claude API に渡し、指標ごとの報告値と測り方を読み取らせる
  5. 【自動】 読み取った報告値と目標値を、プログラムが数値で比べて met / not_met を決める
  6. 【自動】 あいまいな記述と、前月から説明なく消えた課題を一覧にする
  7. 【自動】 判定ごとに、委託先への確認の質問の下書きを作る
  8. 【人】 担当者が、not_met と definition_mismatch と not_reported の行を報告書と照らして確かめる
  9. 【人】 質問を直して委託先へ送り、課題管理表を更新する

8番目が、この設計の分かれ目です。人が見るのは全ページではありません。 met の行は根拠の文字列を一覧で流し見て終わりにし、問題ありと出た行と、判定できなかった行だけに時間を使います。 全ページを人が読み直す設計にすると、120分はほとんど減りません。

5番目で数値の比較をAIにさせないのも、意図してのことです。 AIに任せるのは「報告書のどこに何と書いてあるか」を読むところまでで、99.82と99.9のどちらが大きいかは、プログラムが決めます。 比較の規則が変わっても、直すのはプログラムだけです。

02今回想定するシステム構成

構成図
運用報告書(PDF)+ 障害・問い合わせの一覧(表ファイル)
   │  委託先からメールで届き、担当者がフォルダへ保存
   ▼【トリガー】システムごとのフォルダへの保存
Power Automate
   ├──▶ 前月の点検結果とSLA台帳を引く
   ├──▶ 一覧の表ファイルをCSVのテキストに変換
   ▼
Claude API ── 指標ごとに報告値・測り方・根拠を読み取る
   │   ① 報告の有無   ② 報告値と単位   ③ 測り方(除外条件・集計期間)
   │   ④ あいまいな記述   ⑤ 前月の継続課題の今月の状況
   ▼
Python ── 報告値と目標値を数値で比べる/根拠の文字列がPDFにあるかを確かめる
   ▼
判定(met / not_met / not_reported / definition_mismatch / unclear)
   ▼
Claude API ── 委託先への確認の質問の下書き
   ▼
【担当者が問題ありの行だけ確認】 ── 委託先へ送付、課題管理表を更新
役割想定する製品代替候補
処理Claude API(報告書の読み取り、指標ごとの判定、質問の下書き)OpenAI API、Gemini API
差異計算Python(報告値と目標値の比較、根拠の文字列の照合)Google Apps Script
連携Power Automate(フォルダの監視、ファイルの変換、通知)Make、n8n
保管SharePoint(報告書、SLA台帳、点検の記録)Box、Google Drive

契約書と課題管理表は、新しく足すものではありません。 新しく作るのはSLA台帳だけです。契約の別紙に書かれた指標を、指標名、定義、目標値、単位、除外条件、集計期間の列に書き直した表で、委託先ごと・システムごとに1枚持ちます。

SLA台帳の項目を整理するときは、IPAの非機能要求グレードが手がかりになります。 IPAのページでは、非機能要求グレードは、非機能要求についてのユーザと開発者との認識の行き違いや、互いの意図とは異なる理解を防止することを目的とし、非機能要求項目を網羅的にリストアップして分類し、要求レベルを段階的に示したものとされています。項目は6つの大項目ごとに階層的に整理されています。運用報告書の点検で起きるのは、まさに「同じ言葉を違う意味で使う」行き違いです。

報告書のPDFは、Claude API にそのまま渡します。 Claude のドキュメントでは、PDFの中の文章・画像・図表・表について質問でき、1回のリクエストの上限は32MB、ページ数は600ページまで(リクエストのコンテキストウィンドウが100万トークン未満の場合は100ページまで)とされています。パスワードや暗号化のかかったPDFは扱えません。 各ページは画像としても処理されるため、稼働率をグラフでしか示していない報告書でも、グラフの読み取りが材料になります。

一方で、表計算のファイルはそのままでは渡せません。 ドキュメントでは、.xlsx や .docx のような形式は document ブロックで扱えず、テキストかPDFに変換する必要があるとされています。障害と問い合わせの一覧は、ワークフローの側でCSVのテキストに直してから渡します。

03どうやって実装するのか

Step1

処理の起点を決める

システムごとのフォルダに、その月の運用報告書が保存されたことを起点にします。 報告書は委託先ごとに月初の数日に届くので、1日1回の定時実行にすると、届いた順に点検を始められません。定例会までの日数が短い委託先ほど、早く点検を返したいからです。

フォルダの名前は「委託先コード/システムコード/年月」にそろえます。ワークフローはフォルダの名前から、どのSLA台帳と前月の点検結果を引くかを決めます。 報告書のファイル名は委託先ごとにばらばらなので、ファイル名からは決めません。

報告書の本文と添付の両方がそろってから動かします。 本文だけで動かすと、障害の一覧を見ないまま「障害0件」という本文の記述を信じることになります。添付が24時間届かないときは、担当者へ通知して止めます。

Step2

入力データを集める

データ中身取得元
運用報告書稼働率、障害、問い合わせ、作業実績、課題の状況。PDF委託先 → フォルダ
障害・問い合わせの一覧発生・検知・初動・復旧の時刻、件名、対応状況委託先 → フォルダ(表ファイル)
SLA台帳指標名、定義、目標値、単位、除外条件、集計期間自社で作る(契約の別紙から)
前月の点検結果前月の判定と、継続課題の一覧と完了予定この構成の保存先
計画停止の合意記録事前に合意した計画停止の日時課題管理表または合意のメール

質を決めるのは、SLA台帳の「除外条件」の列です。 稼働率の計算から何を除くか、問い合わせの一次回答の時間を営業時間で数えるか暦の時間で数えるか。ここが空のままだと、AIは報告書の数字を契約の定義で読めません。 第3章の(b)は、この列が無いことから起きます。

計画停止の合意記録は、除外条件を確かめるために持ちます。 報告書が「計画停止を除く」と書いていても、その停止が事前に合意したものかどうかは報告書からは分かりません。合意した日時の一覧と照らして、初めて判定できます。

Step3

データの取得方法を決める

取るものどこから何に使うか
報告書のPDFシステムごとのフォルダ指標ごとの報告値と根拠の文字列
一覧の表ファイル同じフォルダ。ワークフローでCSVのテキストへ障害の件数と時刻を本文の記述と突き合わせる
SLA台帳SharePoint の台帳指標の定義・目標値・除外条件
前月の点検結果この構成が保存したJSON継続課題の一覧と、前月の判定
計画停止の合意記録課題管理表除外してよい停止の日時

前月の報告書そのものではなく、前月の点検結果を渡します。 前月のPDFをもう一度読ませると入力が倍になり、しかも前月の判定と今月の判定が別々の読み方になります。前月に確定した継続課題の一覧を、今月の入力として固定で渡します。

一覧の表ファイルは、列名をそろえてからCSVにします。 委託先ごとに「発生日時」「発生時刻」「Occurred」と列名が違うので、ワークフローの側で対応表を持ち、決まった列名に置き換えてからテキストにします。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … 報告書がPDFであることを確かめます。Office形式で届いたものはPDFに変換します
  2. パスワードの確認 … パスワードや暗号化のかかったPDFは扱えません。委託先に解除したものを送り直してもらいます
  3. サイズとページ数の確認 … 1回のリクエストは32MB、600ページ(コンテキストウィンドウが100万トークン未満なら100ページ)まで。超えるものは、本文と付録で分けます
  4. 一覧の変換 … 表ファイルをCSVのテキストにし、列名を対応表でそろえます
  5. 時刻の統一 … 一覧の時刻を、日本時間・24時間表記にそろえます。初動までの時間の計算がずれるのを防ぎます
  6. SLA台帳の版の確認 … 契約の変更で目標値が変わっていないか、台帳の適用開始日を確かめます
  7. 前月の点検結果の有無 … 初月は前月が無いので、継続課題の照合だけを飛ばします

6番目を軽く見ないでください。 契約を更新して稼働率の目標を上げたのに、台帳が古いままだと、未達を達成と判定します。 台帳には適用開始日の列を持たせ、報告の対象月に合う版だけを渡します。

Step5

AIに処理させる

させるのは、SLA台帳の指標ごとに「報告書に何と書いてあるか」を読み取り、測り方が台帳の定義と合っているかを判定することです。 あわせて、あいまいな記述と、前月の継続課題の今月の状況を拾います。

見るもの判定の仕方判断できないときの扱い
指標が報告されているか指標名や言い換えで、値の記載を探す見つからなければ not_reported
報告値と単位数値と単位をそのまま写す複数の値があれば unclear
測り方除外条件・集計期間・数え方が台帳の定義と合うか測り方の記載が無ければ unclear
あいまいな記述「概ね」「順次」「適宜」「安定稼働」など、数値も期日も無い記述該当箇所を全部写す
継続課題前月の一覧の課題ごとに、今月の記載を探す記載が無ければ missing_this_month

真ん中の行が、この構成でいちばん大事な判定です。 報告書の脚注に「計画停止はすべて除外」とあり、台帳の除外条件が「事前に合意した計画停止のみ」なら、数値がいくつであっても definition_mismatch です。 目標値と比べる前に、比べてよい数字かどうかを決めます。

あいまいな記述は、拾うだけにします。 「概ね安定稼働」が問題かどうかは、その月に障害があったかで変わります。AIには該当箇所を写させ、障害の一覧と並べて人が読みます。

させないこと理由
報告値と目標値の大小の比較プログラムで決める。数値の比較で揺れを出さない
契約の定義での再計算稼働率を計算し直して埋めると、委託先に確かめるべき差が消える
未達に対する減額・是正の要否契約と委託先との関係に関わる。人が決める
委託先の評価の点数付け点検の結果から評価を作るかは別の判断
報告に無い数値の補完前月の値や一覧の件数から推測しない

2行目がいちばん起きやすい失敗です。 障害の一覧と計画停止の日時を渡しているので、AIは契約の定義で稼働率を計算し直せてしまいます。計算した値を reported_value に入れた瞬間、委託先が契約どおりに報告していないという事実が消えます。

Step6

指示内容を固定する

あなたは情報システム部で、運用の委託先から届いた月次の運用報告書を
契約のサービスレベル(SLA台帳)に照らして点検する立場です。
報告書と添付の一覧に書かれていることだけを根拠にしてください。

【指標ごとにすること】
SLA台帳の指標ごとに、次の4つを書いてください。
1. reported ......... 報告書にその指標の値が書かれているか
2. reported_value ... 書かれている数値と単位を、そのまま写す
3. method_status .... 測り方が台帳の定義・除外条件・集計期間と合うか
   - match ............ 合っていることが記載から読み取れる
   - mismatch ......... 記載された測り方が台帳と違う
   - not_stated ....... 測り方の記載が無い
4. evidence ......... 根拠にした文字列と、そのページ番号

【厳守事項】
- 値が書かれていなければ reported を false にし、reported_value は空にしてください。
  前月の値や、添付の一覧の件数から推測して埋めないでください。
- 稼働率や対応時間を、自分で計算し直さないでください。
  台帳の定義で計算すると違う値になりそうでも、書かれている値を写してください。
  違いそうだと考えた理由は note に書いてください。
- 目標値を満たしているかは判定しないでください。数値の比較は別の工程で行います。
- 「概ね」「順次」「適宜」「安定稼働」「問題なし」のように、数値も期日も無い記述は
  vague_statements にすべて写してください。良し悪しは判断しないでください。
- 前月の継続課題の一覧にある課題ごとに、今月の報告書での記載を探してください。
  記載が無い場合は missing_this_month とし、完了したと推測しないでください。
- evidence には、報告書の文字列を変えずに写してください。要約しないでください。
- 減額、是正の要否、委託先の評価は書かないでください。

【SLA台帳】{sla_ledger}
【前月の継続課題】{carryover_issues}
【計画停止の合意記録】{agreed_maintenance}
【添付の一覧(CSV)】{incident_csv} {inquiry_csv}

「自分で計算し直さない」を明記しないと、親切に計算します。 障害の時刻と計画停止の日時を渡している以上、計算の材料はそろっています。禁じるのは計算の能力ではなく、計算した値を報告値として扱うことです。

「完了したと推測しない」も同じ理由です。 前月「来月中に完了予定」とあった課題が今月の報告に無いと、AIは完了したものとして扱いがちです。記載が無いという事実そのものを、委託先に聞く材料にします。

Step7

出力形式を固定する

次の形のJSONで受け取ります。

{
  "vendor_code": "",
  "system_code": "",
  "report_month": "",
  "metrics": [
    { "metric_id": "", "reported": true, "reported_value": "", "unit": "",
      "method_status": "match | mismatch | not_stated",
      "evidence": "", "page": 0, "note": "" }
  ],
  "vague_statements": [ { "text": "", "page": 0 } ],
  "carryover": [
    { "issue_id": "", "status_this_month": "updated | missing_this_month",
      "evidence": "", "page": 0 }
  ]
}

返答の形は、Claude API の構造化出力で固定します。 ドキュメントでは、output_config.format にJSONスキーマを指定すると、返答がスキーマに従うとされています。enum が使えるので、method_status を3つの値に限れます。 オブジェクトには additionalProperties: false を指定する必要があります。

一方で、minimum や maximum のような数値の制約はサポートされていません。 ページ番号が報告書のページ数を超えていないか、reported_value が数値として読めるかは、プログラムの側で確かめます。

最終の判定は、このJSONを受けてプログラムが決めます。

条件判定
reported が falsenot_reported
method_status が mismatchdefinition_mismatch
method_status が not_stated、または値が数値として読めないunclear
上記以外で、目標値を満たすmet
上記以外で、目標値を満たさないnot_met

表の上から順に当てはめます。 測り方が違う指標は、数値が目標を満たしていても met にしません。比べてよい数字かどうかを、比べる前に決めるのが、この表の並びの意味です。

根拠の文字列は、プログラムが報告書のテキストと照合します。 evidence が報告書の該当ページに実際にあるかを確かめ、見つからなければ unclear に落とします。 根拠の場所を返す Citations の機能は構造化出力と同時に使えないため、この照合を自前で持ちます。

Step8

システムへ連携する

つなぎ先方式内容
システムごとのフォルダPower Automate のトリガー報告書と添付の保存を検知する
SLA台帳・計画停止の記録SharePoint の読み取り定義・目標値・除外条件、合意した停止の日時
Claude APIAPI呼び出し指標の読み取りと、質問の下書き
比較のプログラム(Python)ワークフローから呼び出し数値の比較、根拠の照合、判定
担当者Teams への通知問題ありの件数と点検結果の場所
課題管理表担当者が更新確認後の質問と継続課題

課題管理表へは書き込みません。 この構成が出すのは点検の結果と質問の下書きまでで、課題管理表に何を載せるかは担当者が決めます。委託先と共有している表に、確認前の判定が載るのを避けます。

委託先への送付も自動にしません。 質問の文面は、委託先との関係とその月の事情で変わります。

Step9

人が確認する

人が開くのは、not_met / definition_mismatch / not_reported / unclear の行と、missing_this_month の課題だけです。 met の行は、指標名と根拠の文字列を一覧で流し見ます。

  1. definition_mismatch を先に見る … 根拠の文字列と台帳の除外条件を並べ、本当に違うかを確かめます。台帳の書き方があいまいなだけのこともあります
  2. not_reported を確かめる … 報告書の目次と付録を見て、本当に書かれていないかを確かめます。グラフの中にだけ数字がある報告書は珍しくありません
  3. missing_this_month の課題を確かめる … 完了の連絡が別のメールで来ていないかを見ます
  4. あいまいな記述を障害の一覧と並べて読む … 障害があった月の「安定稼働」は質問の対象にします
  5. 質問を直して送る … 下書きを、定例会で聞くものと書面で聞くものに分けます
  6. 判定を覆したら記録する … どの指標を、どちらに変えたかを残します

1番目を省かないでください。 definition_mismatch は、委託先に「契約どおりに測っていない」と伝えることに直結します。 台帳の側の誤りで問い合わせると、次の月から委託先は質問を真剣に読まなくなります。

目標は、1件40分です。 問題ありと出る行が1件あたり数行という想定で、それより多い月は、台帳の除外条件が足りていないか、報告書の書式が変わっています。

Step10

例外に対処する

起きること対応
パスワード付きのPDFが届く扱えないので、解除したものを送り直してもらう
32MBまたはページ数の上限を超える本文と付録を分けて投入し、結果を合わせる
添付の一覧が届かない24時間待って担当者へ通知。本文だけで点検しない
一覧の列名が対応表に無い変換を止め、担当者に対応表の追加を頼む
SLA台帳に対象月の版が無い点検を止める。古い版で判定しない
報告書の対象月が違うフォルダの年月と本文の対象期間を比べ、違えば止める
1つの報告書に複数のシステムシステムごとに分けて読ませ、台帳もそれぞれ渡す
根拠の文字列が報告書に見つからない該当の行を unclear にして人へ
API が応答しないフォルダの状態を「未点検」のまま残し、再実行する

上の3行と5行目で、例外のほとんどを占めます。 どれもAIの問題ではなく、受け取り方と台帳の整備の問題です。 委託先に「パスワードを付けない」「本文と一覧を同じメールで送る」と頼むだけで、半分は消えます。

Step11

記録を残す

  • 受け取った報告書と添付、受け取った日時
  • AIに渡した入力(そのとき使ったSLA台帳の版、前月の継続課題、計画停止の記録)
  • AIが返したJSONの全文と、プログラムが付けた判定
  • 根拠の照合の結果 … 見つかった/見つからなかった
  • 人が判定を覆した記録と、その理由
  • 委託先へ送った質問と、回答の日付
  • 委託先ごと・指標ごとの判定の推移

2つ目で台帳の版を残すのは、契約が途中で変わるためです。 目標値を見直した月の前後で判定の意味が変わり、当時の基準が残っていないと、過去の未達が本当に未達だったのかを説明できません。

最後の行は、委託先との契約更新の材料になります。 同じ指標で not_reported が3か月続くなら、報告の様式そのものを相談します。

04実装レベルの3段階

最小構成:報告書とSLAの表を手で Claude の画面に添付し、指標ごとに読ませる / 1件ずつの指標の読み取り
半自動化:上記+フォルダへの保存で動き、構造化出力で受け、プログラムが判定と前月比を出す / 読み取り・判定・継続課題の照合・質問の下書き
本格構成:上記+委託先のポータルや監視ツールから実績値を直接取り、報告書の値と突き合わせる / 報告値そのものの検証

最小構成では件数がさばけません。 1件ずつ添付するので、月30件には使えません。確かめるための段階です。 半自動化で、1件120分が40分になります。この段階が本記事の想定です。 指標の読み取り、数値の比較、前月との照合、質問の下書きが自動になり、人に残るのは問題ありの行の確認と質問の仕上げです。 本格構成は、委託先が実績値を外から取れる形で出している場合だけ意味があります。 報告書の数字を、監視ツールの元の値で検証できるようになります。ただし、委託先の環境へのアクセスの取り決めが要るため、契約の更新の機会を待って進めるのが現実的です。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
3 名
月間件数
30 件
1件あたり現在時間
120 分
1件あたり導入後時間
40 分
現在  30件 × 120分 ÷ 60 = 60 時間/月
導入後 30件 × 40分 ÷ 60 = 20 時間/月
月間削減時間
40h
削減率
67%
年間削減時間
480h
年間金額換算(時間単価4,000円)
192万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 社内の業務システムの運用を複数の会社に委託しており、毎月それぞれから運用報告書を受け取っている企業。契約の別紙にサービスレベルの指標と目標値が書かれているのに、報告書との突き合わせが担当者の目視になっている場合。委託先ごとに報告書の書式が違い、どこに何が書かれているかを担当者しか知らない場合。前月に「対応中」だった課題がいつの間にか報告から消えている、という経験がある場合。
向いていない
  1. 委託先が1社で、報告書が数ページに収まり、目視で十分に追える場合。サービスレベルを契約で取り決めておらず、照らし合わせる基準そのものが無い場合(先に基準を決める作業が要ります)。運用の実績値を監視ツールから自社で直接取れており、報告書を読む必要が無い場合。なお、サービスレベルの未達に対して減額や是正を求めるかどうかの判断は、この構成では代替できません。

07最小構成で試す方法

  1. 先月届いた運用報告書から3件を選ぶ(うち1件は、点検で問題が見つかったことのあるもの)
  2. その3件について、契約の別紙から指標と目標値と除外条件を書き出し、簡単な表にする
  3. 報告書のPDFと表を、手元の Claude の画面に添付する
  4. 「表の指標ごとに、報告書に値が書かれているか、書かれている値、測り方が表の除外条件と合っているかを答えてください。計算し直さないでください。値が無ければ無いと答えてください。根拠のページも書いてください」と指示する
  5. 当時の担当者の点検と突き合わせる

3件は必ず、別々の委託先から選んでください。 書式の違いに耐えられるかを、最初に確かめます。

出てきた内容判断
当時の点検と同じ問題が出たSLA台帳を全システム分作り、ワークフローに進む
稼働率を計算し直して答えた指示の書き方で直る。構成は有効
除外条件の違いを判定できない台帳の除外条件の書き方が先。 AIの問題ではない

3行目が出ることは珍しくありません。 契約の別紙の文言が「計画停止を除く」としか書いていなければ、事前合意の有無を判定する材料がそもそもありません。 その場合は、委託先と除外条件の解釈を先にすり合わせてください。

08実装時につまずきやすいポイント

問題対策
AIが稼働率を計算し直して報告値に入れる計算を禁じ、理由は note に書かせる。 報告値は写すだけ
測り方が違うのに met になる判定の表を上から順に当て、mismatch を数値の比較より先に見る
グラフにしか数字が無く not_reported になる各ページは画像としても処理される。グラフの読み取りを指示に含め、人の確認で拾う
前月の課題を完了したものとして扱う「記載が無ければ missing_this_month」と明記する
SLA台帳が古く、未達を達成と判定する台帳に適用開始日を持たせ、対象月の版だけを渡す
一覧の列名が委託先ごとに違う対応表で置き換えてからCSVにする
.xlsx の添付をそのまま渡して失敗するdocument ブロックでは扱えない。CSVのテキストに変換する
パスワード付きのPDFで止まる委託先に解除を頼む。 毎月の運用として取り決める
根拠の文字列が報告書と一致しないプログラムで照合し、見つからなければ unclear
数値の範囲をスキーマで縛ろうとするminimum / maximum は使えない。プログラムで確かめる
質問を自動で委託先へ送る下書きまでにする。 送るのは人
点検の結果で委託先を評価し始める評価に使うかは別の判断。点検と評価を混ぜない

上の2行が、この構成の失敗のほとんどです。 どちらも「数字は合っているように見える」という同じ見た目から出発しています。比べてよい数字かどうかを先に決める設計にしてあるかで、運用に乗るかが決まります。

最後の2行も、早い時期に効いてきます。 点検の結果を委託先にそのまま送ったり、評価の点数に使ったりすると、委託先は報告書を「点検に通る書き方」に寄せ始めます。 報告書の情報が減れば、点検の意味がなくなります。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 社内システムの稼働状況、障害の内容と原因、脆弱性への対応状況、システムの構成情報、委託先の担当者名、そして契約の条件です。

  1. 外部へ渡す範囲を、点検に必要なページに限る … 運用報告書には、サーバーの名前やIPアドレス、パッチの適用状況が載ることがあります。指標の点検に要らない付録は、渡す前に外します。 脆弱性への対応状況は、攻撃する側にとって価値の高い情報です
  2. 利用する生成AIのサービスの、入力データの扱いを確かめる … 学習への利用の有無と保持期間を、契約と設定で確かめてから使います
  3. 委託先の同意を取る … 委託先が作った報告書を外部のサービスで処理することについて、契約の秘密保持の条項と照らし、必要なら委託先に伝えます
  4. 判定を委託先にそのまま見せない … definition_mismatch や not_reported は、確認前の判定です。人が確かめたものだけを質問として送ります
  5. この構成は契約上の判断を代替しない … サービスレベルの未達に対して減額や是正を求めるか、契約の解釈が分かれたときにどちらを採るかは、情報システム部と法務・購買が決めることです
  6. SLA台帳と点検の記録の閲覧範囲を絞る … 委託先8社の契約条件と未達の記録がまとまった一覧です。委託先の担当者が見られる場所に置かないでください

誤りが起きた場合のリスクは、未達を見落とすことと、未達でないものを委託先に問いただすことの2つです。 前者は測り方の違いを見ずに数値だけを比べると起き、後者は台帳の除外条件があいまいなまま判定すると起きます。どちらも台帳の質から出ているので、そこを先に固めます。

10まず何から始めるか

1週目:SLA台帳を3システム分作る

報告書の量が多い委託先から3システムを選び、契約の別紙を指標・定義・目標値・単位・除外条件・集計期間の表に直します。除外条件が書けない指標が見つかったら、その場で一覧にしておきます。 それが委託先とすり合わせる最初の議題になります。

2週目:先月の3件で試す

第8章の手順で、先月の報告書3件を手元の Claude の画面で読ませます。当時の点検と突き合わせ、稼働率を計算し直していないか、前月の課題を完了扱いにしていないかを最優先で見ます。

3週目:判定の規則と質問の型を決める

第7章の判定の表を、自社の契約に合わせて直します。あわせて、definition_mismatch と not_reported と missing_this_month のそれぞれについて、委託先に送る質問の型を決めます。ここが決まらないと、下書きが毎月違う書き方になります。

4週目:フォルダから判定までをつなぐ

Power Automate でフォルダを見張り、一覧をCSVに変換し、Claude API の構造化出力で受け、比較のプログラムで判定するところまで作ります。この時点では質問の下書きを作らず、判定の一覧だけを見ます。

2か月目: SLA台帳を全システム分に広げ、前月の継続課題との照合を足します。人が判定を覆した件数を毎週数えます。3か月目以降: 質問の下書きを足し、1件120分が何分になったかを実測します。委託先ごとの not_reported と definition_mismatch の推移を見て、報告書の様式を委託先とすり合わせた時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-06/最終更新:2026-10-06
確認した内容情報源確認日
output_config.format にJSONスキーマを指定すると返答がスキーマに従うこと。enum が使えること。オブジェクトに additionalProperties: false が必要なこと。minimum・maximum などの数値の制約と minLength・maxLength がサポートされないことClaude Docs: Structured outputs2026-10-06
PDFの文章・画像・図表・表について質問できること。リクエストの上限が32MB、ページ数が600(コンテキストウィンドウが100万トークン未満では100)であること。パスワード・暗号化のないPDFに限ること。各ページが画像としても処理されること。.xlsx・.docx は document ブロックで扱えず、テキストかPDFへの変換が要ることClaude Docs: PDF support2026-10-06
非機能要求グレードが、ユーザと開発者との認識の行き違いや意図と異なる理解の防止を目的とし、非機能要求項目を網羅的に分類して要求レベルを段階的に示したものであること。項目が6つの大項目ごとに階層的に示されていることIPA: システム構築の上流工程強化(非機能要求グレード)紹介ページ2026-10-06
Citations の機能と構造化出力(output_config.format)を同時に使うとエラーになることClaude Docs: Citations2026-10-06

サービスレベルの未達にどう対応するかは、契約と委託先との取り決めに従って決めてください。 本記事は、公開仕様で確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0574)についてのご相談はこちらから。

AI活用について相談する
目次