Media > AI活用ユースケース > 情報システム > 社内の開発者から出る「この共通部品・社内APIはどう使うか」「この書き方は開発規約に合うか」の質問に、開発規約・設計書・社内APIの仕様を根拠にチャットで答える

社内の開発者から出る「この共通部品・社内APIはどう使うか」「この書き方は開発規約に合うか」の質問に、開発規約・設計書・社内APIの仕様を根拠にチャットで答える

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

開発者が「この社内APIはどう呼ぶか」「この書き方は規約に合うか」をチャットで聞くと、プロジェクトが使っている版を台帳から引き、その版の仕様と開発規約・設計書から根拠付きで答えます。判断の要るものは共通基盤チームへ回します。

サマリー
生成AI
Gemini
AIサービス
Azure AI/Google Vertex AI/OpenSearch
連携・自動化
Python
対象業界
EC/IT・SaaS/小売/金融
対象部門
情報システム/研究開発
対象業務
問い合わせ対応/情報検索
主な課題
問い合わせが多い/属人化している/情報が見つからない
AIで行う処理
検索(RAG)
主な効果
対応スピード向上/属人化解消/教育コスト削減
導入難易度
★★★★☆
実装レベル
本格構成
費用感
RAG・個別開発(大)
人間の確認
条件付き
現在工数
120h/月
AI導入後
48h/月
想定削減
60%
年間削減
864h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 開発者が、やりたいことと書いたコードの一部を、質問用のチャンネルに書き込む
  2. 担当者が、どのプロジェクトか、社内APIと共通部品のどの版を使っているかを聞き返す
  3. 社内Wiki、仕様のページ、README を開いて、該当する箇所を探す
  4. 設計書を見る必要があれば、そのシステムの設計書に自分が入れるかを確かめて開く
  5. 使い方と、該当する規約の条項を答え、必要ならコードの例を書く
  6. 規約に無い書き方や、規約の例外を求めるものは、チームで相談して答える
  7. よく出る質問は、気づいた人が社内Wikiのよくある質問に足す
導入後(After)
  1. 人開発者が、社内チャットの開発支援ボットに質問する(例:「顧客APIで退会済みの顧客を除いて一覧を取りたい。プロジェクトは EC-CART」)
  2. 自動中継プログラムが、書き込んだ人の ID とプロジェクトのコードを受け取る
  3. 自動質問の文に、パスワードやアクセスキーに見える文字列が無いかを確かめ、あれば質問を止めて消すよう促す
  4. 自動プロジェクトの台帳から、使っている社内APIと共通部品の版を引く
  5. 自動質問を「使い方」「規約」「その他」に分け、足りない条件(使う社内APIや部品の名前、言語)を選択肢で聞き返す
  6. 自動回す条件(規約の例外、まだ公開していないAPI、認証と暗号の実装、障害中の不具合)に当たれば、答えを作らずに共通基盤チームへ回す
  7. 自動版と文書の種類で絞り込み、Agent Search(旧 Vertex AI Search)の answer メソッドが、質問した人が見られる文書だけから根拠付きで答える
  8. 自動回答に出たAPIのパスと部品の関数の名前を、その版のAPIの一覧と照らし、無い名前なら回答を出さずに回す
  9. 人開発者は、根拠の仕様のページと規約の条項を開いてから実装する
  10. 人共通基盤チームは、回ってきた質問だけを、聞き取り済みの条件を見て判断する
各工程の詳しい説明を読む
  1. 開発者が、やりたいことと書いたコードの一部を、質問用のチャンネルに書き込む
  2. 担当者が、どのプロジェクトか、社内APIと共通部品のどの版を使っているかを聞き返す
  3. 社内Wiki、仕様のページ、README を開いて、該当する箇所を探す
  4. 設計書を見る必要があれば、そのシステムの設計書に自分が入れるかを確かめて開く
  5. 使い方と、該当する規約の条項を答え、必要ならコードの例を書く
  6. 規約に無い書き方や、規約の例外を求めるものは、チームで相談して答える
  7. よく出る質問は、気づいた人が社内Wikiのよくある質問に足す

