「なぜ関連するのか」まで分かる提案 — AI業務管理秘書たすきばの「なぜ?」機能

提案結果に、「なぜ?」が添えられる

このシリーズの最後のユニーク機能の話です。

  1. 提案機能(リリース済み) — 構造化フォームから過去資産が並ぶ
  2. チャット意味検索(リリース済み) — 自然言語で過去資産を引き出す
  3. 「なぜ?」機能(リリース済み・今日の主役) — 提案結果に「なぜ関連するか」の説明が付く

今日は 3 つ目、 「なぜ?」機能 の話です。たすきばの Pro プラン差別化 として位置づけているこの機能を、 LLM Re-ranking という技術判断と一緒に書きます。

👉 たすきば プロダクトページ

「関連度 0.82」だけだと、足りない

B-2 の提案機能 では、3 軸合算スコアで関連資産が並ぶ、と書きました。画面上ではこんなふうに見えます。

関連ナレッジ
  - 「Stripe Webhook の Idempotency 設計」(関連度 0.82)
  - 「EC サイトの個人情報マスキング設計」(関連度 0.79)
  - ...

これでも十分役に立ちます。けれど、しばらく使ってみて、私の中に小さな引っかかりが残りました。

「0.82」って、結局どういう意味なんだろう?

数値はあります。ベクトルの Cosine 類似度が 0.82 だ、と言われたところで、それを 業務の判断に翻訳する作業 はユーザに残されています。「あ、こっちは目を通しておこう」「こっちは今回は関係ないかな」——その判断が、結局は人間の頭の中で行われる。

提案がちゃんと 「使われる」 ためには、もう一段、 「なぜ関連すると判断したのか」 が人間の言葉で読める必要があるんじゃないか——そう考えるようになりました。

「なぜ?」機能のイメージ

実際の画面イメージは、こうです(Pro プランで利用できます)。

関連ナレッジ(Pro プランで「なぜ?」付き)
  - 「Stripe Webhook の Idempotency 設計」(関連度 0.82)
    💡 なぜ: 今回のプロジェクト「EC サイト リニューアル」で言及されている
       決済処理と、このナレッジで扱う Webhook の冪等性は、
       「同じ操作を複数回受け取っても結果が一意」という同じ課題を
       異なる文脈で扱っています。

  - 「EC サイトの個人情報マスキング設計」(関連度 0.79)
    💡 なぜ: 対象範囲(scope)に含まれる「会員機能」が、
       本ナレッジが扱う PII(個人識別情報)の対象と一致するため。

数値だけだったところに、 人間が読んで納得できる理由 が一行添えられます。これで、 「読むかどうかの判断が、3 秒以内に下せる」 ようになります。

技術構造 — LLM Re-ranking とは何か

ここから少し技術寄りの話です(深いところは Qiita 側に分けますが、骨格だけは書きます)。

「なぜ?」機能は、提案結果に対して 2 段階のランキング を行います。

[Step 1] 3 軸合算スコアで上位 N 件(例: 上位 20 件)を選ぶ

[Step 2] その N 件を Anthropic Claude Sonnet に渡す

            LLM が「なぜ関連するか」の説明文を生成

            LLM の判断で順序を再ランキング

[Step 3] 上位 K 件(例: 5 件)を「なぜ?」付きで表示

これが LLM Re-ranking と呼ばれるパターンです。3 軸合算スコアで「広く・速く・安く」絞り込み、その後に LLM で「深く・遅く・高く」判定する ——という 2 段構えになっています。

なぜ 2 段構えなのか

