1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

検索・回答プロファイルの「回答ルール」を試す:必ず添える一言と、先に聞く一言を RAG に教える

1
Posted at

初めに

社内の問い合わせに RAG で答えていると、こんな場面によく出会います。

「海外出張の日当はいくら?」
→ AI は規程の表から日当の額を正しく答える
→ でも、渡航の 30 日前までに出す「安全確認の届出」には一言も触れない
→ 担当者なら必ず添える一言が、AI の回答には出てこない

資料は正しく、回答も間違ってはいません。足りないのは 「この話題なら、これも必ず添える」「この質問なら、先にこれを聞く」という答え方の決まり です。

Production Ready RAG の検索・回答プロファイルには、この決まりを登録する 「回答ルール」 という機能があります。この記事では、合成のテスト文書で回答ルールを登録し、ルールがあるとき・ないときで回答がどう変わるか、効かないのはどんなときかを実際の画面で確かめます。

この記事のテスト文書・会社名・部署名・内線番号は、すべて記事のために作った架空のものです。2026 年 10 月 22 日時点の機能で確かめています。

先に結論

先に結論を書くと、回答ルールはこういうものです。

項目 内容
何を書くか 答えそのものではなく、答え方の決まり(必ず添えること・分けて答えること・先に確かめること)
どこに置くか 検索・回答プロファイルの「プロファイルの知識 › 回答ルール」(プロファイルごと)
いつ使われるか 質問の文に ルール名か照合キーワードがそのまま含まれるとき(部分一致。意味の近さでは当たらない)
何が変わるか ① ルールの内容が回答の生成に渡る ② 当たった語とルール名が検索文に足される ③ 「回答前の確認」を付けると、チャットで先に聞き返す
AI 照合は LLM も埋め込みも使わない(0.1 秒未満)。ルールの内容は「回答の指示」で、資料の根拠にはならない

処理の流れはこうです。

テスト用のデータ

ナレッジベースと検索・回答プロファイル

ナレッジベース「Qiita検証_回答ルール」に文書を 1 件入れ、同じナレッジベースを検索する検索・回答プロファイルを 2 つ作りました。

プロファイル 回答ルール
Qiita検証_回答ルールあり 3 件(うち 1 件に回答前の確認)
Qiita検証_回答ルールなし なし(比較用)

01_profile_list.png

テスト文書

「出張旅費規程(サンプル)」(PDF・5 頁)です。章節は解析エンジンの見出しから 10 件取れています。

頁 内容
p.2 1. 目的と対象(「管理職」は課長以上、それ以外は「一般社員」)
p.3 2. 宿泊費 / 2.1 一般社員の宿泊費(1 万円、東京 23 区・大阪市は 1.2 万円)/ 2.2 管理職の宿泊費(1.4 万円、同 1.6 万円)
p.4 3. 日当(表:国内・海外 × 一般社員・管理職)/ 4. 交通費(タクシーは公共の交通機関が無いときと深夜だけ)
p.5 5. 海外出張(渡航の 30 日前までに申請と「渡航の安全確認の届出」)/ 6. 精算 / 7. 問い合わせ先

金額は「一泊一万四千円」のように漢数字で書いています(後で効いてきます)。

回答ルールを登録する

置き場所

「ナレッジ構築 › 検索・回答プロファイル」でプロファイルを開き、下の「プロファイルの知識」の 「回答ルール」 タブです。タブは回答で使われる順(Approved FAQ → 用語・同義語 → ドメインキーワード → 回答ルール → 業務ガイド)に並んでいます。

02_rules_list.png

1 件の中身

一覧の行を押すと、下に編集の欄が開きます。

欄 内容
ルール ID 英数字の識別子(MCP の conditions では rule:<ID> で使う)
ルール名 一覧に出る名前。ルール名も照合に使われる
照合キーワード 1 行に 1 つ(最大 32)。質問の文にこの語が含まれると当たる
ルール内容 回答の生成に渡す指示(実行時は 800 字まで)
回答で使う OFF にすると一覧の状態が「無効」になり、照合されない

今回登録した 3 件はこれです。