(a)版を聞き返すところから始まる。 「顧客APIで退会者を除きたい」と書かれても、v1 と v2 で項目の名前も絞り込みの書き方も違います。担当者はプロジェクトの台帳を開き直し、ここで数分かかります。 聞き返さずに答えると、別の版の書き方を教えてしまいます。

(b)古い版の情報が、検索で先に出る。 社内Wikiのよくある質問には、v1 の頃に書いた答えが残っています。開発者が自分で探して古い答えをまねると、レビューで指摘されるか、本番で動きません。

(c)規約に書いてあるのに、質問が来る。 例外の扱い、ログに出してよい項目、命名の決まりなど、規約にそのまま書いてある内容を説明する質問が、全体のかなりを占めます。それでも開発者が規約を開かないのは、百ページを超える規約のどこを見ればよいかが分からないからです。

(d)判断の要る話が、普通の質問に混ざる。 「納期が近いので、この規約は今回だけ外したい」は使い方の質問ではなく、規約の例外の申請です。 チャットの流れに埋もれると、誰も決めないまま実装が進みます。

  1. 【人】 開発者が、社内チャットの開発支援ボットに質問する(例:「顧客APIで退会済みの顧客を除いて一覧を取りたい。プロジェクトは EC-CART」)
  2. 【自動】 中継プログラムが、書き込んだ人の ID とプロジェクトのコードを受け取る
  3. 【自動】 質問の文に、パスワードやアクセスキーに見える文字列が無いかを確かめ、あれば質問を止めて消すよう促す
  4. 【自動】 プロジェクトの台帳から、使っている社内APIと共通部品の版を引く
  5. 【自動】 質問を「使い方」「規約」「その他」に分け、足りない条件(使う社内APIや部品の名前、言語)を選択肢で聞き返す
  6. 【自動】 回す条件(規約の例外、まだ公開していないAPI、認証と暗号の実装、障害中の不具合)に当たれば、答えを作らずに共通基盤チームへ回す
  7. 【自動】 版と文書の種類で絞り込み、Agent Search(旧 Vertex AI Search)の answer メソッドが、質問した人が見られる文書だけから根拠付きで答える
  8. 【自動】 回答に出たAPIのパスと部品の関数の名前を、その版のAPIの一覧と照らし、無い名前なら回答を出さずに回す
  9. 【人】 開発者は、根拠の仕様のページと規約の条項を開いてから実装する
  10. 【人】 共通基盤チームは、回ってきた質問だけを、聞き取り済みの条件を見て判断する

4番目が、この設計の分かれ目です。 版は台帳の値で決まり、AIの判断は入りません。 AIに任せると、「v1 では〜、v2 では〜」と両方を並べるか、新しい版の書き方だけを返します。

8番目を後段の検査に置いているのも、意図してのことです。 モデルは、それらしいパスや関数の名前を作ることがあります。名前を一覧と照らせば、存在しないAPIの呼び方を教える回答を、文の読み方に頼らずに止められます。

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

構成図
開発支援ボット(社内チャットの質問用チャンネル)
   ▼【トリガー】質問の書き込み(社員・協力会社の ID 付き)
中継プログラム(Python、Cloud Run)
   ├──▶ 秘密の文字列の検知 → 質問を止める
   ├──▶ プロジェクトの台帳:プロジェクト → 社内APIと共通部品の版
   ├──▶ 質問の種類の判定 → 聞き返しの選択肢
   ├──▶ 回す条件 → 共通基盤チームの待ち行列
   ▼
Agent Search(Vertex AI Search)── answer メソッド
   │  データストア:開発規約+設計書+社内APIの仕様(版ごと)
   │               +共通部品の説明(版ごと)+過去の回答
   │  アクセス制御:文書ごとに見てよいグループ
   │  絞り込み:doc_type/api/api_version/lib_version
   ▼
