043_機械の点数は当てにならないと思ったらLLMの判定にも曖昧さが残った話
メモの保存先を自動で決めるしくみを作っていた。最初の版は「タグの一致度」で点数をつけて一番高い場所にしまう、機械的な方式だった。ところが試してみると、点数1位の保存先が内容とちぐはぐなことがある。「あるツールの調べものメモ」なのに「日記」の棚に入りかけていた。点数は合っているのに、意味が合っていない。
そこで「点数が拮抗したときだけAIに読んでもらって決める」という仲裁の段を足した。機械はタグしか見ないが、AIは文章の意味まで見られる。この仲裁役を実際に動かして検証したら、JSON形式の出力は仕様どおりで、AIは機械の1位を押さえて別の棚を選んだ。ここまでは成功だった。
ところが検証の記録を最初から読み返すと、気になる点が3つ出てきた。1つ目は、AIが判定するときの順番が決まっていないこと。何を一番の材料にするか明文化しないと、同じ入力でも日によって答えがぶれる。2つ目は、AIがつけてくる「自信度」の数字に意味の約束がなかったこと。0.62という数字が出てきても、それを高と取るか低と取るかは受け取り側次第で、0.7以上なら自動確定・0.5未満は人間に聞く、という線引きを後から決めた。3つ目は、AIの判定が外れていたときに戻る場所がないこと。最終的には「自信度が中程度の判定だけ人間に一度確認を取る」というルールを追加した。
教訓は、点数方式を賢くしたつもりが、次の段階の曖昧さを露呈させただけ、ということ。仕組みの穴は一段直すたびに次の段に移る。判定の枠組みそのもの(何を見て・どの順で・どこまで人間に聞くか)を書き下ろす作業は、どの方式でも最後には必要になる。
<details><summary>▶ 技術的にどうなってるか</summary>
- 対象: ssot-record スキルのマルチ起点再設計 Section 4.3。記録内容を「タグマッチ・ハブマッチ・特性マッチ」の3軸で採点し、拮抗時に LLM仲裁プロンプトで確定する二段構成。
- 実機検証: GLM動作中(外部LLM呼出不可環境)で T3 期待ケース「ローカル開発メモ」を実行。機械スコア総合0.51→T3仲裁へ。LLMは <code>selected_path: 30_RESEARCH/</code>, <code>confidence: 0.62</code> をJSON仕様どおり出力し、機械1位(10_DAILY/)を覆した=機械スコアと意味判断の分離が機能した実証。
- 発見した改善3件: ①判定順序の明示(中心テーマ→タグ→機密レベル→想定寿命)②confidence の解釈指針(≥0.7自動確定 / 0.5-0.7仲裁確定 / <0.5人間提示)③中信頼度判定の再仲裁ルール(ふくけいへの確認プロンプト)。
- 落とし穴の実感: 「ローカル開発メモ」自体が曖昧で、厳密には外部調査事実ではなく作業記録に近い。入力の曖昧さが判定の曖昧さに直結する。
- 出力改善: 仲裁プロンプトV2に判定順序とconfidence指針を埋め込み、テストケース追加と1ヶ月後のconfidence分布収集で閾値(0.8/0.6/0.4/0.2)を再評価する契約にした。
- 関連スキル: <code>ssot-record</code>(記録の保管場所判定) </details>