RAGSpine
意思決定(ADR)

ADR 0010: インテント解析 — 決定論的セキュリティゲート + プラガブルな IntentParser

常時有効で決して差し替え不可能な決定論的セキュリティゲートを、プラガブルな IntentParser Protocol から切り離す — 重要なところは決定論的に、安全なところは柔軟に。

ステータス: accepted · 日付: 2026-06-17

不変の記録。ドリフト追跡の対象外(covers なし)。編集ではなく、置き換え(supersede)で対応すること。

0002 のプロダクト方針の一部。00040007 によって必然となった。

コンテキスト

インテントパーサーはルールベースで、LLM を一切使わず、金融/中国語向けにチューニングされている(同義語マッチング、ハードコードされた _SUPPORTED_METRICS、インラインの _CHANNEL_SYNONYMS)。同時に、これはセキュリティ上重要な玄関口でもある。スコープ外/競合他社に対する拒否は決定論的であり、いかなる LLM 呼び出しや検索呼び出しよりも 前に 実行され、外部エンティティのマスキングもここに存在する。先行する 2 つの決定が、純粋なルールパーサーを成り立たなくする。完全な汎用性(0004)は、金融向けにチューニングされたパーサーには読み取れない任意のユーザー定義ディメンションを意味し、多言語対応(0007)は言語ごとの同義語テーブルをメンテナンスの爆発へと導く。

重要な洞察はこうだ。セキュリティの判断とインテントの判断は分離可能である。 「このエンティティはスコープ外/競合他社/RESTRICTED か?」はセキュリティ上重要であり、決定論的であり続けなければならない。「どのディメンション/期間が問われているか?」はそうではない — そこでの誤解析は確認のための問い返しや not-found をもたらすだけで、情報漏えいには決してつながらない。

決定

両者を分離する。

  • セキュリティゲート(スコープ外/競合他社/RESTRICTED)は、独立した、常時有効で、決して差し替え不可能な決定論的ガードとなる。パーサーの出力に対して実行され、DomainProfile を通じて宣言される。LLM には決して問い合わせない。
  • インテント抽出IntentParser Protocol となる。デフォルトは LLM を使わない設定駆動のルール実装(0009 に基づくオフラインデフォルト)で、堅牢な多言語/任意ドメイン解析のためのオプションの LLM 分類器バックエンド(extra として提供)を持つ。

原則: 重要なところ(セキュリティ)は決定論的に、安全なところ(インテント)は柔軟に。

検討した代替案(不採用)

  • 純粋なルールパーサー、設定駆動、LLM を一切使わない(オプション A): 純粋性は最大だが、すべてのユーザーにドメインごと/ロケールごとの同義語設定を手作業で書かせることを強いる — 形態論的に豊かな言語に対して脆く、導入時の摩擦も大きい。
  • LLM 分類器を主パーサーとする(オプション C): 最も柔軟だが、玄関口を LLM 依存にしてしまい、誤解析がセキュリティゲートを無効化するリスクがある。LLM を使わないオフラインデフォルトも失われる。

帰結

  • セキュリティ保証が強化される。「ルールパーサーがたまたま決定論的である」ことから創発的に生じる性質ではなく、明示的で、隔離された、差し替え不可能なコンポーネントとなる。
  • LLM を使わないオフラインデフォルトを維持しつつ、汎用性/多言語対応にオプトインの道を用意する。
  • 新しい成果物: SecurityGate コンポーネントと、2 つの実装を持つ IntentParser Protocol。

このページ