中継プログラム ── 回答のパスと関数の名前がその版の一覧にあるかを確かめる
   ├──▶ 回答・根拠を返す
   └──▶ 一覧に無い・答えられない → 共通基盤チームの待ち行列
役割想定する製品代替候補
検索基盤Vertex AI Search(Agent Search)の answer メソッドAzure AI Search、Amazon OpenSearch Service
生成AIGemini(answer メソッドの回答の生成に使うモデル)─
連携中継プログラム(Python。Cloud Run で動かし、チャット・台帳・検索・待ち行列をつなぐ)Node.js で同じものを書く
認証社内の ID 基盤(Google の ID と同期し、協力会社の人も同じ基盤で管理)Workforce Identity Federation で外部の ID を使う
保管Cloud Storage(規約・設計書・仕様・説明の原本とメタデータ)─

プロジェクトの台帳と、社内APIの一覧は、新しく足すものではありません。 中継プログラムは台帳から版を、OpenAPI の定義ファイルからその版のパスの一覧を読むだけで、どちらにも書き込みません。最初の準備は、台帳の「使っている版」の列を埋めることです。

検索の土台は、Agent Search(Vertex AI Search から改称中)の answer メソッドです。 検索の結果から回答を作り、出典を付けられます。前のセッションの ID を渡すとやり取りを続けられ、質問の言い換えは既定で有効です。回答の文ごとに根拠の強さのスコアを返す設定と、スコアの低い回答を落とす設定があります。

アクセス制御は、検索した人が元の文書を見られる範囲に結果を絞る機能です。 Cloud Storage の文書なら、メタデータの acl_info に見てよい人とグループを書きます。設定はデータストアの作成時にしか選べず、あとから有効にも無効にもできません。 1つの文書に付けられる読み手は3,000までで、グループも1つと数えるので、人ではなくグループで書きます。 なお、この機能はプレビューの扱いです。

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

Step1

処理の起点を決める

起点は、開発者が開発支援ボットに質問を書き込んだことです。 書き込んだ人の ID から、社員か協力会社か、どのチームのグループに入っているかを決めます。回したときにどの担当者の待ち行列に載せるかは、質問した社内APIや部品の持ち主で決めます。

プロジェクトのコードを必須にします。 チャンネルごとにプロジェクトが決まっている場合は、チャンネルから引きます。コードが無いと版が決まらず、版が決まらないと答えを作りません。

1件の質問は、1つのセッションで最後まで続けます。 「では件数が多いときは」のような続けての質問も同じセッションでつなぎ、別のAPIの話は新しいセッションで始めます。 前のAPIの名前が言い換えの中に残るからです。

Step2

入力データを集める

データ中身取得元
質問開発者が書いた質問の文、貼ったコードの一部、選んだ聞き返しの値社内チャット
質問した人の情報社員/協力会社、所属するグループ社内の ID 基盤
プロジェクトの台帳プロジェクトのコード、使っている社内APIと共通部品の版、言語共通基盤チームの表
開発規約命名、例外、ログ、テスト、セキュリティの条項社内Wiki
設計書システムごとの方式設計、連携の設計文書管理
社内APIの仕様パス、パラメータ、応答、エラー、廃止の予定(版ごと)OpenAPI の定義ファイル
共通部品の説明関数、設定、使い方の例(版ごと)リポジトリの README とドキュメント
過去の回答質問、答え、対象の版、置き換えの有無質問用チャンネルの過去の記録を整えたもの
回す条件の表回す値(規約の例外、未公開のAPI、認証と暗号、障害中)共通基盤チームが作る表

質を決めるのは、版の付け方です。 社内APIの仕様と共通部品の説明は、版ごとに別の文書として取り込み、版の番号をメタデータに持たせます。 同じページに「v2 から変わりました」と書き足す運用だと、検索の断片に旧版と新版の記載が混ざります。

貼られたコードは、検索の文に入れません。 検索の文に入れるのは、質問の文と、中継プログラムが決めた条件だけです。コードを丸ごと入れると、変数の名前に引っぱられて関係の無い断片が上に来ます。