ルール名 照合キーワード ルール内容(要約) 狙い
海外出張の安全確認 海外出張、渡航 海外出張の質問には、渡航の 30 日前までの「渡航の安全確認の届出」を必ず添える 必ず添える一言(資料 p.5 にある)
宿泊費の上限 宿泊費、ホテル代 上限は役職と地域で違う。役職が分かれば、その役職の上限だけを答える + 回答前の確認 先に聞き返す
タクシーの利用 タクシー タクシーについて答えるときは、一回あたりの上限は 5,000 円であることを添える 資料に無い事実を書いたら?

3 件目は、わざと資料に書いていない「上限 5,000 円」を入れた、失敗例の確認用です。

照合テスト

右の「照合テスト」に質問を入れると、保存しないまま、当たるルールと検索文を確かめられます。

03_rule_edit_test.png

ここで分かることが 2 つあります。

  • 「一致した回答ルール」に「海外出張の安全確認」が出る
  • 「拡張後の検索文」が 海外出張の日当はいくら? 海外出張 海外出張の安全確認 になる。当たった照合キーワードとルール名が検索文に足されるので、日当(p.4)だけでなく海外出張の節(p.5)も検索で拾いやすくなります

一方、「シンガポール出張の日当はいくら?」は当たりません。

04_rule_test_miss.png

照合は 質問の文にその語がそのまま含まれるか(全角・半角や大文字・小文字の違いは吸収)だけで決まります。意味の近さでは当たらず、「用語・同義語」で登録した同義語も照合には使われません。

回答前の確認

ルールの編集の下に「回答前の確認」があります。「宿泊費の上限」には、役職を聞く確認を付けました。

05_clarification_editor.png

欄 今回の値(一般社員 / 管理職) 選んだときの効き方
確認事項 あなたの役職はどちらですか? カードの見出し
表示名・説明 一般社員(課長未満の社員)/ 管理職(課長以上の社員) 選択肢。表示名が質問に含まれていれば聞き返さない
検索に足す語 一般社員 / 管理職 検索文に足す。この語が質問に含まれていても聞き返さない
回答に渡す前提 利用者は一般社員(課長未満)である。/ 管理職… 回答の生成に渡す
対象の章節 2.1 一般社員の宿泊費 p.3 / 2.2 管理職の宿泊費 p.3 その章節の頁の資料だけから回答する

選択肢は 2〜8 個(自由入力だけの確認も可)で、「その他(自由入力)」は常に出ます。

曖昧な質問の扱い(プロファイルの設定)

プロファイルの設定の「回答前の確認」で、確認を出すかどうかを決めます。

06_policy.png

値 動き
確認してから回答する(既定) ルールに当たり、答えが質問に無ければ確認を出す
前提を示して回答する 確認を出さず、決まらない点を前提として示して回答する

この設定は業務ガイドの条件の確認にも同じく効きます。

ルールがないとき・あるとき

必ず添える一言(海外出張の安全確認)

ルールなし:日当の額は正しく答えますが、届出には触れません。処理の経過の「用語・ルールの確認」は「未登録」です。

07_answer_without_rule.png

ルールあり:同じ質問で、日当(p.4)に加えて「渡航の 30 日前までに…『渡航の安全確認の届出』を提出する必要があります」(p.5)が入りました。届出の説明にも 資料 p.5 の根拠が付いています。「用語・ルールの確認」には「一致: ルール 海外出張の安全確認」が出ます。

08_answer_with_rule.png

ルールの内容が回答の指示になり、さらにルール名が検索文に足されて p.5 の節が検索で拾われたことで、資料の根拠つきで添えられています。チャットで 2 回、MCP で 1 回試し、3 回とも届出が入りました。

当たらないとき:「シンガポール出張の日当はいくら?」では「一致なし」になり、回答は日当だけで、届出は出ませんでした。照合テストのとおりです。

09_no_match.png

国名・都市名でも添えたいなら、照合キーワードにその語を足すしかありません。

先に聞き返す(宿泊費の上限)

