運用を委託している会社の月次の運用報告書を、契約のサービスレベルと前月の報告に照らして点検し、確認の質問を作る
運用を委託している会社から毎月届く運用報告書を、契約で決めたサービスレベルの指標と前月の報告に照らして点検します。未達の指標、定義と違う測り方、あいまいな記述を洗い出し、委託先への確認の質問までそろえます。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Make/n8n/Power Automate/Python
- 対象業界
- IT・SaaS/小売/製造/金融
- 対象部門
- 情報システム
- 対象業務
- 内容確認・チェック/比較検討
- 主な課題
- 人手が足りない/属人化している/確認ミスが多い
- AIで行う処理
- 判定
- 主な効果
- 判断支援/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 委託先から運用報告書のメールが届き、担当者が添付をシステムごとのフォルダに保存する
- 報告書のPDFを開き、稼働率、障害、問い合わせ、作業実績の数字を拾う
- 契約の別紙を開き、指標ごとに目標値と見比べる
- 前月の報告書と課題管理表を開き、継続している課題の状況を見比べる
- 気になった記述に付箋を付け、委託先への質問をメモにまとめる
- 月次の定例会の前に、質問を委託先へ送る
- 点検の結果を課題管理表に書き写す
- 人委託先から届いた運用報告書と添付を、システムごとのフォルダに保存する(これまでと同じ)
- 自動保存をきっかけにワークフローが動き、ファイルの形式と、前月の報告書・SLA台帳がそろっているかを確かめる
- 自動添付の一覧(障害・問い合わせ)を表形式のテキストに変換する
- 自動報告書のPDF、前月の点検結果、SLA台帳を Claude API に渡し、指標ごとの報告値と測り方を読み取らせる
- 自動読み取った報告値と目標値を、プログラムが数値で比べて `met` / `not_met` を決める
- 自動あいまいな記述と、前月から説明なく消えた課題を一覧にする
- 自動判定ごとに、委託先への確認の質問の下書きを作る
- 人担当者が、`not_met` と `definition_mismatch` と `not_reported` の行を報告書と照らして確かめる
- 人質問を直して委託先へ送り、課題管理表を更新する
各工程の詳しい説明を読む
- 委託先から運用報告書のメールが届き、担当者が添付をシステムごとのフォルダに保存する
- 報告書のPDFを開き、稼働率、障害、問い合わせ、作業実績の数字を拾う
- 契約の別紙を開き、指標ごとに目標値と見比べる
- 前月の報告書と課題管理表を開き、継続している課題の状況を見比べる
- 気になった記述に付箋を付け、委託先への質問をメモにまとめる
- 月次の定例会の前に、質問を委託先へ送る
- 点検の結果を課題管理表に書き写す
(a)契約の別紙と突き合わせていない月がある。 3番目は、別紙を開いて指標を1つずつ探す作業です。報告書の数字が目標を上回っていそうなら、別紙を開かずに「問題なし」で済ませる月が出ます。 報告書が数字を出していない指標は、そもそも見比べる対象として目に入りません。
(b)測り方の違いに気づけない。 契約では「計画停止は、事前に合意したものに限り稼働率の計算から除く」とあるのに、報告書の稼働率はすべての計画停止を除いて計算されている。数字は99.9%で目標を超えていても、契約の定義で計算し直すと届いていない。報告書の脚注まで読まないと分からない差です。
(c)前月の課題が黙って消える。 前月の報告に「障害の恒久対策:対応中(来月中に完了予定)」とあったものが、今月の報告に何も書かれていない。完了したのか、忘れられたのか、報告から外したのかが分かりません。4番目の見比べを省いた月に、そのまま流れます。
(d)点検の深さが人で決まる。 別紙を毎月開いているのは1名だけで、その人が休むと点検は「数字を眺める」だけになります。どこを見れば危ないかが、その人の頭の中にしかありません。
- 【人】 委託先から届いた運用報告書と添付を、システムごとのフォルダに保存する(これまでと同じ)
- 【自動】 保存をきっかけにワークフローが動き、ファイルの形式と、前月の報告書・SLA台帳がそろっているかを確かめる
- 【自動】 添付の一覧(障害・問い合わせ)を表形式のテキストに変換する
- 【自動】 報告書のPDF、前月の点検結果、SLA台帳を Claude API に渡し、指標ごとの報告値と測り方を読み取らせる
- 【自動】 読み取った報告値と目標値を、プログラムが数値で比べて
met/not_metを決める - 【自動】 あいまいな記述と、前月から説明なく消えた課題を一覧にする
- 【自動】 判定ごとに、委託先への確認の質問の下書きを作る
- 【人】 担当者が、
not_metとdefinition_mismatchとnot_reportedの行を報告書と照らして確かめる - 【人】 質問を直して委託先へ送り、課題管理表を更新する
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どうやって実装するのか
処理の起点を決める
システムごとのフォルダに、その月の運用報告書が保存されたことを起点にします。 報告書は委託先ごとに月初の数日に届くので、1日1回の定時実行にすると、届いた順に点検を始められません。定例会までの日数が短い委託先ほど、早く点検を返したいからです。
フォルダの名前は「委託先コード/システムコード/年月」にそろえます。ワークフローはフォルダの名前から、どのSLA台帳と前月の点検結果を引くかを決めます。 報告書のファイル名は委託先ごとにばらばらなので、ファイル名からは決めません。
報告書の本文と添付の両方がそろってから動かします。 本文だけで動かすと、障害の一覧を見ないまま「障害0件」という本文の記述を信じることになります。添付が24時間届かないときは、担当者へ通知して止めます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 運用報告書 | 稼働率、障害、問い合わせ、作業実績、課題の状況。PDF | 委託先 → フォルダ |
| 障害・問い合わせの一覧 | 発生・検知・初動・復旧の時刻、件名、対応状況 | 委託先 → フォルダ(表ファイル) |
| SLA台帳 | 指標名、定義、目標値、単位、除外条件、集計期間 | 自社で作る(契約の別紙から) |
| 前月の点検結果 | 前月の判定と、継続課題の一覧と完了予定 | この構成の保存先 |
| 計画停止の合意記録 | 事前に合意した計画停止の日時 | 課題管理表または合意のメール |
質を決めるのは、SLA台帳の「除外条件」の列です。 稼働率の計算から何を除くか、問い合わせの一次回答の時間を営業時間で数えるか暦の時間で数えるか。ここが空のままだと、AIは報告書の数字を契約の定義で読めません。 第3章の(b)は、この列が無いことから起きます。
計画停止の合意記録は、除外条件を確かめるために持ちます。 報告書が「計画停止を除く」と書いていても、その停止が事前に合意したものかどうかは報告書からは分かりません。合意した日時の一覧と照らして、初めて判定できます。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 報告書のPDF | システムごとのフォルダ | 指標ごとの報告値と根拠の文字列 |
| 一覧の表ファイル | 同じフォルダ。ワークフローでCSVのテキストへ | 障害の件数と時刻を本文の記述と突き合わせる |
| SLA台帳 | SharePoint の台帳 | 指標の定義・目標値・除外条件 |
| 前月の点検結果 | この構成が保存したJSON | 継続課題の一覧と、前月の判定 |
| 計画停止の合意記録 | 課題管理表 | 除外してよい停止の日時 |
前月の報告書そのものではなく、前月の点検結果を渡します。 前月のPDFをもう一度読ませると入力が倍になり、しかも前月の判定と今月の判定が別々の読み方になります。前月に確定した継続課題の一覧を、今月の入力として固定で渡します。
一覧の表ファイルは、列名をそろえてからCSVにします。 委託先ごとに「発生日時」「発生時刻」「Occurred」と列名が違うので、ワークフローの側で対応表を持ち、決まった列名に置き換えてからテキストにします。
AIへ渡す前に整形する
- 形式の確認 … 報告書がPDFであることを確かめます。Office形式で届いたものはPDFに変換します
- パスワードの確認 … パスワードや暗号化のかかったPDFは扱えません。委託先に解除したものを送り直してもらいます
- サイズとページ数の確認 … 1回のリクエストは32MB、600ページ(コンテキストウィンドウが100万トークン未満なら100ページ)まで。超えるものは、本文と付録で分けます
- 一覧の変換 … 表ファイルをCSVのテキストにし、列名を対応表でそろえます
- 時刻の統一 … 一覧の時刻を、日本時間・24時間表記にそろえます。初動までの時間の計算がずれるのを防ぎます
- SLA台帳の版の確認 … 契約の変更で目標値が変わっていないか、台帳の適用開始日を確かめます
- 前月の点検結果の有無 … 初月は前月が無いので、継続課題の照合だけを飛ばします
6番目を軽く見ないでください。 契約を更新して稼働率の目標を上げたのに、台帳が古いままだと、未達を達成と判定します。 台帳には適用開始日の列を持たせ、報告の対象月に合う版だけを渡します。
AIに処理させる
させるのは、SLA台帳の指標ごとに「報告書に何と書いてあるか」を読み取り、測り方が台帳の定義と合っているかを判定することです。 あわせて、あいまいな記述と、前月の継続課題の今月の状況を拾います。
| 見るもの | 判定の仕方 | 判断できないときの扱い |
|---|---|---|
| 指標が報告されているか | 指標名や言い換えで、値の記載を探す | 見つからなければ not_reported |
| 報告値と単位 | 数値と単位をそのまま写す | 複数の値があれば unclear |
| 測り方 | 除外条件・集計期間・数え方が台帳の定義と合うか | 測り方の記載が無ければ unclear |
| あいまいな記述 | 「概ね」「順次」「適宜」「安定稼働」など、数値も期日も無い記述 | 該当箇所を全部写す |
| 継続課題 | 前月の一覧の課題ごとに、今月の記載を探す | 記載が無ければ missing_this_month |
真ん中の行が、この構成でいちばん大事な判定です。 報告書の脚注に「計画停止はすべて除外」とあり、台帳の除外条件が「事前に合意した計画停止のみ」なら、数値がいくつであっても definition_mismatch です。 目標値と比べる前に、比べてよい数字かどうかを決めます。
あいまいな記述は、拾うだけにします。 「概ね安定稼働」が問題かどうかは、その月に障害があったかで変わります。AIには該当箇所を写させ、障害の一覧と並べて人が読みます。
| させないこと | 理由 |
|---|---|
| 報告値と目標値の大小の比較 | プログラムで決める。数値の比較で揺れを出さない |
| 契約の定義での再計算 | 稼働率を計算し直して埋めると、委託先に確かめるべき差が消える |
| 未達に対する減額・是正の要否 | 契約と委託先との関係に関わる。人が決める |
| 委託先の評価の点数付け | 点検の結果から評価を作るかは別の判断 |
| 報告に無い数値の補完 | 前月の値や一覧の件数から推測しない |
2行目がいちばん起きやすい失敗です。 障害の一覧と計画停止の日時を渡しているので、AIは契約の定義で稼働率を計算し直せてしまいます。計算した値を reported_value に入れた瞬間、委託先が契約どおりに報告していないという事実が消えます。
指示内容を固定する
あなたは情報システム部で、運用の委託先から届いた月次の運用報告書を
契約のサービスレベル(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は完了したものとして扱いがちです。記載が無いという事実そのものを、委託先に聞く材料にします。
出力形式を固定する
次の形の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 が false | not_reported |
method_status が mismatch | definition_mismatch |
method_status が not_stated、または値が数値として読めない | unclear |
| 上記以外で、目標値を満たす | met |
| 上記以外で、目標値を満たさない | not_met |
表の上から順に当てはめます。 測り方が違う指標は、数値が目標を満たしていても met にしません。比べてよい数字かどうかを、比べる前に決めるのが、この表の並びの意味です。
根拠の文字列は、プログラムが報告書のテキストと照合します。 evidence が報告書の該当ページに実際にあるかを確かめ、見つからなければ unclear に落とします。 根拠の場所を返す Citations の機能は構造化出力と同時に使えないため、この照合を自前で持ちます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| システムごとのフォルダ | Power Automate のトリガー | 報告書と添付の保存を検知する |
| SLA台帳・計画停止の記録 | SharePoint の読み取り | 定義・目標値・除外条件、合意した停止の日時 |
| Claude API | API呼び出し | 指標の読み取りと、質問の下書き |
| 比較のプログラム(Python) | ワークフローから呼び出し | 数値の比較、根拠の照合、判定 |
| 担当者 | Teams への通知 | 問題ありの件数と点検結果の場所 |
| 課題管理表 | 担当者が更新 | 確認後の質問と継続課題 |
課題管理表へは書き込みません。 この構成が出すのは点検の結果と質問の下書きまでで、課題管理表に何を載せるかは担当者が決めます。委託先と共有している表に、確認前の判定が載るのを避けます。
委託先への送付も自動にしません。 質問の文面は、委託先との関係とその月の事情で変わります。
人が確認する
人が開くのは、not_met / definition_mismatch / not_reported / unclear の行と、missing_this_month の課題だけです。 met の行は、指標名と根拠の文字列を一覧で流し見ます。
definition_mismatchを先に見る … 根拠の文字列と台帳の除外条件を並べ、本当に違うかを確かめます。台帳の書き方があいまいなだけのこともありますnot_reportedを確かめる … 報告書の目次と付録を見て、本当に書かれていないかを確かめます。グラフの中にだけ数字がある報告書は珍しくありませんmissing_this_monthの課題を確かめる … 完了の連絡が別のメールで来ていないかを見ます- あいまいな記述を障害の一覧と並べて読む … 障害があった月の「安定稼働」は質問の対象にします
- 質問を直して送る … 下書きを、定例会で聞くものと書面で聞くものに分けます
- 判定を覆したら記録する … どの指標を、どちらに変えたかを残します
1番目を省かないでください。 definition_mismatch は、委託先に「契約どおりに測っていない」と伝えることに直結します。 台帳の側の誤りで問い合わせると、次の月から委託先は質問を真剣に読まなくなります。
目標は、1件40分です。 問題ありと出る行が1件あたり数行という想定で、それより多い月は、台帳の除外条件が足りていないか、報告書の書式が変わっています。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワード付きのPDFが届く | 扱えないので、解除したものを送り直してもらう |
| 32MBまたはページ数の上限を超える | 本文と付録を分けて投入し、結果を合わせる |
| 添付の一覧が届かない | 24時間待って担当者へ通知。本文だけで点検しない |
| 一覧の列名が対応表に無い | 変換を止め、担当者に対応表の追加を頼む |
| SLA台帳に対象月の版が無い | 点検を止める。古い版で判定しない |
| 報告書の対象月が違う | フォルダの年月と本文の対象期間を比べ、違えば止める |
| 1つの報告書に複数のシステム | システムごとに分けて読ませ、台帳もそれぞれ渡す |
| 根拠の文字列が報告書に見つからない | 該当の行を unclear にして人へ |
| API が応答しない | フォルダの状態を「未点検」のまま残し、再実行する |
上の3行と5行目で、例外のほとんどを占めます。 どれもAIの問題ではなく、受け取り方と台帳の整備の問題です。 委託先に「パスワードを付けない」「本文と一覧を同じメールで送る」と頼むだけで、半分は消えます。
記録を残す
- 受け取った報告書と添付、受け取った日時
- AIに渡した入力(そのとき使ったSLA台帳の版、前月の継続課題、計画停止の記録)
- AIが返したJSONの全文と、プログラムが付けた判定
- 根拠の照合の結果 … 見つかった/見つからなかった
- 人が判定を覆した記録と、その理由
- 委託先へ送った質問と、回答の日付
- 委託先ごと・指標ごとの判定の推移
2つ目で台帳の版を残すのは、契約が途中で変わるためです。 目標値を見直した月の前後で判定の意味が変わり、当時の基準が残っていないと、過去の未達が本当に未達だったのかを説明できません。
最後の行は、委託先との契約更新の材料になります。 同じ指標で not_reported が3か月続くなら、報告の様式そのものを相談します。
04実装レベルの3段階
最小構成では件数がさばけません。 1件ずつ添付するので、月30件には使えません。確かめるための段階です。 半自動化で、1件120分が40分になります。この段階が本記事の想定です。 指標の読み取り、数値の比較、前月との照合、質問の下書きが自動になり、人に残るのは問題ありの行の確認と質問の仕上げです。 本格構成は、委託先が実績値を外から取れる形で出している場合だけ意味があります。 報告書の数字を、監視ツールの元の値で検証できるようになります。ただし、委託先の環境へのアクセスの取り決めが要るため、契約の更新の機会を待って進めるのが現実的です。
05工数削減シミュレーション
導入後 30件 × 40分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 社内の業務システムの運用を複数の会社に委託しており、毎月それぞれから運用報告書を受け取っている企業。契約の別紙にサービスレベルの指標と目標値が書かれているのに、報告書との突き合わせが担当者の目視になっている場合。委託先ごとに報告書の書式が違い、どこに何が書かれているかを担当者しか知らない場合。前月に「対応中」だった課題がいつの間にか報告から消えている、という経験がある場合。
- 委託先が1社で、報告書が数ページに収まり、目視で十分に追える場合。サービスレベルを契約で取り決めておらず、照らし合わせる基準そのものが無い場合(先に基準を決める作業が要ります)。運用の実績値を監視ツールから自社で直接取れており、報告書を読む必要が無い場合。なお、サービスレベルの未達に対して減額や是正を求めるかどうかの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月届いた運用報告書から3件を選ぶ(うち1件は、点検で問題が見つかったことのあるもの)
- その3件について、契約の別紙から指標と目標値と除外条件を書き出し、簡単な表にする
- 報告書のPDFと表を、手元の Claude の画面に添付する
- 「表の指標ごとに、報告書に値が書かれているか、書かれている値、測り方が表の除外条件と合っているかを答えてください。計算し直さないでください。値が無ければ無いと答えてください。根拠のページも書いてください」と指示する
- 当時の担当者の点検と突き合わせる
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ガバナンス上の注意点
この構成で扱うデータ: 社内システムの稼働状況、障害の内容と原因、脆弱性への対応状況、システムの構成情報、委託先の担当者名、そして契約の条件です。
- 外部へ渡す範囲を、点検に必要なページに限る … 運用報告書には、サーバーの名前やIPアドレス、パッチの適用状況が載ることがあります。指標の点検に要らない付録は、渡す前に外します。 脆弱性への対応状況は、攻撃する側にとって価値の高い情報です
- 利用する生成AIのサービスの、入力データの扱いを確かめる … 学習への利用の有無と保持期間を、契約と設定で確かめてから使います
- 委託先の同意を取る … 委託先が作った報告書を外部のサービスで処理することについて、契約の秘密保持の条項と照らし、必要なら委託先に伝えます
- 判定を委託先にそのまま見せない …
definition_mismatchやnot_reportedは、確認前の判定です。人が確かめたものだけを質問として送ります - この構成は契約上の判断を代替しない … サービスレベルの未達に対して減額や是正を求めるか、契約の解釈が分かれたときにどちらを採るかは、情報システム部と法務・購買が決めることです
- 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技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
output_config.format にJSONスキーマを指定すると返答がスキーマに従うこと。enum が使えること。オブジェクトに additionalProperties: false が必要なこと。minimum・maximum などの数値の制約と minLength・maxLength がサポートされないこと | Claude Docs: Structured outputs | 2026-10-06 |
| PDFの文章・画像・図表・表について質問できること。リクエストの上限が32MB、ページ数が600(コンテキストウィンドウが100万トークン未満では100)であること。パスワード・暗号化のないPDFに限ること。各ページが画像としても処理されること。.xlsx・.docx は document ブロックで扱えず、テキストかPDFへの変換が要ること | Claude Docs: PDF support | 2026-10-06 |
| 非機能要求グレードが、ユーザと開発者との認識の行き違いや意図と異なる理解の防止を目的とし、非機能要求項目を網羅的に分類して要求レベルを段階的に示したものであること。項目が6つの大項目ごとに階層的に示されていること | IPA: システム構築の上流工程強化(非機能要求グレード)紹介ページ | 2026-10-06 |
Citations の機能と構造化出力(output_config.format)を同時に使うとエラーになること | Claude Docs: Citations | 2026-10-06 |
サービスレベルの未達にどう対応するかは、契約と委託先との取り決めに従って決めてください。 本記事は、公開仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0574)についてのご相談はこちらから。