Step3

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

規約・設計書・仕様・説明・過去の回答は、Cloud Storage に置いてデータストアに取り込みます。 文書ごとのメタデータに、文書の種類、社内APIや部品の名前、版、見てよいグループを持たせます。

取るものどこから何に使うか
文書の種類(規約/設計書/仕様/説明/回答)メタデータ絞り込みと、根拠の表示の順
APIや部品の名前メタデータ聞き取った対象の文書だけに絞る
版メタデータ台帳で決めた版の仕様と説明だけに絞る
見てよいグループacl_info質問した人が見られない設計書を結果に出さない

形式は、取り込める形にそろえます。 レイアウトパーサーが扱うのは HTML、PDF、DOCX、PPTX、XLSX などで、Markdown は公式の一覧に載っていません。 README は HTML に変換してから置きます。OpenAPI の定義ファイルは、パスとメソッドごとに1ページの HTML に起こし、見出しにパスを、本文にパラメータと応答とエラーを書きます。

絞り込みの式は、APIの名前と版と文書の種類で書きます。 項目を索引可能にしておけば、api: ANY("customer", "COMMON") AND api_version: ANY("v1", "ALL") AND superseded: ANY("false") のように、そのAPIのその版の仕様と、版によらない規約と、置き換えられていない回答だけを引けます。ALL は版によらない規約に付けます。

Step4

AIへ渡す前に整形する

  1. 定義ファイルを起こす … OpenAPI の定義から、パスとメソッドごとのページを版ごとに作ります
  2. パスの一覧を作る … 版ごとに、存在するパスと、共通部品の公開している関数の名前を書き出します
  3. README を変換する … HTML に変換し、版の番号を付けます
  4. 規約を条項ごとに分ける … 条項の番号と見出しが付いた形で取り込みます
  5. 過去の回答を整える … 対象の版と置き換えの有無を付け、パスワードや接続先の書かれた回答は除きます
  6. 見てよいグループを付ける … 設計書ごとに、文書管理の権限と同じグループを acl_info に書きます
  7. 見出しを断片に含める … データストアの作成時に分割を有効にし、includeAncestorHeadings を有効にします

6番目と7番目は、データストアを作る前に決めます。 アクセス制御も分割も、作成のあとでは有効にも無効にもできません。 見出しを含める設定は既定では無効で、APIのページは見出しが無いとどのパスの説明か分かりません。 分割の大きさは100〜500トークンで、既定は500です。

2番目が、この構成でいちばん効きます。 一覧は定義ファイルから機械的に作るので、仕様のページを直し忘れても、一覧は実際の定義のとおりになります。

1番目から3番目は、版を出す手順に組み込みます。 共通基盤チームが新しい版を出すたびに、定義ファイルからのページの作成、一覧の作成、README の変換が自動で走り、データストアへの取り込みまでが同じ流れで終わるようにします。手で取り込む運用にすると、新しい版の文書だけが無い期間ができます。

Step5

AIに処理させる

させるのは、台帳で決めた版のAPI・部品の仕様と規約から、やりたいことの書き方と守る規約の条項を見つけ、根拠を付けて短く返すことです。 版を決めること、秘密の文字列を止めること、回すかどうかは、中継プログラムが行います。

要素中身根拠
使い方呼ぶパスとパラメータ、使う関数と設定仕様、説明
守る規約関係する条項の番号と要点開発規約
注意廃止の予定、エラーの扱い仕様
根拠の場所仕様のページ、規約の条項、設計書の節全部

answer メソッドの設定は次のようにします。