ルールなし:「宿泊費の上限はいくら?」には、一般社員と管理職の両方の上限を並べて答えます。間違いではありませんが、利用者は自分の行を探して読むことになります。

ルールあり:チャットでは、回答の前に確認のカードが出ます。選択肢の下に、選んだときに絞る章節が表示されます。

10_chat_confirm.png

「管理職」を選ぶと、管理職の上限だけを答え、末尾に「(対象: 「qiita_travel_rule.pdf」の「2.2 管理職の宿泊費」(p.3))」が付きます。利用者の発言の下には「回答前に確認した内容」が残り、「範囲を指定せずに質問し直す」ボタンも出ます。

11_answer_after_confirm.png

章節の絞り込みは 頁の単位 です。今回は 2.1 と 2.2 が同じ p.3 にあるため、AI に渡した 3 件には一般社員の段落も入っていました。それでも「利用者は管理職である」という前提が渡るので、回答は管理職の値だけでした。選択肢ごとに章節の頁が分かれている文書ほど、絞り込みがはっきり効きます。

質問に答えが入っているとき:「管理職の宿泊費の上限はいくら?」は、表示名「管理職」が質問に含まれるので、カードを出さずに管理職の上限だけを答えました。

12_answer_role_in_question.png

この画像では、資料のとおりの段落に「要注意:システムの検査で注意が必要」が付いています。資料の「一泊一万四千円」(漢数字)を、回答が「14,000円」(算用数字)で書いたため、数値の照合が同じ値と見なせなかったものです。回答が漢数字のまま書いた回には付きませんでした(チャット 3 回中 2 回で発生)。Issue #3070 にしました。

資料に無い事実をルールに書くと(タクシーの利用)

ルールなし:タクシーは公共の交通機関が無いときと深夜だけ使える、と資料のとおりに答えます。

ルールあり:ルールに書いた「一回あたりの上限は 5,000 円」が回答に入りますが、本文では 「資料の出典を確かめられない説明」に分けられ、「未確認」の印 が付きます。

13_rule_fact_unverified.png

回答ルールは回答の指示で、資料の根拠ではありません。事実はナレッジベースの文書に書き、ルールには「何を添えるか」「どう分けて答えるか」だけを書くのが正しい使い方です。

ただし、冒頭の要約の 1 文(「…1回あたりの上限は5,000円です。」)には印が付いていません。本文では未確認なのに、最初に読む 1 文では事実のように読めます(チャット・MCP で 4 回とも同じ)。Issue #3068 にしました。また 4 回中 1 回は、ルールの文がほぼそのまま「…上限が5,000円であることを添えてください。」と回答に出ました。ルールの内容は「〜を添える」のような指示の形で書いても、回答に写ることがあります。

「前提を示して回答する」にしたとき

プロファイルの「曖昧な質問の扱い」を「前提を示して回答する」にすると、確認のカードは出ません。うまくいった回は、役職ごとの上限を両方示し、「役職が不明なため…ご自身の役職を教えてください」と添えました。

14_assume_answer.png

一方で、資料に両方の値があるのに「資料だけでは回答を確定できません」と返す回がありました(チャット 3 回中 2 回、MCP 3 回中 1 回)。

15_assume_refuse.png

ルールが無いプロファイルなら両方の値を答える質問なので、この設定にしたときだけ悪くなっています。Issue #3069 にしました。直るまでは「確認してから回答する」(既定)のままがおすすめです。

RAG 検索と MCP では

RAG 検索の画面 では、回答前の確認は出ません。「宿泊費の上限はいくら?」に、両方の役職の上限を答えました。設定の説明も「チャットで曖昧な質問に回答する前に…」となっていて、確認はチャットの機能です(業務ガイドの条件は RAG 検索でも文で聞き返すので、そこは違います)。

16_rag_search.png

MCP の rag_search では、outcome=needs_clarification と次の確認が返ります。

"clarifications": [{
  "condition_id": "rule:hotel-limit",
  "label": "宿泊費の上限",
  "question": "あなたの役職はどちらですか?",
  "options": ["一般社員", "管理職"],
  "multiple": false
}]

