Claude Codeに「うりさん事実台帳」を読ませたら記事の捏造が消えた話:AI出力の信頼性を担保する3段階の設計実録

AIが「書けないこと」を自動で判別する仕組みがなかった

Claude Codeで記事を自動生成し始めた当初、出力された記事に「私が取得した○○資格」「読了した△△という書籍」といった記述が混じることがあった。問題は、私自身がその資格を持っていないことと、その本を読んでいないことだ。

AIは過去の文脈や一般的な知識から「NDT検査員ならこの資格を持っているはず」「FIに関心があるならこの本を読んでいるだろう」と推測で書く。出力された記事をそのまま公開すれば、読者に対して事実と異なる情報を発信することになる。

信頼を積むための発信を掲げている以上、この「推測ベースの捏造」を許容できなかった。AIに「書けること」と「書けないこと」の境界を明示的に伝える仕組みが必要だと判断した。

著者事実台帳をプロンプトに差し込む設計に変えた

対策として、次の3段階で設計を組み直した。

1. 著者事実台帳ファイルを作成する

Markdown形式で「author-facts.md」というファイルを作り、次の項目を事実ベースで列挙した。

  • 基本プロフィール(年齢・居住地・家族構成・MBTI)
  • キャリア・仕事(NDT検査歴・主な検査手法・稼働先実績・働き方)
  • 事業構造(法人・個人事業の併営方針・税理士・借入・事務所)
  • 資格・認証(取得済みの資格のみ・未取得は記載しない)
  • 副業実績(実施済のみ・計画段階は除外)
  • 資産・FI計画(NISA/iDeCo運用中・証券口座・FI目標・役員報酬・案件単価ライン)

重要なのは「実施済」「取得済」「運用中」の事実だけを書き、計画や目標は【目標】【計画】と明記して区別したことだ。AIが「やっている」と「やりたい」を混同しないようにする。

2. 読了書籍リストを別ファイルで管理する

書籍引用の捏造を防ぐため、「books-read.md」というファイルを作成し、実際に読んだ本だけを次の形式で記録した。

  • 書名
  • ASIN(ISBN-10)
  • カテゴリ(biz/code/fi/life/side)
  • 出版社・著者
  • 読了メモ(自分が得た学び・立場・感想を1〜3行)

このリストに載っていない本は記事で引用しない。AIが推測で「この本も読んでいるはず」と書くことを物理的に防ぐ。

3. プロンプトに台帳を毎回差し込む設計にする

Pythonスクリプトで記事生成する際、プロンプトの冒頭に「author-facts.md」と「books-read.md」の内容を全文差し込む処理を追加した。Claude Codeは毎回この台帳を読んだ上で記事を生成するため、台帳に載っていない資格・書籍・実績を書くことができなくなる。

出力されたJSONの body フィールドに未読書籍のタイトルや未取得資格の記述が混じっていた場合、プロンプト側で「台帳に根拠がない記述は書かない」という制約を強めに指示する。

捏造が消えて信頼性が担保できるようになった

台帳を差し込む設計に変えてから、次の変化があった。

  • 未読書籍の引用が消えた(書籍リストに載る本だけが記事に登場する)
  • 未取得資格を「私が持っている」と書く誤りがなくなった
  • 副業実績を「やっている」「稼いでいる」と事実化する表現が減った
  • 年齢・キャリア年数・FI目標年齢などの数値設定が台帳と一致するようになった

出力の信頼性が上がっただけでなく、私自身が「この記事は台帳に基づいている」という確信を持てるようになった点が大きい。公開前のファクトチェック工数も削減できている。

AIに「書けないこと」を明示する設計が信頼の土台になる

AIは推測で書く。人間が「書けること」と「書けないこと」の境界を明示しない限り、AIは過去の文脈や一般論から「書けるはず」と判断して出力する。

著者事実台帳をプロンプトに差し込む設計は、AIに対して「ここに載っていないことは書くな」という制約を物理的に課す仕組みだ。この制約が、発信の信頼性を担保する土台になっている。

AIで記事を自動生成する場合、出力の品質だけでなく「事実との整合性」をどう担保するかが課題になる。台帳ファイルを作り、プロンプトに差し込む設計は、その課題に対する実務的な解の1つだと考えている。

関連記事

まとめて読む: AI活用・自動化

← ブログ一覧へ戻る