設定値理由
session質問ごとのセッション聞き返しと続けての質問をつなぐ
includeCitations有効仕様のページと規約の条項を付ける
ignoreLowRelevantContent有効文書に無い話に答えない
ignoreNonAnswerSeekingQuery有効あいさつや雑談で検索しない
groundingSpec の filteringLevelFILTERING_LEVEL_HIGH根拠の弱い回答を出さない
filterAPIや部品の名前、版、置き換えの有無別の版の記載を混ぜない
preamble下の指示答え方の規則を与える
させないこと理由
版を決める台帳の値で決める
仕様に無いパスやパラメータを書く存在しない呼び方を教えることになる
規約の例外を認める共通基盤チームとアーキテクトが決める
コードレビューの合否レビューの担当者が決める
一般的な書き方で補う社内の規約と違いうる

2行目がいちばん起きやすい失敗です。 仕様に近い記載が見つかると、モデルは足りないところを一般的なAPIの作法で埋め、それらしいパラメータを書きます。 書き方で禁じ、名前は後段の一覧で照らします。

Step6

指示内容を固定する

answer メソッドの preamble に、次の指示を入れます。

あなたは共通基盤チームの担当者として、
社内の開発者から、共通部品・社内APIの使い方と開発規約の質問に答えます。
読むのは、実装の手を止めてチャットを見ている開発者です。短く答えてください。

【前提】
検索の文の最初に、プロジェクト、言語、対象の社内APIや部品の名前、
台帳で決まった版が並んでいます。
版はすでに決まっています。その版の記載だけを使って答えてください。

【答え方】
1. 最初に、呼ぶパスとパラメータ、または使う関数と設定を、仕様の記載のとおりに書いてください。
2. 次に、守る規約の条項の番号と要点を書いてください。
3. 仕様に廃止の予定やエラーの扱いがあれば書いてください。
4. 根拠にした仕様のページ、規約の条項、設計書の節を書いてください。
5. コードの例は、仕様と説明に例があるときだけ、その例を写して示してください。

【厳守事項】
- 検索結果の文書に書かれていることだけで答えてください。
  一般的な書き方や他社のライブラリの例で補わないでください。
- 仕様に無いパス、パラメータ、関数の名前を書かないでください。
- 別の版の書き方を書かないでください。「版によって異なる」と書かないでください。
- 規約を外してよいと書かないでください。
- 「レビューを通る」「問題ない」と書かないでください。
- 該当する記載が見つからないときは、
  「仕様と規約に該当する記載が見つかりません。共通基盤チームへ回します」
  とだけ書いてください。

「仕様に無い名前を書かない」「例は写して示す」が、この指示の要です。 コードの例を自由に書かせると、仕様に無い引数が一つ混ざるだけで、開発者はその例を貼って動かず、また質問します。 例は文書にあるものだけにし、名前は後段で照らします。

検索の文は、中継プログラムが組み立てます。 例えば「プロジェクト:EC-CART、言語:Java、対象:顧客API v1、共通ログ部品 3.2。退会済みの顧客を除いて一覧を取るには」のように、条件を先に並べ、開発者の質問の文を最後に足します。

Step7

出力形式を固定する

answer メソッドの応答を、中継プログラムが次の形に整えて、チャットと記録に渡します。

{
  "inquiry_id": "",
  "session_id": "",
  "project": "EC-CART",
  "category": "usage | guideline | other",
  "conditions": { "language": "", "targets": [ { "name": "customer-api", "version": "v1" } ] },
  "secret_detected": false,
  "status": "answered | escalated | skipped | blocked",
  "escalate_reason": "guideline_exception | unreleased_api | auth_crypto | incident | name_not_in_spec | version_unknown | not_in_docs | skipped | user_request | none",
  "answer_text": "",
  "mentioned_names": [ { "kind": "path | function", "name": "", "in_spec": true } ],
  "refs": [ { "doc_type": "guideline | design | api_spec | lib_doc | qa", "title": "", "section": "", "version": "", "uri": "" } ],
  "feedback": "resolved | escalated_after | wrong | none"
}

1つ目の理由は、mentioned_names を回答の文と別に持てることです。 中継プログラムが回答の文からパスと関数の名前を拾い、その版の一覧と照らして in_spec を入れます。1つでも false があれば、回答を出さずに name_not_in_spec で回します。

