自治体の担当課が業務委託を発注する前に、過去の仕様書と事業の要綱から委託仕様書の下書きを作り、競争性を損なう記載と抜けやすい項目を契約の担当へ挙げる
担当課が業務委託を発注するとき、事業の要綱と過去の同種の仕様書から委託仕様書の下書きを作り、あわせて競争性を損なうおそれのある記載と、抜けやすい項目を一覧にして契約の担当へ回します。担当課は一から書かずに済み、契約の担当は見るべき箇所から確認できます。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- 連携・自動化
- n8n/Power Automate
- 対象業界
- 自治体
- 対象部門
- 総務
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 属人化している/書類作成に時間がかかる/確認ミスが多い
- AIで行う処理
- 生成
- 主な効果
- 品質標準化/属人化解消/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 担当課の職員が、文書管理の仕組みで前回の同じ事業の仕様書を探す
- 見つかれば、日付・期間・数量を今回の値に書き換える。見つからなければ、他の課の似た仕様書を探す
- 事業の要綱と予算の説明を見て、今回の業務の内容が仕様書に反映されているかを確かめる
- 庁内のひな形と点検表を見て、抜けている項目を足す
- 課内の決裁を経て、契約課に回す
- 契約課が仕様書を読み、記載の漏れや、特定の事業者に寄った記載が無いかを確かめる
- 指摘があれば担当課に差し戻し、担当課が直して再び回す
- 人担当課の職員が、作成の依頼の画面で事業名・要綱・予算の説明・委託の種類を選び、今回の条件(期間・場所・数量など)を入力する
- 自動文書管理の仕組みから、同じ事業の過去の仕様書と、同じ委託の種類の他の課の仕様書を取り出す
- 自動生成AIが、庁内のひな形の章立てに沿って仕様書の下書きを作る。要綱にも過去の仕様書にも無いことは【担当課記入】として空ける
- 自動生成AIが、下書きと過去の仕様書から、競争性を損なうおそれのある記載の候補を、根拠の文と理由の区分付きで挙げる
- 自動ひな形の必須項目と照らし、抜けている項目を一覧にする
- 人担当課の職員が下書きを直し、【担当課記入】を埋め、候補の一つ一つに「直した/業務上必要(理由)」を書く
- 人課内の決裁を経て、契約課に回す
- 人契約課が、候補と担当課の回答を先に読み、仕様書を確認する
各工程の詳しい説明を読む
- 担当課の職員が、文書管理の仕組みで前回の同じ事業の仕様書を探す
- 見つかれば、日付・期間・数量を今回の値に書き換える。見つからなければ、他の課の似た仕様書を探す
- 事業の要綱と予算の説明を見て、今回の業務の内容が仕様書に反映されているかを確かめる
- 庁内のひな形と点検表を見て、抜けている項目を足す
- 課内の決裁を経て、契約課に回す
- 契約課が仕様書を読み、記載の漏れや、特定の事業者に寄った記載が無いかを確かめる
- 指摘があれば担当課に差し戻し、担当課が直して再び回す
(a)前任者の仕様書をそのまま引き継ぐ。 2番目で日付と金額だけを直すため、前回の事業の事情で書かれた記載が、理由が分からないまま残ります。 前回の受託者の製品名が業務の内容に書かれていたり、前回だけの特別な作業が入っていたりします。
(b)抜ける項目が毎回同じ。 個人情報の取扱い、再委託の条件、成果物の権利、業務の引き継ぎ。ひな形にはあるのに、前任者の仕様書に無かったために抜けます。 契約課は毎回同じ項目で差し戻しています。
(c)特定の事業者に寄った記載に気づけない。 担当課の職員は、その業務の市場にどんな事業者がいるかを知らないことが多く、前回の受託者の提案書の言葉がそのまま仕様書に入っていても気づきません。 公正取引委員会の調査報告書でも、担当職員が特定の事業者からの情報のみで仕様の設計を行った結果、特定の事業者の技術に偏った仕様になってしまった場合などは、ベンダーロックインにつながりかねないとされています。
(d)差し戻しの往復に時間がかかる。 契約課の指摘はメモで返り、担当課が直して再び回します。1件で2〜3往復することも珍しくなく、入札の公告の予定がずれます。
- 【人】 担当課の職員が、作成の依頼の画面で事業名・要綱・予算の説明・委託の種類を選び、今回の条件(期間・場所・数量など)を入力する
- 【自動】 文書管理の仕組みから、同じ事業の過去の仕様書と、同じ委託の種類の他の課の仕様書を取り出す
- 【自動】 生成AIが、庁内のひな形の章立てに沿って仕様書の下書きを作る。要綱にも過去の仕様書にも無いことは【担当課記入】として空ける
- 【自動】 生成AIが、下書きと過去の仕様書から、競争性を損なうおそれのある記載の候補を、根拠の文と理由の区分付きで挙げる
- 【自動】 ひな形の必須項目と照らし、抜けている項目を一覧にする
- 【人】 担当課の職員が下書きを直し、【担当課記入】を埋め、候補の一つ一つに「直した/業務上必要(理由)」を書く
- 【人】 課内の決裁を経て、契約課に回す
- 【人】 契約課が、候補と担当課の回答を先に読み、仕様書を確認する
6番目で、担当課が候補に答えるのが、この設計の分かれ目です。 候補を消すかどうかではなく、残すならなぜ必要かを書いてもらいます。 契約課は、理由の書かれた候補から読めば、差し戻すべきかをすぐに判断できます。往復が減るのはここです。
3番目で空欄を残すのも、意図してのことです。 期間・数量・回数のような値を生成AIが埋めると、前回の値がそのまま入ります。 前回の値が今回も正しいかは担当課にしか分かりません。
02今回想定するシステム構成
担当課(作成の依頼:事業名・要綱・予算の説明・委託の種類・今回の条件) ▼【トリガー】依頼の送信 Azure Functions(材料の収集) ├──▶ 文書管理の仕組み(同じ事業の過去の仕様書、同じ委託の種類の仕様書) ├──▶ 例規集(要綱の該当の条) └──▶ 庁内のひな形と点検表(章立て、必須項目、競争性の点検の観点) ▼ Azure OpenAI(Microsoft Foundry) ├─ ① 仕様書の下書き(ひな形の章ごと、根拠付き) └─ ② 競争性を損なうおそれのある記載の候補(根拠の文・区分・理由) ▼ Azure Functions ── 必須項目の照合、【担当課記入】の数え上げ ▼ 【担当課が直し、候補に回答】──▶ 課内の決裁 ──▶ 【契約課が確認】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry)の Standard デプロイ | Claude、Gemini |
| 連携 | Azure Functions(材料の収集、照合) | Power Automate、n8n |
| 保管 | Azure Blob Storage(依頼、下書き、候補と回答の記録) | 文書管理の仕組み |
| ひな形 | 庁内の委託仕様書のひな形と点検表(契約課が管理) | ― |
文書管理の仕組みと例規集は、読むだけです。 下書きは文書管理の仕組みとは別の場所に置き、担当課が直して決裁に回した版だけを、従来どおり文書管理の仕組みに登録します。
生成AIに Azure OpenAI を選ぶ理由は、データの扱いが公開されていることです。 Microsoft Learn のデータとプライバシーのページは、プロンプトと応答が他の顧客にも OpenAI にも提供されず、提供元がモデルの改善に使わないこと、モデルはステートレスで、プロンプトと応答をモデルの中に保存しないことを示しています。
デプロイの種類は、処理の場所で選びます。 同じページによると、プロンプトと応答は顧客が指定した地域(ジオグラフィ)の中で処理されますが、Global と付くデプロイではそのモデルが展開されているどの地域でも処理されうるとされます。仕様書は公開を前提とした文書ですが、作成中の下書きには予定価格につながる情報や、現行の受託者の情報が含まれることがあります。地域指定の Standard デプロイを前提にし、庁内の情報セキュリティポリシーで、どのネットワークの端末から使えるかを決めておきます。
出力は構造化出力で受け取ります。 公式のページでは、構造化出力は呼び出しのときに渡した JSON Schema にモデルを従わせる機能で、以前の JSON モードは正しい JSON であることは保証してもスキーマへの厳密な準拠は保証しなかったとされています。章ごとの下書きと候補の一覧を、毎回同じ形で受け取るために使います。
03どうやって実装するのか
処理の起点を決める
担当課の職員が、作成の依頼の画面から依頼を送ったときに動かします。 事業名、要綱、予算の説明、委託の種類(施設管理/窓口/調査・計画/イベント運営/システム保守 など)を選び、今回の期間・場所・数量・回数を入力します。入力が無い値は空のまま送れるようにし、下書きでは【担当課記入】になります。
担当課が下書きを直した後に、候補の点検だけをもう一度動かせるようにします。 担当課が書き足した部分に、新たに特定の製品名などが入ることがあるためです。決裁に回す前に一度、点検だけを動かすのを手順にします。
契約課への回付をきっかけには動かしません。 契約課が見るのは、担当課が直して候補に答えた後の版です。契約課の手元で初めて候補が出る形にすると、往復が減りません。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 作成の依頼 | 事業名、委託の種類、今回の期間・場所・数量・回数、予算額の有無 | 作成の依頼の画面 |
| 要綱 | 事業の目的、対象、内容、実施の方法を定めた条 | 例規集 |
| 予算の説明 | 事業の説明欄の文 | 財務会計の仕組みの出力 |
| 過去の仕様書 | 同じ事業の直近の仕様書、同じ委託の種類の他の課の仕様書(最大3件) | 文書管理の仕組み |
| ひな形 | 章立て、章ごとの必須の記載、定型の文 | 契約課が管理 |
| 点検の観点 | 競争性を損なうおそれのある記載の区分と、その例 | 契約課が管理 |
質を決めるのは、下の2つです。 ひな形が古いと、下書きも古い書き方になります。点検の観点が無いと、生成AIは何を挙げればよいかが分かりません。契約課が、差し戻しの実績から観点の表を作ります。
予定価格や積算の内訳は渡しません。 仕様書の下書きには要らず、渡すと下書きや候補の文に金額が混ざるおそれがあります。 予算額は「あり/なし」だけを持たせます。
点検の観点の区分は、たとえば次のように作ります。
| 区分 | 例 |
|---|---|
| 製品の指定 | 特定の製品名・型番の指定に「同等品可」が無い |
| 実績の要件 | 業務の規模に比べて過大な実績の件数や年数を求めている |
| 地域・資格の要件 | 業務の遂行に要る理由の書かれていない所在地や資格の条件 |
| 現行の情報への依存 | 現行の業務量・データの形式・機器の構成を示さず「現行と同等」とだけ書いている |
| 準備期間 | 契約から業務開始までの期間が、新しい事業者には足りない |
| 既存の仕組みとの互換 | 現行の仕組みとの連携を求めながら、接続の仕様を示していない |
4行目と6行目は、公正取引委員会の調査報告書が取り上げた論点に近いものです。 報告書は、官公庁が仕様書を作る際にその仕様が特定の事業者の技術又は製品に依存している場合、ベンダーロックインにつながりかねないとして、市場で容易に取得できるオープンな標準的技術又は製品を用いることなどを挙げています。報告書は情報システムの調達を対象にしていますが、現行の受託者だけが知っている情報に寄りかかった仕様は、ほかの業務委託でも同じ形で起きます。
データの取得方法を決める
| 取るもの | どこから | どうやって |
|---|---|---|
| 過去の仕様書 | 文書管理の仕組み | 事業名と委託の種類の分類で引く。本文を文字として取り出す |
| 要綱 | 例規集 | 要綱の名称で引き、条ごとに分ける |
| 予算の説明 | 財務会計の仕組み | 事業の番号で出力のファイルから読む |
| ひな形と観点 | 契約課の管理する表 | 版の番号と一緒に読む |
過去の仕様書は、事業名と委託の種類で選びます。 言葉の近さで探すと、名前は似ているが中身の違う事業の仕様書が混ざります。同じ事業の直近1件と、同じ委託の種類の他の課の2件までに絞り、どれを使ったかを記録します。
文書管理の仕組みからの取り出し方は、導入している製品によって違います。 仕様書がPDFで登録されている場合は文字として取り出せるかを確かめ、スキャンした画像だけのものは対象から外します。この部分は個別の実装が必要です。
AIへ渡す前に整形する
- 過去の仕様書の章分け … 過去の仕様書を、庁内のひな形の章に対応させて分けます。対応する章が無い記載は「その他」に寄せ、下書きで扱いを決めます
- 固有の名前の伏せ … 過去の仕様書に書かれた前回の受託者の名前、担当者の氏名・連絡先を伏せます。伏せた箇所は「前回の受託者名」のような印にします
- 日付・金額の印 … 過去の仕様書の日付・期間・金額・数量に印を付けます。生成AIはこれらを今回の値として写さず、今回の依頼の値か【担当課記入】にします
- 要綱の条の番号付け … 要綱を条ごとに分け、下書きの根拠として番号で示せるようにします
- ひな形の必須項目の一覧化 … 必須項目を番号付きで持ち、後の照合に使います
2番目は、点検とも関わります。 前回の受託者の名前を伏せても、その事業者の製品名やサービス名が業務の内容に残っていれば、点検の候補になります。 伏せるのは人や会社の名前で、製品名は伏せずに点検に回します。
AIに処理させる
させることは2つに分けます。 1つ目は仕様書の下書き、2つ目は競争性を損なうおそれのある記載の候補の一覧です。別々の呼び出しにして、下書きを書いた同じ流れで自分の下書きを点検させることはしません。
| させること(下書き) | 内容 |
|---|---|
| 章ごとの記載 | ひな形の章ごとに、要綱・予算の説明・過去の仕様書から今回の事業に当てはまる記載を書く |
| 根拠の表示 | 章ごとに、どの要綱の条、どの過去の仕様書の章を使ったかを書く |
| 空欄の明示 | 期間・数量・回数など今回の値が依頼に無いものは【担当課記入】にする |
| 前回だけの記載の印 | 過去の仕様書にあって要綱に根拠の無い記載は、「前回の仕様書のみ」の印を付ける |
| させること(点検) | 内容 |
|---|---|
| 候補の抽出 | 点検の観点の区分ごとに、当てはまるおそれのある文を写す |
| 理由の記述 | なぜその区分に当たるおそれがあるかを1文で書く |
| 確認の問い | 担当課に確かめたいことを問いの形で書く(例:「この製品でなければならない理由はありますか」) |
| させないこと | 理由 |
|---|---|
| 競争性を損なうかの結論 | 業務の性質で必要なこともある。担当課と契約課が判断する |
| 代わりの書き方の断定 | 「同等品可」で足りるかは業務による。問いの形にとどめる |
| 契約の方法の判断 | 一般競争入札か随意契約かは契約課が決める |
| 金額・数量の推定 | 前回の値を写さない。依頼の値か空欄 |
| 要綱に無い業務の追加 | 委託の範囲は担当課が決める |
いちばん起きやすいのは、「させないこと」の表の4行目の失敗です。 過去の仕様書に「年4回」と書いてあると、生成AIはそれを今回の回数として写します。今回の予算で年4回できるかは担当課にしか分かりません。 日付・金額・数量に印を付ける前処理と、空欄にする指示の両方で防ぎます。
点検を別の呼び出しにする理由は、自分で書いた文を甘く見ないためです。 下書きの流れの中で点検させると、自分が書いた記載を問題なしとする傾向があります。点検の呼び出しには、下書きと過去の仕様書と観点の表だけを渡し、下書きを書いた経緯は渡しません。
指示内容を固定する
下書きの指示:
あなたは市の担当課の職員を手伝い、業務委託の仕様書の下書きを作ります。
下の材料だけを使い、庁内のひな形の章立てに沿って書いてください。
【書き方】
- 章ごとに、要綱・予算の説明・過去の仕様書から今回の事業に当てはまる記載を書いてください。
- 章ごとに、根拠にした要綱の条番号と、過去の仕様書の番号・章を sources に入れてください。
- 期間・場所・数量・回数・人数・金額は、「今回の条件」に書かれた値だけを使ってください。
書かれていなければ【担当課記入】としてください。過去の仕様書の値を写さないでください。
- 過去の仕様書にあって、要綱にも今回の条件にも根拠の無い記載は、
本文に残したうえで only_in_past を true にしてください。
- 伏せ字(【前回の受託者名】など)はそのまま残してください。
- 要綱に無い業務を足さないでください。
- 契約の方法、入札の参加資格の結論を書かないでください。
【ひな形の章立てと必須の記載】{template}
【要綱(条ごと)】{guideline}
【予算の説明】{budget_note}
【過去の仕様書(章ごと)】{past_specs}
【今回の条件】{conditions}
点検の指示:
あなたは市の契約の担当を手伝い、仕様書の下書きを点検します。
下の「点検の観点」に当てはまるおそれのある記載を、もれなく挙げてください。
【挙げ方】
- 当てはまるおそれのある文を、下書きから一字一句そのまま quote に写してください。
- category は観点の区分から1つ選んでください。
- reason には、なぜその区分に当たるおそれがあるかを1文で書いてください。
- question には、担当課に確かめたいことを問いの形で書いてください。
- 問題があると断定しないでください。「〜のおそれ」「〜か確認」で書いてください。
- 書き換えた文を提案しないでください。
- 迷ったものも挙げてください。挙げすぎは担当課の回答で整理します。
【点検の観点(区分と例)】{checkpoints}
【仕様書の下書き】{draft}
【過去の仕様書(参考)】{past_specs}
「迷ったものも挙げる」と書くのは、点検の側では見落としのほうが重いからです。 挙げすぎた候補は、担当課が「業務上必要」と1行書けば済みます。見落とした記載は、入札の後に参加できなかった事業者からの問い合わせで初めて分かります。
「書き換えた文を提案しない」のは、提案の文がそのまま仕様書に入るのを避けるためです。 生成AIの言い換えは、業務の実際を知らずに書かれます。担当課が問いに答え、その答えで自分の言葉で直します。
出力形式を固定する
下書きと点検で、それぞれ次の形のJSONを構造化出力で受け取ります。
{
"request_id": "",
"template_version": "",
"sections": [
{
"section_code": "",
"text": "",
"sources": [""],
"only_in_past": false,
"placeholders": 0
}
]
}
{
"request_id": "",
"findings": [
{
"section_code": "",
"category": "product_spec | experience | region_license | incumbent_info | lead_time | compatibility | other",
"quote": "",
"reason": "",
"question": ""
}
]
}
1つ目の理由は、ひな形の必須項目と照合できることです。 section_code の一覧を必須項目の一覧と突き合わせ、足りない章があれば、担当課の画面の先頭に「抜けている項目」として出します。 第3章の(b)を、生成AIの書きぶりに頼らず機械で止めます。
2つ目は、quote が下書きの中に本当にあるかを確かめられることです。 候補の文が下書きの文字列に含まれていなければ、その候補は捨てます。生成AIが言い換えて写した候補は、担当課がどこを直せばよいか分からなくなるためです。
3つ目は、category で集計できることです。 区分ごとの候補の数と、担当課が「直した」「業務上必要」と答えた数を数えると、どの観点で差し戻しが多いかが分かり、ひな形と観点の表を直す材料になります。公式のページでは、出力の項目の順はスキーマの順に従うとされているので、項目は担当課の画面に出す順に並べておきます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 作成の依頼の画面 | 送信の通知 | 事業名・委託の種類・今回の条件を受け取る |
| 文書管理の仕組み | 読み取り | 過去の仕様書の本文を取り出す |
| 例規集 | 読み取り | 要綱の条を取り出す |
| 財務会計の仕組み | 出力のファイルの読み取り | 予算の説明の文を読む |
| Azure OpenAI | API呼び出し(構造化出力、2回) | 下書きと点検の候補 |
| 担当課の画面 | 表示と入力 | 下書き、抜けている項目、候補と回答の欄 |
下書きは、文書作成ソフトの形式に書き出して担当課に渡します。 章の見出しと【担当課記入】の箇所を目立つ書式にし、候補の文には該当の箇所に印を付けます。 担当課は、ふだん仕様書を作るのと同じ道具で直せます。
人が確認する
担当課と契約課の両方が確かめます。 自動で決裁や公告に進む経路は作りません。
- 担当課:【担当課記入】を埋める … 期間・数量・回数を、今回の予算と事業の計画で決めます
- 担当課:「前回の仕様書のみ」の記載を見直す … 前回だけの事情で書かれた記載は、残すか消すかを決めます
- 担当課:候補に答える … 候補ごとに「直した」か「業務上必要(理由)」を書きます。理由の無い「業務上必要」は回付できないようにします
- 契約課:候補と回答を先に読む … 理由に納得できない候補から、仕様書の該当箇所を読みます
- 契約課:抜けている項目が埋まったかを確かめる
3番目の理由の欄が、往復を減らす中心です。 契約課が差し戻していたのは、記載の是非よりも「なぜこう書いたのかが分からない」ことが多かったはずです。理由が先に書かれていれば、契約課は差し戻さずに判断できます。
目標は、40件をならして1件90分です。 担当課が【担当課記入】を埋めて候補に答える時間と、契約課が確認する時間を合わせたものです。
契約課が「業務上必要」の理由に納得できないときは、差し戻す前に担当課と短く話します。 文書で往復すると、理由の書き直しがまた1往復になります。話した結果は、回答の欄に契約課が追記し、記録として残します。 同じ種類の業務で同じ理由が続けば、点検の観点の例から外すか、ひな形に書き方を示すかを、契約課が年に一度決めます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 同じ事業の過去の仕様書が無い(新しい事業) | 同じ委託の種類の他の課の仕様書とひな形だけで作り、「新規の事業」の印を付ける |
| 過去の仕様書がスキャンした画像だけ | 対象から外し、ひな形と要綱だけで作る |
| 要綱が無い・委託の根拠が予算の説明だけ | 予算の説明を根拠にし、根拠の薄い章に印を付ける |
| 委託の種類が分類に当てはまらない | 「その他」で作り、契約課に知らせる |
quote が下書きに含まれない候補 | 捨てる。捨てた数を記録する |
| 下書きに金額が書かれている | 照合で検知し、該当の章を【担当課記入】に戻す |
| 必須の章が足りない | 抜けている項目として画面の先頭に出す |
| 候補が1件も挙がらない | そのまま通さず、点検の観点の表の版と入力を確かめる。表が読めていないことがある |
| 構造化出力が拒否・途中終了で返る | 下書きを作らず担当課に知らせ、従来の作り方に戻る |
1行目の新しい事業では、点検の役割が大きくなります。 前例が無いぶん、担当課は相談した事業者の資料を参考にしがちで、その事業者の言葉が仕様書に入りやすくなります。 新規の事業の印が付いた案件は、契約課が候補をすべて読むことにします。
記録を残す
- 作成の依頼の内容と、使った過去の仕様書・要綱の条・ひな形と観点の版の番号
- 下書きのJSONと、担当課が直した後の版
- 点検の候補、捨てた候補の数、担当課の回答と理由
- 契約課の確認の結果と、差し戻した場合の理由
- 決裁に回した版と、公告した版
3つ目の担当課の回答は、後から説明を求められたときの記録になります。 入札に参加できなかった事業者から仕様の理由を問われたとき、「業務上必要」とした理由が残っていれば、その場で答えられます。
区分ごとの候補と回答の数は、年に一度ひな形と観点の表を見直す材料にします。 いつも「業務上必要」と答えられる区分は観点の例が広すぎ、いつも「直した」となる区分は、ひな形の側に最初から書き方を示したほうが早いということです。
04実装レベルの3段階
最小構成では下書きは作れません。 点検の観点が当時の差し戻しを拾えるかを確かめる段階です。 半自動化で、1件180分が120分程度になります。 下書きと候補は出ますが、過去の仕様書を探して選ぶ時間と、必須項目の照合が残ります。本格構成で90分になり、この段階が本記事の想定です。 差が出るのは、材料を探す時間と、抜けた項目による差し戻しが無くなるからです。 段階を飛ばさないでください。 半自動化で担当課が回答の欄を書くことに慣れてから、契約課に回す前の点検を必須の手順にするほうが、庁内で受け入れられます。
05工数削減シミュレーション
導入後 40件 × 90分 ÷ 60 = 60 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 施設の管理、調査・計画の策定、イベントの運営、窓口の業務、システムの保守など、担当課が自ら委託仕様書を作って契約の担当へ回す運用をしている市区町村・都道府県。異動のたびに担当者が替わり、前任者の仕様書を手探りで書き換えている場合。契約の担当からの差し戻しが毎回同じ項目で起き、往復に時間がかかっている場合。Azure の契約があり、庁内の情報セキュリティポリシーに沿って生成AIを使える環境がある場合。
- 業務委託の発注が年に数件で、担当者が1件ずつ丁寧に作って足りる場合。委託仕様書のひな形と点検表が庁内で整っておらず、何を書くべきかの決まりが無い場合(先にひな形を作る必要がある)。仕様書の作成支援を外部の事業者に委託している案件。なお、仕様の内容の決定、競争性を損なう記載に当たるかの判断、契約の方法の決定は担当課と契約の担当が行い、この構成はそれを代わりに行いません。
07最小構成で試す方法
- 昨年度に契約課が差し戻した仕様書から10件、差し戻さなかったものから10件を選ぶ
- その20件について、差し戻した理由のメモを集める
- 庁内のひな形と、差し戻しの理由から作った点検の観点の表を用意する
- 1件ずつ、事業者名や担当者名を伏せた仕様書と観点の表を手元のAIサービスの画面に貼り、「観点に当てはまるおそれのある文を、そのまま写して挙げてください。問題があると断定しないでください」と指示する
- 挙がった候補を、当時の差し戻しの理由と突き合わせる
20件は必ず実際の仕様書で作ってください。 下書きの作成より先に、点検の側を試します。 点検が当時の差し戻しの理由を拾えるかが、この構成の成否を決めるためです。
| 出てきた内容 | 判断 |
|---|---|
| 当時の差し戻しの理由が候補に入った | 下書きの作成と連携の構築に進む |
| 候補が多すぎて読めない | 観点の例を絞る。構成は有効 |
| 差し戻しの理由がばらばらで観点にまとまらない | 観点の表が先。 契約課で差し戻しの基準を話し合う |
3行目が出ることは珍しくありません。 差し戻しの理由を集めると、契約課の担当者ごとに見ている観点が違っていたことが分かります。観点の表を作ることそのものが、契約課の確認をそろえる一歩になります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 前回の回数・数量が今回の値として写る | 日付・金額・数量に印を付け、【担当課記入】にする |
| 要綱に無い業務が足される | 要綱に無い業務を足さないと指示し、根拠の無い章に印を付ける |
| 下書きを書いた流れで自分を点検して甘くなる | 点検は別の呼び出しにする |
| 候補の文が言い換えられて場所が分からない | quote が下書きに含まれるかを照合し、含まれなければ捨てる |
| 生成AIが「不適切」と断定する | 「おそれ」と問いの形で書かせる |
| 書き換えの文がそのまま仕様書に入る | 書き換えの提案をさせない |
| 候補が多すぎて読まれない | 観点の例を絞り、区分ごとの回答の数で見直す |
| 前回の受託者の名前が下書きに残る | 前処理で伏せ、照合で検知する |
| 新しい事業で相談先の言葉が入る | 新規の印を付け、契約課が候補をすべて読む |
| 予定価格につながる情報が混ざる | 積算の内訳を渡さず、下書きの金額を検知する |
上の2行は、下書きの側で最も起きやすい失敗です。 どちらも、過去の仕様書をそのまま写したくなる性質から起きます。今回の値は今回の依頼からだけ、と区切ってください。
3行目から6行目は、点検の側の失敗です。 点検は人の判断を助けるもので、判断を置き換えるものではありません。 断定させない、書き換えさせない、を守ってください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 事業の要綱と予算の説明、過去の仕様書(前回の受託者の名前や担当者の連絡先を含む)、作成中の仕様書の下書きです。公開前の発注の情報を含みます。
- 公告前の情報を外へ出さない … 下書きと候補は、公告の前の情報です。庁内の情報セキュリティポリシーで、使える端末とネットワークを決め、地域指定の Standard デプロイを使います
- 予定価格につながる情報を渡さない … 積算の内訳や予定価格は生成AIに渡しません。下書きに金額が出たら検知して消します
- 事業者と担当者の名前を伏せる … 過去の仕様書の前回の受託者名、担当者の氏名・連絡先は、前処理で伏せます
- この構成は契約の判断を代替しません … 仕様の内容、競争性を損なう記載に当たるか、契約の方法は、担当課と契約課が決めることです。 この構成が出すのは下書きと候補だけです
- 候補への回答を記録として残す … 「業務上必要」とした理由は、後から事業者や議会に説明を求められたときの根拠になります
- 特定の事業者の資料を材料に入れない … 事業者から受け取った提案書や見積りの資料を、過去の仕様書と同じ扱いで材料にしないでください。その事業者の言葉が下書きに入り、点検でも気づきにくくなります
誤りが起きた場合のリスクは、特定の事業者に寄った仕様書が点検をすり抜けることと、前回の値が今回の仕様書に残ることの2つです。 前者は点検を別の呼び出しにすることと担当課の回答で、後者は前処理の印と空欄の指示で防ぎます。どちらも、最後は人が読む前提で設計しています。
10まず何から始めるか
1週目:差し戻しの理由を集める
契約課で、昨年度に差し戻した仕様書と理由のメモを集め、よく出る理由を区分に分けます。 これが点検の観点の表の最初の版になります。
2週目:20件で点検を試す
差し戻したものと差し戻さなかったもの20件で、手元のAIサービスに候補を挙げさせます。当時の差し戻しの理由が候補に入るかを最優先で見ます。
3週目:ひな形を見直す
点検の結果と差し戻しの理由から、ひな形の必須項目と定型の文を見直します。 個人情報の取扱い、再委託、成果物の権利、業務の引き継ぎの章が入っているかを確かめます。
4週目:依頼の画面から下書きまでをつなぐ
担当課が過去の仕様書と要綱を選んで送ると、Azure OpenAI で下書きと候補を返すところまでを組みます。この時点では材料は担当課が選びます。
2か月目: 回答の欄と必須項目の照合を足し、契約課に回す前の点検を手順にします。差し戻しの件数を毎月数えます。3か月目以降: 文書管理の仕組みと例規集からの取り出しを足し、1件180分が何分になったかを実測します。差し戻しの理由が「理由が書かれていない」から、内容の議論だけになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 公正取引委員会が、ベンダーロックインの回避により多様な事業者が参入しやすい環境を整えることが重要との認識の下、国の機関と地方公共団体の情報システム調達の実態を調査したこと。ベンダーロックインの定義 | 公正取引委員会: 官公庁における情報システム調達に関する実態調査について(令和4年2月8日) | 2026-10-07 |
| 仕様が特定の事業者の技術又は製品に依存している場合ベンダーロックインにつながりかねないこと。担当職員が特定の事業者からの情報のみで仕様を設計し偏った仕様になる場合があること。自社又は特定社のみが対応できる機能を盛り込んだ仕様書の作成を要求・提示されたことがあると答えた機関が39機関(有効回答1,009の3.9%)であったこと | 公正取引委員会: 官公庁における情報システム調達に関する実態調査報告書 | 2026-10-07 |
| 地方自治法第234条:契約は一般競争入札、指名競争入札、随意契約又はせり売りの方法により締結し、指名競争入札・随意契約・せり売りは政令で定める場合に限ること | e-Gov 法令API: 地方自治法 | 2026-10-07 |
| プロンプトと応答が他の顧客や OpenAI に提供されず、提供元のモデル改善に使われないこと。モデルがステートレスであること。Global のデプロイでの処理の場所 | Microsoft Learn: Data, privacy, and security for Foundry Models sold by Azure | 2026-10-07 |
| 構造化出力が渡した JSON Schema にモデルを従わせること。JSON モードはスキーマへの厳密な準拠を保証しなかったこと。出力の項目の順がスキーマの順に従うこと | Microsoft Learn: How to use structured outputs with Azure OpenAI | 2026-10-07 |
仕様の内容と契約の方法は、各自治体の契約規則と契約の担当の判断によります。 本記事は上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0733)についてのご相談はこちらから。