conditions に {"rule:hotel-limit": "管理職"} を入れて呼び直すと、チャットで選んだときと同じく管理職の上限だけを答え、「(対象: …2.2 管理職の宿泊費(p.3))」が付きました。確認せずに答えさせたいときは skip_clarification: true です。

「回答で使う」を OFF にする

ルールを消さずに止めたいときは、「回答で使う」を OFF にして保存します。一覧の状態が「無効」になり、照合テストでも当たらなくなります。ON に戻せば、また当たります。なお、ルールを編集して保存しても、そのルールの回答前の確認の設定は残りました。

17_rule_off.png

試した結果のまとめ

質問 ルールなし ルールあり
海外出張の日当はいくら? 日当だけ(p.4) 日当 + 届出(p.4・p.5。3 回とも)
シンガポール出張の日当はいくら? — 一致なし → 日当だけ
宿泊費の上限はいくら? 両方の役職 確認のカード → 選んだ役職だけ(p.3)
管理職の宿泊費の上限はいくら? 管理職 カードなしで管理職だけ
タクシーは使える? 利用条件 利用条件 + 上限 5,000 円(未確認の印。要約には印なし)
宿泊費の上限はいくら?(前提を示して回答する) — 条件別に答える回と、回答できないと返す回がある

回答ルールを書くときのコツ

  1. 事実は文書に、決まりはルールに。 ルールの内容は根拠になりません。資料に無い数値や手順をルールに書くと「未確認」になります。
  2. 添えたい内容が資料にあるなら、その語をルール名か照合キーワードに入れる。 ルール名と当たった語が検索文に足されるので、添えたい節が検索で拾われ、根拠つきで添えられます。
  3. 照合キーワードは、利用者が実際に書く語を並べる。 部分一致だけで、意味の近さや同義語では当たりません。「海外出張」だけでは「シンガポール出張」に当たりません。
  4. 短すぎる語を避ける。 部分一致なので、「海外」のような短い語は関係の無い質問にも当たります。
  5. 条件で答えが分かれるなら「回答前の確認」。 選択肢の表示名と検索に足す語は、利用者が質問に書きそうな語にしておくと、書いてあるときは聞き返しません。
  6. ルールは 1 件 1 つの決まりにする。 1 つの質問で当たるのは最大 6 件で、回答前の確認を出すのは当たったルールのうち最初の 1 件だけです。
  7. 登録したら照合テスト、次にチャットで確かめる。 照合テストは保存せずに試せて、処理の経過の「用語・ルールの確認」で実際に当たったルールが分かります。

気になった点(作成した Issue)

Issue 内容
#3068 出典を確かめられない説明の主張を冒頭の要約が断定しても、要約に印を付けない
#3069 「前提を示して回答する」で、条件別の根拠がそろうのに回答できないと返すことがある
#3070 根拠の漢数字の金額を算用数字で書いた段落に、数値の入力規則を確認できない印を付ける
#3071 処理の経過の「用語・ルールの確認」が、存在しない「管理 → 用語・ルール管理」の画面を案内する

「確認が必要な点」が本文の中と末尾で 2 回出るのは、既存の Issue(#2751)です。

まとめ

  • 回答ルールは、答えではなく 「答え方の決まり」 を検索・回答プロファイルに登録する仕組み
  • 質問に ルール名か照合キーワードがそのまま含まれる と当たり、ルールの内容が回答の生成に渡り、当たった語とルール名が検索文に足される
  • 回答前の確認 を付けると、チャットと MCP で先に聞き返し、選んだ選択肢の前提・章節・検索語で回答を絞る
  • 照合は LLM も埋め込みも使わず 0.1 秒未満。そのぶん 意味の近さでは当たらない
  • ルールの内容は 資料の根拠にならない。事実は文書に書き、ルールには添えること・分け方だけを書く

資料に答えがあっても、担当者なら必ず添える一言や、先に聞く一言は資料に書いてありません。
その一言を回答ルールにすると、RAG の回答が担当者の答え方に近づきます。
まずは、問い合わせのたびに口頭で付け足している一言から登録してみるのがおすすめです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?