2つ目は、conditions.targets に版を残せることです。 同じ質問でも版で答えが違うので、後から回答を見直すときに、どの版の前提で答えたかがすぐ分かります。

3つ目は、escalate_reason で回った理由を数えられることです。 not_in_docs が多いAPIは仕様の書き足しが要るもの、version_unknown が多ければ台帳の版の列が埋まっていないことが分かります。

Step8

システムへ連携する

つなぎ先方式内容
社内チャットボットの受信と返信質問を受け、聞き返しと回答をスレッドに返す
社内の ID 基盤ログインとグループ社員/協力会社と、所属するグループを決める
プロジェクトの台帳読み取り使っている版を引く
APIと部品の名前の一覧読み取り回答の名前を照らす
Agent Searchanswer メソッドの呼び出し見てよい文書だけから回答を作る
共通基盤チームの待ち行列書き込み回す質問を、条件と一緒に担当別に載せる
問い合わせの記録書き込み質問・条件・回答・評価を残す

リポジトリと台帳には、書き込みません。 回答から仕様の誤りが分かっても、ボットからは直しません。仕様の直しは、共通基盤チームが定義ファイルを直して版を出す手順で行います。

Step9

人が確認する

開発者は、回答を読んだあと、根拠の仕様のページを開いてから実装します。 回答の上には、台帳から引いた版を並べて表示します。

  1. 版が合っているかを見る … 自分のプロジェクトが本当にその版を使っているかを確かめます
  2. 根拠を開く … 仕様のページと規約の条項を開き、回答と同じかを見ます
  3. 評価を付ける … 解決した/共通基盤チームへ回した/誤りを選びます

1番目を軽く見ないでください。 台帳の版の列は、版を上げた開発チームが書き換え忘れることがあります。 回答が動かなかったら、まず台帳と実際の依存の設定を見比べます。

共通基盤チームは、回ってきた質問だけを見ます。 guideline_exception はアーキテクトと相談して決め、認めた例外は規約の例外の一覧に足します。

目標は、480件をならして1件6分です。 ボットで解決した質問の記録の確認と、回ってきた質問を担当者が判断する時間の平均です。

Step10

例外に対処する

起きること対応
質問にパスワードやアクセスキーに見える文字列がある答えを作らず blocked。書き込みの削除と、秘密の値の変更を促す
プロジェクトのコードが台帳に無い打ち直しを促し、見つからなければ version_unknown で回す
台帳の版が空答えを作らず version_unknown で回し、台帳の記入を頼む
規約の例外を求める答えを作らず guideline_exception で回す
まだ公開していないAPIの質問答えを作らず unreleased_api で回す
認証・暗号の実装の質問答えを作らず auth_crypto で回す
回答の名前が一覧に無い回答を出さず name_not_in_spec で回す
検索の呼び出しが失敗する「回答を作れませんでした」と表示し、チャンネルの担当者を示す

6行目は、答えられても回します。 認証と暗号は、仕様どおりに書いても使い方を一つ誤るだけで穴になります。 共通基盤チームが毎回目を通す範囲として、最初から決めておきます。

Step11

記録を残す

  • 質問の文、選んだ聞き返しの値、日時、書き込んだ人の区分
  • 台帳から引いた版と、そのときの台帳の更新日
  • 中継プログラムが組み立てた検索の文と、使った絞り込みの式
  • answer メソッドの応答の全文(回答、出典、根拠のスコア、回答しなかった理由)
  • 回答から拾った名前と、一覧との照合の結果
  • 回す・回さないの判定と、その理由、共通基盤チームが最終的に答えた内容

貼られたコードは、記録に残しません。 秘密の文字列の検知をすり抜けたものが混ざるおそれがあるからです。残すのは質問の文と条件だけにします。

2行目は、版を上げたあとで効きます。 「この回答は v1 の前提だった」と分かれば、v2 に移ったプロジェクトに同じ回答を引かせない置き換えの範囲が決まります。

04実装レベルの3段階

