位置付け: RQ-054(一般論の意思決定地図)を bizlp の 4 制約に当てはめ、採用パターンを判定する。


0. TL;DR

bizlp は既に Advanced RAG (Hybrid + Reranking) を ADR-0069 Phase R1 で採用・実装済み。RQ-054 の 6 パターン評価と bizlp 制約を突合した結果、この選択は正しい。

今後の拡張パスは「Phase R2 で Modular RAG 化(多源対応)」→「必要に応じて GraphRAG 補完(ADR 間関係性)」の 2 段階。Agentic RAG は監査要件・単独開発の制約から当面不採用。


1. bizlp の 4 制約

#制約具体値RAG への影響
C1GAS 6 分制限1 関数 6 分、Trigger 累積 90 分/日RAG は GAS 外(Workers)で動作。影響なし(ADR-0069 で意図的に分離済み)
C2Cloudflare WorkersWorkers Paid ($5/月)、Vectorize Free 100M vectors、Workers AI 無料枠インフラは既に確保済み。追加コストなしで RAG 運用可能
C3監査要件会計監査対応、トレーサビリティ必須、CLAUDE.md に機密値禁止ルールcitation 検証 3 層防御は実装済み。回答根拠の追跡可能性が必須
C4単独開発1 人法人、AI エージェント主体開発、Jr 入社 2026-10 予定運用複雑性を最小化。自律型(Agentic)は監視負荷が重すぎる

2. 6 パターン × 4 制約の fit/misfit マトリクス

パターンC1 GAS 6分C2 WorkersC3 監査C4 単独開発総合判定
Naive RAG◎ 無関係◎ 最小構成△ citation なし◎ 最単純△ Phase R1 以下
Advanced RAG◎ 無関係◎ 既存インフラで実現◎ citation 3 層防御◎ 運用可能◎ 現行採用
Modular RAG◎ 無関係◯ Router 追加要◎ モジュール別監査可◯ 複雑性増だが管理可能◯ R2 候補
Agentic RAG◎ 無関係△ DO/Queue 拡張要✕ 非決定論的、軌跡監査困難✕ 監視負荷過大✕ 不採用
GraphRAG◎ 無関係△ グラフ DB 別途要◎ 関係性で根拠明示△ 構築・維持コスト△ R3 補完候補
Incremental◎ 無関係◎ Upsert 対応済◎ version 管理可◎ 自動化容易◎ R2 で統合

3. 判定結果: 段階的採用ロードマップ

Phase R1(現在・実装済み): Advanced RAG

パターン: Advanced RAG (Hybrid Search + Reranking)

実装状況(ADR-0069):

  • BM25 キーワード検索(Intl.Segmenter('ja') による日本語対応)+ Vectorize セマンティック検索
  • Claude Sonnet 4.6 による セマンティック再ランキング
  • Claude Haiku による回答生成 + citation 3 層防御
  • 閲覧中ページ優先注入(current page boost)
  • bge-m3 多言語埋め込みモデル(768 次元)

fit 根拠:

  • 監査要件(C3): citation 検証が機械的に強制される(正規表現マッチ + 偽 citation カウント)
  • 単独開発(C4): エンドポイント 4 本 + スクリプト 1 本の最小構成
  • コスト: LLM ~¥100-120/月、Workers AI/Vectorize 無料枠内
  • 規模: 530 docs、5K vectors(Vectorize 容量の 0.005%)

RQ-054 との整合: Synthesis §4 ケース #6(強監査要件 → Advanced RAG + provenance ログ)に完全一致。

Phase R2(2026-08 判定): Modular RAG 化 + Incremental 統合

トリガー条件(ADR-0069 §2.4、3 ヶ月後レビュー):

  • docs 単源で答えられなかった質問 > 月 10 件 → R2 起案
  • 回答精度(人間評価)< 70% → R2 起案
  • citation 精度 < 80% → R2 起案

追加するモジュール:

  1. Query Router: クエリ意図を判定し、docs / ADR / glossary / memory の最適ソースに振分
  2. 多源インデックス: ADR + memory + glossary をそれぞれ独立 Vectorize namespace に格納
  3. Incremental Upsert: docs-vectorize.mjs をコンテンツハッシュ比較で差分のみ再埋め込みに進化
  4. Contextual BM25: チャンクに LLM 生成の文脈要約を付与し BM25 精度向上(Anthropic 手法、67% 改善の実績あり)

fit 根拠:

  • Workers 既存インフラ内で完結(Router は Worker 内ロジック、namespace 追加は Vectorize 設定のみ)
  • モジュール境界が明確なため、単独開発でも各モジュールを独立テスト可能
  • Incremental 統合でビルド時間を短縮(全再構築 → 差分のみ)

Phase R3(2027 以降・条件付き): GraphRAG 補完

トリガー条件:

  • 「ADR-0023 と ADR-0049 の関係は?」「この決定の影響範囲は?」型の関係性質問が月 5 件超
  • R2 の多源 RAG でも回答不十分な cross-reference 質問が継続

追加要素:

  • ADR 間の Supersedes / Refines / Implements 関係をナレッジグラフ化
  • Vectorize(ベクトル検索)+ グラフ走査のハイブリッド
  • ただし専用グラフ DB(Neo4j 等)は不要 — ADR frontmatter の関係性メタデータを Workers KV にフラット格納し、隣接ノード探索で十分な規模