1 段目(3 軸合算スコア)の意味:

  • 広く: 50 件規模の母集団から候補を絞る
  • 速く: pgvector が DB 内で計算(数百ミリ秒)
  • 安く: 外部 API を呼ばない(B-2 で書いた「検索時 ¥0」

2 段目(LLM Re-ranking)の意味:

  • 深く: 数値類似度を超えた、文脈レベルの判定
  • 遅く: LLM 呼び出しは 1〜数秒かかる
  • 高く: Sonnet の従量課金が発生

1 段目を全候補に通すと安くて速く、けれど “なぜ” が出せない。 2 段目を全候補に通すと “なぜ” が出るが、コストと時間が爆発する。

そこで、 「1 段目で絞ってから、2 段目で意味付けする」 という分業にしているわけです。これは B-3 の課金哲学 で書いた 「使った分だけ、必要な操作にだけ請求する」 設計判断と直結しています。

なぜ Pro プランの差別化に据えたか

「なぜ?」機能は、 B-3 の課金哲学 で書いた 3 プランのうち、 Pro プランの差別化 に据えています。

プラン月額提案結果
Beginner¥03 軸合算スコア(数値のみ)
Expert¥0 + Haiku 従量3 軸合算スコア(数値のみ)
Pro¥0 + Sonnet 従量3 軸合算スコア + 「なぜ?」説明文付き

Pro プランだけ Sonnet モデルを使えるのは、 コスト的な必然 です。 Haiku でも「なぜ?」は生成できますが、 業務利用に耐える品質 を出すには Sonnet のほうが圧倒的に安定する、というのが現時点の判断です。

「コストを払ってでも、もう一段深い体験が欲しい」 というユーザに、 Pro プランで 数値の隣に言葉を添える ——これが Pro プランで確立した差別化です。

ハルシネーション対策 — LLM に何を「させない」か

ここが一番神経を使うところです。

LLM は時に嘘をつきます(ハルシネーション)。 「なぜ?」機能が嘘の理由を返してしまうと、 ユーザの業務判断を 誤った方向に押してしまう 可能性があります。 これは業務 SaaS としての信頼を直接損ねます。

たすきばの「なぜ?」機能は、 LLM に 「させない」リスト を最初から決めています。

LLM にやらせることLLM にやらせないこと
提案候補とクエリの「関連性の言語化」候補に含まれない情報の生成
候補の中身の「要約」一般知識・推測情報の混入
「なぜ関連するか」の根拠提示数値スコアの “創作”

プロンプトレベルで、 「候補に書かれていない情報を理由として持ち出すな」 を強く制約します。さらに、 LLM への入力と出力を XML タグで厳密に分離し、出力も検証・整形してから返す——こうした 安全弁を実装に組み込んでいます

「LLM が便利だから何でも任せる」ではなく、 「LLM の仕事は明確に絞る」 ——これがたすきばの設計方針です。 A-4 の差別化軸 で書いた 「機能の多さは妥協しない、UI の複雑さは絶対に許容しない」 と、根は同じ態度です。

「なぜ?」機能が、たすきばの体験を完成させる

3 つのユニーク機能を並べて、最後に整理します。

機能体験embedding 基盤追加で使う技術
提案機能数値で並ぶ過去資産Voyage + pgvector
チャット意味検索会話で引き出す過去資産Voyage + pgvectorVoyage(クエリ embedding)
「なぜ?」機能数値の隣に理由が並ぶVoyage + pgvectorClaude Sonnet(LLM Re-ranking)

3 つはバラバラの機能ではなく、 同じ embedding 基盤の上に乗った、3 つの異なる接点 です。 B-2 で書いた 「掘り起こし」という核を、Phase 1 → 2 → 3 と段階的に深めていく構造になっています。

まとめ

「なぜ?」機能を一言で表すなら、

数値の隣に、人間の言葉を添える機能。

提案機能が “気づかなかった過去” を画面に並べ、 チャット意味検索が “話しかけられる相棒” として隣に居る。 そしてこの「なぜ?」機能は、画面に並んだ候補の隣に 「なぜそれが、いまここに居るのか」 を、一行ずつ書き添える役割です。

この 3 つで、たすきばのユニーク機能は完成形に到達します。 3 機能ともリリース時点で稼働していますが、 「なぜ?」付きの体験こそが、 連載第 1 回 で書いた 「人間がクリエイティブな仕事に時間を使えていない構造」 を、 本気で解きにいく機能 だと考えています。

技術深堀の補章はここまでです。明日以降は、 Dogfooding から見えてきたものや、 リリース後の運用所感を、 折を見て書いていきます。

関連記事

たすきば について

「なぜ?」機能は、 たすきば Knowledge Relay の Pro プランの中核機能で、リリース(2026-06-01)時点で稼働しています。各機能の体験は プロダクトページ でご確認いただけます。

お問い合わせ

ご質問やフィードバックなど、お気軽にお問い合わせください。

お問い合わせはこちら
AI業務管理秘書「たすきば」— 探さなくても届くナレッジ管理とプロジェクト管理