最小構成:仕様・説明・規約を手元のAIサービスに読み込ませ、担当者が条件を貼って聞く / 該当するページと条項の検索
半自動化:上記+データストアを作り、担当者がチャンネルの質問を見ながら検索画面で聞く / 根拠付きの回答と、版・APIの絞り込み
本格構成:上記+開発者がボットに直接聞き、台帳からの版の決定、名前の照合、回す判断を行う / 質問の受け付けから回答・引き継ぎまで

半自動化で、1件15分が10分程度になります。 探す時間は縮みますが、版の聞き返しと回答を書く手間が残ります。本格構成で6分になり、この段階が本記事の想定です。 差が大きいのは、版が台帳から最初に決まり、開発者が自分で答えを受け取るからです。 段階を飛ばさないでください。 半自動化の1か月で、どの版の文書が足りないか、どの質問を回すべきかが見えます。そこを直してから開発者に開くほうが、誤りの評価が減ります。

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

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

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

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

AI活用について相談する

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

向いている
  1. 社内と協力会社あわせて百名以上の開発者が、共通部品(認証・ログ・帳票などのライブラリ)と社内APIを使って複数のシステムを作っている会社。開発規約と社内APIの仕様が文書になっていて、共通基盤チームのチャットに「どう呼ぶのか」「規約に合うか」という質問が毎月数百件届いている場合。社内APIや共通部品に複数の版が並行して動いている場合。
向いていない
  1. 開発者が十数名で、共通基盤の担当者が全員の質問にその場で答えられる場合。開発規約や社内APIの仕様が文書になっておらず、ソースコードと担当者の記憶にしかない場合(根拠にする文書が無いので、まず仕様と規約を書き起こすのが先です)。コードレビューの合否をAIに任せたい場合(この構成は規約と仕様の該当箇所を示すだけで、合否はレビューの担当者が決めます)。

07最小構成で試す方法

  1. 過去3か月に質問用のチャンネルに届いた質問から30件を選ぶ(版の違いで答えが変わった質問と、規約を読み上げただけの質問を数件ずつ入れる)
  2. その30件について、担当者がどの仕様と規約を見てどう答えたかを記録から拾う
  3. 該当する版の仕様のページ、共通部品の説明、開発規約を、手元のAIサービスに資料として読み込ませる
  4. プロジェクトと版を条件として貼り、「添付の資料だけを根拠に、使い方と守る規約を答えてください。資料に無いパスや関数は書かず、別の版の書き方も書かないでください」と指示する
  5. 出てきた回答を、当時の担当者の回答と突き合わせる
出てきた内容判断
当時と同じ根拠で同じ答えが出たデータストアの構築に進む
資料に無いパラメータを書いた指示の書き方と名前の照合で直る。構成は有効
該当する記載が仕様に無い仕様の書き足しが先。 検索の問題ではない

3行目が出たら、 その質問を共通基盤チームの仕様の改訂の候補に入れ、同じ30件で試し直してください。

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

問題対策
仕様に無いパラメータを書く書き方を禁じ、回答の名前を版ごとの一覧と照らす
別の版の書き方で答える台帳で版を決めて絞り込み、版ごとに別の文書にする
見てはいけない設計書の内容が出る作成時にアクセス制御を有効にし、グループで acl_info を書く
README が取り込めないMarkdown は一覧に無い。HTML に変換して置く
APIのページがどのパスのものか分からない作成時に includeAncestorHeadings を有効にする。後から変えられない
質問にアクセスキーが貼られる検知して止め、記録にも残さない
台帳の版が古い回答の上に版を表示し、version_unknown の件数を見る
規約の例外がボットで決まってしまう回す条件に入れ、アーキテクトが決める

上の3行が、この構成の失敗のほとんどです。 どれも、正しい文書を引いているのに、その版とその人には当てはまらないという失敗です。

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