fit 根拠:

  • ADR 数は現在 ~70 件。フル GraphRAG(Leiden コミュニティ検出等)は過剰
  • フラットな関係性マップ(KV 格納)なら単独開発で維持可能
  • LLM によるエンティティ抽出は不要(ADR frontmatter に関係性が構造化済み)

4. 明確に不採用とするパターン

Agentic RAG — 不採用

理由:

  1. 監査要件との衝突(C3): 非決定論的な探索ループは「なぜその回答に至ったか」の軌跡監査が困難。RQ-054 Claude 版が ◎ で「p95<500ms 要件と監査要件には不向き」と評価
  2. 単独開発の限界(C4): 無限ループ防止、ツール選択誤り検知、コスト暴騰アラートの監視基盤を 1 人で構築・維持するのは非現実的
  3. 現状の規模感: ~530 docs、質問は月 10-30 件程度の見込み。エージェントが自律判断するほどの複雑性がない
  4. コストリスク: エージェントの反復 LLM 呼び出しはコスト予測が困難。現行の ¥100-120/月 から桁違いに増大する可能性

フル GraphRAG — 不採用(簡易版は R3 で検討)

理由:

  1. 初期構築コスト: 全テキストを LLM に入力してエンティティ抽出 → トークン消費が指数関数的(RQ-054 Gemini 版の指摘)
  2. グラフ DB 運用: Neo4j 等の別サービス追加は C2(Workers 完結)と C4(単独運用)に反する
  3. ADR 規模: ~70 件の ADR は frontmatter メタデータで関係性が既に構造化されており、LLM エンティティ抽出の必要がない

5. チャンキング戦略の bizlp 採用方針

RQ-054 Synthesis §5.1 の段階的採用をそのまま適用:

Phase戦略bizlp 実装状態
R1(現在)段落ベース分割(~1000 トークン)docs-vectorize.mjschunkMarkdown()✅ 実装済
R2Late Chunking(速度重視インデックス)bge-m3 ロングコンテキスト活用で Mean Pooling未着手
R2Contextual Retrieval(高精度中核データ)ADR / glossary チャンクに LLM 要約付与未着手
R3チャンクサイズ A/B テスト500 vs 1000 vs 1500 トークンで citation 精度比較ADR-0069 §5.3 で計画済

6. 権限・トレーサビリティの bizlp 採用方針

現状(R1)で十分な範囲

要素実装状況備考
citation 検証✅ 3 層防御(system prompt 禁止 + 書式固定 + 正規表現後処理)偽 citation 率 1% 超でフィーチャーフラグ OFF
chunk メタデータfile, chunk_index, token_estimateversion, ingestion_ts は R2 で追加推奨
rate limiting✅ IP ベース 10 req/min
機密データマスキングLiteLLM masking.py で scriptId/OAuth/金額を [MASKED]

R2 で追加すべき要素

要素内容RQ-054 根拠
version フィールドチャンクメタデータにドキュメントバージョン追加Synthesis §5.4
ingestion_ts埋め込み実行日時を記録同上
retrieval ログクエリ・top-k・スコアを Workers Analytics に保存同上(再現可能性)
権限フィルタ現時点では不要(docs は全公開)。Jr/業務委託参画後に検討RQ-054 RQ14

7. 未解決 RQ の再優先度付け

RQ-054 で挙げた派生 RQ を、今回の判定結果を踏まえて再評価:

RQ (内部番号)問い判定後の優先度理由
RQ10bizlp fit/misfit 判定完了本ドキュメントで解決
RQ14GAS/Workers 境界の権限フィルタ配置P3 に降格R1 は docs 全公開、権限不要。Jr 入社後に再評価
RQ11日本語 BM25 トークナイザP2 維持Intl.Segmenter で暫定動作中だが精度改善余地あり
RQ13埋め込みモデル Blue-Green 切替P2 維持R2 で Incremental 統合時に必要
RQ12Agentic RAG 軌跡監査P3 に降格Agentic RAG 不採用のため当面不要
RQ15ColChunk 原典確認P3 維持マルチモーダル対応は R3 以降

8. 結論

現在          R2 (2026-08判定)      R3 (2027以降)
─────────────────────────────────────────────────
Advanced RAG  → Modular RAG        → + GraphRAG補完
(実装済み)      + Incremental         (簡易版・KV格納)
               + Contextual BM25
               + Late Chunking

ADR-0069 の Phase R1 選択(Advanced RAG)は、RQ-054 の 6 パターン評価と bizlp 4 制約の両面から妥当。次の判断ポイントは 2026-08-25 の 3 ヶ月レビューで、R2 トリガー条件(未回答 >10 件/月、精度 <70%、citation <80%)に基づき Modular RAG 化を判定する。


9. Caveats

  1. 本判定は 2026-05 時点の bizlp 制約に基づく。Jr 入社(2026-10)・業務委託参画後は C4(単独開発)制約が緩和され、Agentic RAG の再評価が可能になる
  2. Intl.Segmenter の日本語 BM25 精度は未定量評価。RQ11 で kuromoji/Sudachi との比較が必要
  3. R3 の GraphRAG 簡易版は ADR 規模 ~70 件を前提としている。200 件超になった場合は本格的な GraphRAG(Leiden 等)の再検討が必要
  4. Streaming RAG (Zhu 2025) の定量データは △(単一論文)のまま。Incremental 統合の設計根拠としては十分だが、<15ms レイテンシの再現性は未確認