CTS-KB

ハルシネーション

はるしねーしょん

Hallucination 幻覚 LLM 幻覚
#LLM #Claude #AI 駆動開発 #品質

LLM が事実と異なる情報や、存在しない API・ファイル・関数をもっともらしく生成してしまう現象。AI コーディングで最も警戒すべき失敗モード。

概要

ハルシネーションは「嘘をつく」のではなく、統計的にもっともらしいトークンを生成した結果、現実には存在しないものが出力される 現象。見た目が正しく、構文も通ってしまうため、レビューが甘いと本番に混入する。

よく見られるパターン:

パターン具体例
存在しない API 呼び出しclient.batchUpsertAll() のような未定義メソッド
実在しないファイル参照docs/specs/auth-flow-v2.md を読み込めと指示
バージョン違いの混在Tailwind v4 + v3 の記法が混ざる
誤った引数順序fetch(body, url) のように順序逆転
存在しないライブラリnpm install rakuten-sdk のような偽パッケージ

ハルシネーションが起きる典型条件

  • コンテキストが曖昧で「何を作るか」が定義されていない(→ 推測で埋める)
  • 最新ドキュメントを参照していない(→ 古いバージョンの記憶で補完)
  • 参照実装を Read していない(→ 類似プロジェクトの記憶で補完)
  • 記憶ベースで「〜のはず」と回答している(Evidence Gate 違反)

抑制する 4 つの対策

  1. コンテキストを明確にする — 壁打ちで背景・目的・スコープを整理(壁打ち・規模判定編
  2. 参照実装を必ず Read する — 既存の本番コードが最も信頼できるリファレンス
  3. 公式ドキュメントを確認する — context7 MCP や WebFetch で最新 API を取得
  4. Evidence Gate を運用する — 「確認」キーワード検出時にツール実行を強制(品質ゲート編

検出する仕組み

ハルシネーションを事後検出する仕組みも重要。implementation-validator は以下を自動検出する。

  • NotImplementedException / NotImplementedError — stub 実装の検出
  • TODO / FIXME / HACK / TBD — 未完了の痕跡
  • 空テスト — 「方向性は合っている」で PASS にさせない

関連記事

関連用語