この構成で扱うデータ: 開発規約、設計書、社内APIの仕様、共通部品の説明、過去の回答、開発者の質問の文です。設計書には、決済や人事のシステムの方式や接続先が含まれます。

  1. 見てよい範囲を元の権限と合わせる … 設計書の acl_info は文書管理の権限と同じグループで書き、協力会社の人が入るグループと社員だけのグループを分けます
  2. 秘密の値を入れさせない … パスワード、アクセスキー、接続先の文字列は、質問の段階で検知して止めます。過去の回答を取り込むときも除きます
  3. 規約の例外とレビューの合否をAIに決めさせない … ボットが示すのは規約の条項と仕様の記載までで、例外を認めるか、レビューを通すかは人が決めます
  4. 認証と暗号の質問は人が見る … 答えられる記載があっても回し、共通基盤チームが毎回目を通します
  5. 協力会社との契約と照らす … 協力会社の開発者に設計書の内容を返すことが、委託の契約の秘密保持の範囲に入っているかを先に確かめます

誤りが起きた場合のリスクは、存在しない呼び方や別の版の書き方で実装されることと、見てはいけない設計書の内容が返ることの2つです。 前者は台帳の版と名前の照合で、後者はアクセス制御で防ぎます。

10まず何から始めるか

1週目:台帳の版の列を埋める

40本のシステムについて、使っている社内APIと共通部品の版を台帳に書きます。あわせて、定義ファイルから版ごとのパスの一覧を作る仕組みを用意します。

2週目:30件で試す

過去の質問から30件を選び、手元のAIサービスに該当する版の仕様と規約を読み込ませて聞きます。資料に無いパラメータを書いていないか、別の版の書き方が混ざっていないかを最優先で見ます。

3週目:見てよいグループと回す条件を決める

設計書ごとに見てよいグループを決め、文書管理の権限と突き合わせます。「規約の例外」「未公開のAPI」「認証と暗号」「障害中」を中心に回す条件の表を作ります。

4週目:データストアを作る

アクセス制御・分割・見出しの設定を決めて、規約・設計書・仕様・説明・回答を取り込みます。共通基盤チームが検索画面で使い、自分の回答と比べます。

2か月目: 中継プログラムとボットを作り、プロジェクトを3つに絞って試します。回った理由を毎週数えます。3か月目以降: 全プロジェクトに広げ、1件15分が何分になったかを実測します。共通基盤チームに届く質問が、規約の例外と仕様に無いものだけになった時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-10-08/最終更新:2026-10-08
確認した内容情報源確認日
Vertex AI Search が Agent Search へ改称中であること。answer メソッドが前のセッションの ID でやり取りを続けられ、質問の言い換えが既定で有効なこと。includeCitations、ignoreLowRelevantContent、ignoreNonAnswerSeekingQuery、preamble、filter。groundingSpec の filteringLevel(FILTERING_LEVEL_LOW/HIGH)で根拠のスコアの低い回答を落とせること、文ごとに根拠のスコアが付くことGoogle Cloud: Get answers and follow-ups2026-10-08
絞り込みの ANY()、比較の演算子、AND/OR、項目を索引可能にする必要があることGoogle Cloud: Filter search for structured or unstructured data2026-10-08
レイアウトパーサーが HTML・PDF・DOCX・PPTX・XLSX・XLSM の表と見出しを検出すること(TXT はデジタルパーサーのみで、Markdown は記載が無いこと)。分割の大きさが100〜500トークン(既定500)、includeAncestorHeadings が既定で無効、分割は作成後に切り替えられないことGoogle Cloud: Parse and chunk documents2026-10-08
アクセス制御が検索した人の見られる文書に結果を絞ること、Cloud Storage の非構造化データではメタデータの acl_info の readers に user_id/group_id を書くこと、データストアの作成時にしか選べないこと、1文書の読み手が3,000まででグループも1と数えること、ID 基盤の設定が要ること、プレビューであることGoogle Cloud: Set up data source access control2026-10-08

規約の例外を認めるか、レビューを通すかは、自社の共通基盤チームとアーキテクトの判断に従ってください。 本記事は Google Cloud の公式ドキュメントで確認できた範囲だけを扱っています。

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

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

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

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