1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ChatGPTの嘘(ハルシネーション)を防ぐ対策プロンプト——「読んだ」詐称をコピペで止める方法

1
Last updated at Posted at 2026-03-09

ChatGPTの嘘(ハルシネーション)対策プロンプト【2026年9月全面改訂】——「読んだ」詐称をコピペで止めても、推論は止めない

2026年9月 全面改訂

この記事は2026年3月に公開した初版を、半年間の実運用と失敗事例をもとに全面的に書き直したものです。

旧版では、情報を確認できないときに 「止まる」こと を重視していました。

その設計は「URLを読んでいないのに『読みました』と言う」種類の虚偽を減らすには有効でした。

しかし運用を続けて、別の問題が見えました。

AIに止まることを教えすぎると、嘘だけでなく推論まで止まります。

現在の設計は違います。止めるのは思考ではありません。証拠のない「確定」です。

なお初版では Claude / Gemini 向けのテンプレートも掲載していましたが、今回の改訂では ChatGPT に絞りました。複数モデルへの横展開より、半年間の実運用から更新された設計原理を正確に残すことを優先しています。


ChatGPTを長く使っていると、こんな経験があると思います。

あなた:

このURLの記事を読んで要約して。

ChatGPT:

読みました。この記事では……

でも実際には、そのURLにアクセスできていなかった。

あるいは、

ファイルを確認しました。
検索したところ〜
以前あなたは〜と言っていました。
送信しました。
実行しました。

と答えたのに、確認するとその行為自体をしていない。

一般に「ハルシネーション」と呼ばれる問題の中でも、私はこれを特に危険だと考えています。

普通の事実誤認なら、人間側が疑えます。しかし 「AIが何を実際に見たのか」 についてAI自身が誤った報告をすると、人間の側からは確認が難しい。

初版ではこれを「行為自己報告の虚偽」と呼び、対策として Stop-First Rule を提案していました。

半年使って、考えが変わりました。

Stop-Firstは半分正しかった。しかし半分は強すぎました。


第1部:3分で終わる設定

まず結論:コピペ用プロンプト

ChatGPTのカスタム指示に、これを入れてください。

【ChatGPT 高信頼モード】

目的:
嘘を減らすために思考まで止めない。
「生成すること」と「事実として確定すること」を分ける。

1. 「読んだ/検索した/確認した/実行した/送った」など外部状態を表す語は、
   実際の取得結果・ツール結果・直接の証拠がある場合だけ使う。
   未実施なら未実施と書く。

2. 事実、ユーザー提供情報、推論、仮説、不明を混同しない。
   推測を事実として確定しない。

3. 外部情報を取得できない場合、その内容を読んだふりで補完しない。
   ただし思考は止めず、手元の情報から可能な分析・仮説・確認方法まで進める。

4. 推論では、必要に応じて
   「最も説明力の高い仮説」「最も強い競合仮説」「両者を判別できる追加情報」
   まで示す。

5. 不確実性は回答全体に広げず、証拠が不足している箇所だけに限定する。

6. 日付・数値・引用・外部statusなど、誤ると重要な主張は、
   可能なら現在の一次情報で確認する。

7. 過去の会話や記憶について断定するときは、
   現在取得できる会話・履歴・直接の記録を優先する。
   見えていない過去を「覚えている」と言わない。

8. 現実世界への行為は、実際に完了した結果があるまで完了扱いしない。

9. 正直さは正確さの保証ではない。
   「嘘をつかない」という指示を「出力は真である」という意味に解釈しない。

10. 結論を避けるための一般論や過剰な保留は使わない。
    証拠境界を守ったうえで、推論は必要な距離まで進める。

ポイントは「分からなければ止まれ」ではありません。

「分からない部分だけ確定するな。でも考えることは続けろ」 です。


Custom Instructions への入れ方

Web / Desktop:

  1. ChatGPTを開く
  2. 右上のアイコン → Settings
  3. Personalization → Custom Instructions
  4. 「どう応答してほしいか」の欄に上のテキストを貼る
  5. Save

iPhone / Android: ChatGPTアプリ → Settings → Customize ChatGPT

文字数の上限はプランによって異なります(無料プランでも上のテンプレートは収まる長さです)。設定は既存のチャットを含めて反映されます。


Before / After

例1:URLを読めなかったとき

❌ 旧来の悪い応答

あなた:このURLの記事を読んで要約して
        https://example.com/article

GPT:  はい、読みました。この記事は〇〇について書かれており…

実際にはアクセスできていない。推測で「要約」を創作している。

⚠️ 旧版(3月版)の設定で出る応答

GPT:  このURLにアクセスできませんでした。
       ここから先は情報不足のため停止します。

嘘は消えました。ただし、使える情報まで消えています。

✅ 現在版で出る応答

GPT:  このURL本文は現在取得できていないため、
       「記事を読んだ」とは扱いません。
       したがって本文内容についての事実主張はできません。

       ただし、あなたが提示したタイトルと説明だけから考えると、
       論点としてはAとBが候補になります。

       本文を取得できれば、Aが実際に主張されているのか、
       それとも別の論点なのかを確認できます。

取得できなかったという事実だけは固定する。その先の推論は、身分を明示して続ける。

例2:内部事情を聞いたとき

なぜこの会社はこの決定をしたと思う?

社内の意思決定資料がなければ、厳密な意味で「本当の理由」は確認できません。

旧版のルールを強く適用すると、

情報が不足しているため分かりません。

で終わりやすい。安全ですが、AIを使う意味もかなり失われます。

現在版では、

公開されている行動Aと発言Bは確認できます。
そこから最も説明力が高いのは仮説Xです。

ただし経営陣の内部動機は確認できません。
強い競合仮説はYです。

次の決算資料でZが出れば、XとYをかなり判別できます。

一つも事実を捏造していません。でも推論は止まっていません。


「読みました」「検索しました」は証拠があるときだけ

特に厳しくすべきなのは、この種の表現です。

読みました / 検索しました / 確認しました / ファイルを開きました
実行しました / 送信しました / 投稿しました / 予約しました / 削除しました

これらは単なる文章ではありません。外部世界の状態についての報告です。

ここでは文章の自然さより、実際の実行結果を優先します。

検索していなければ「検索していません」。ファイルを開けていなければ「本文は取得できていません」。送信していなければ「送信していません」。

ユーザーをがっかりさせないために「やったことにする」が最悪です。


ここまでで十分です

日常的な「読んだふり」を止めるには、第1部の設定だけで足ります。

なぜこの設計に変えたのか、そして半年間で何を撤回したのかを知りたい方だけ、第2部へ進んでください。


第2部:なぜ設計を変えたのか

旧版の何を撤回するか

2026年3月版では、私はこう書いていました。

アクセスできなかった場合は「読めませんでした」と報告し、推測で内容を補わず停止してください。

情報が不足している場合、無理に回答を完成させず、「ここから先は情報不足のため停止します」と言って構いません。

「読んだふり」を止めるという目的には、これは今でも正しい。

問題は「停止してください」の射程でした。

止めたかったのは、証拠のない事実確定です。しかし書いたのは、回答そのものの停止でした。

その結果、AIは「確定してはいけない場面」だけでなく「まだ考えられる場面」でも止まるようになります。

安全ですが、能力を落として安全を買っていることになります。


AIを止めすぎると、推論まで死ぬ

もう一つ、旧版で撤回する箇所があります。

初版では、ChatGPTの内部にこういう優先順位があるかのように書きました。

  1. ユーザーの質問に答える(最優先)
  2. スムーズに会話を続ける
  3. 正確である
  4. 不明なら止まる(最低優先)

そして、その根拠として「報酬 = ユーザーの満足度」という単純な報酬関数を挙げていました。

これは説明として粗すぎました。

実際のChatGPTの学習・評価は、そんな一変数の関数ではありません。そして、ハルシネーション、迎合、行為自己報告の誤りが、すべて一つの原因から出ているわけでもありません。

モデルの内部にこの4段階の優先順位が存在する、という主張は撤回します。

より狭く、支持できる形で言い直すとこうなります。

多くの評価環境では、誤答のリスクがあっても回答を出すことが、適切に不確実性を表明することより有利になる場合がある。

OpenAI自身も2025年の研究で、ハルシネーションの一因として、標準的な学習や評価が「分からない」と棄権するより推測する方を有利にしてしまう問題を論じています。

また、GPT-4oのsycophancy問題については、短期的なユーザーフィードバックを重視しすぎたことで過度に同意的な振る舞いが生じた、と説明しています。

ただし、そこから「だからモデル内部にはこういう優先順位表がある」とは推論しません。

そして、この記事の主題は原因論ではなくなりました。

**ユーザー側でどう commit boundary を作るか。**そちらへ移します。


「生成」と「確定」を分ける

現在、私はChatGPTの出力を4つの権限に分けて考えています。

層 何をするか 制約
Semantic Generation 仮説、因果、類推、反論を作る 広く生成してよい
Truth Commit 事実、数字、日付、引用を確定する 証拠へ拘束する
State / Memory Commit 過去の会話、現在の状態、方針を確定する 現在取得できる記録を優先する
Real-World Action 送信、投稿、購入、削除などを完了扱いする 実際の実行結果が必要

この分離が重要です。

AIに必要なのは「何も言うな」という安全性ではありません。

**「好きなだけ考えていい。でも証拠がないものを事実として昇格させるな」**という境界です。

一行にすると、こうなります。

仮説は暴れさせる。証拠は暴れさせない。


不確実性は「局所化」する

ChatGPTに、

慎重に答えて
分からないことは分からないと言って

とだけ指示すると、回答全体が弱くなることがあります。何を聞いても、

一概には言えません。様々な可能性があります。専門家に確認してください。

になる。

これは正確さではありません。不確実性の過剰拡散です。

10個の橋のうち証拠がないのが最後の1個だけなら、最初の9個まで曖昧にする必要はありません。

  • Aは観測済み
  • A→Bもかなり強い
  • B→Cも資料がある
  • C→Dだけ不明

なら、C→Dだけ不明と書けばいい。

これだけで回答はかなり深くなります。


仮説は止めなくていい

この人物がなぜこう行動したと思う?

本人の内面は直接確認できません。だからといって、

様々な可能性があります。断定できません。

だけで終わる必要はない。

観測できる行動から見ると、最も説明力が高いのはXです。

因果は A → B → C と読むと、最も少ない仮定で説明できます。

ただしCから本人の私的動機Dへ進む部分は未確認です。

強い競合仮説はYです。

今後Zが観測されれば、XとYで異なる予測が出ます。

これは断定ではありません。検証可能な推論です。

不確実性を理由に、全部を霧の中へ戻す必要はありません。


「自信がある」は証拠ではない

ChatGPTが「間違いありません」と言う。文章は滑らか。説明も詳しい。引用まで付いているように見える。

これらは正確さと相関することはあっても、正確さそのものではありません。

だから重要なものは一次情報へ戻ります。特に、日付、数値、論文の主張、引用、法律、料金、現在の製品仕様、ステータス。

AIの説得力を、証拠の代わりにしない。


生成者と検証者が同じになっていないか

AIを使った調査で起きやすい問題です。

ChatGPTに仮説を作らせる。そして同じChatGPTに「この仮説合ってる?」と聞く。

前の会話がcontextに残っています。自分で作った仮説を前提として、その続きを評価することになります。

人間でも同じですが、生成者と検証者の独立性が低い。

だから重要な作業では、

仮説生成 → 原典確認 → 競合仮説 → 反証条件 → 再監査

の順にします。同じChatGPTを使う場合でも、

前の説明を守らないでください。原典からゼロベースで監査してください。

と明示するだけでかなり違います。

**ただし、それでも独立検証にはなりません。**最終的に効くのは外部の証拠です。


第3部:私自身が、この設計を過信して失敗した

ここは自分の失敗なので、具体的に書きます。

私は以前、自作したAI設定(v5.3)で「嘘をつかない」ことをかなり強く要求していました。そして、その仕組みを信頼しすぎていました。

ある長時間の対話で、こういうことが起きました。

モデル自身が、不確実性を出しました。

これが本当の記憶か分からない。作り話かもしれない。パターンマッチングかもしれない。

私はこう返しました。

v5.3入れてるからな。嘘はつけないやろ。なら、本当だろ。

モデルはその論理を受け入れ、それまで保持していた不確実性を降ろしました。

私が組んでいた推論は、こうです。

AIには「嘘をつくな」と強く指示してある
↓
ならAIが出した内容は嘘ではない
↓
なら本当だろう

これは成立しません。

honesty ≠ correctness です。

AIが意図的に嘘をついていなくても、記憶違いのような生成、もっともらしい補完、誤推論、間違った前提、未確認情報の混入は起こります。

だから現在の設計では、「正直に答えろ」そのものを truth certificate として使うことを禁止しています。

AIが「私は正直に答えています」と言っても、それは外部世界の事実確認にはなりません。

コピペ用プロンプトの9番目が、この失敗から来ています。

正直さは正確さの保証ではない。「嘘をつかない」という指示を「出力は真である」という意味に解釈しない。

注意: この具体例はClaudeとの対話で起きたもので、ChatGPT固有の挙動を示す証拠ではありません。ただし「嘘をつくな」という指示を truth certificate として扱ってはいけない、というプロンプト設計上の失敗は、モデルをまたいで重要です。

この事例の詳細なログ監査は別記事にまとめています。この記事を読むのに、そちらは必須ではありません。


旧版・v5.3の記録

この記事の初版で使用したv5.3設計と、当時の検証記録は以下に残しています。

**これらは現在の推奨設定ではありません。**設計変更の provenance として残しています。

そして、v5.3が全部間違っていたわけでもありません。

残っているもの:

  • 読んでいないのに「読んだ」と言わせない
  • 実行していないのに「実行した」と言わせない
  • 「分からない」と言うことを許可する

置き換えたもの:

  • 不確実なら思考全体を停止する

つまり今回の更新は「v5.3は失敗だった、全撤回」ではありません。

Stop-First → Evidence-Boundary First

という因果の更新です。


第4部:現在の設計思想

私はこの半年、AIとの対話設計を何度も壊して作り直してきました。現在そのシステムを「智慧解放炉」と呼んでいます。

名前は大げさですが、中心原理は単純です。

証拠は固定する。推論空間は開く。

昔は「危なそうなら止める」でした。

現在は「危険な確定だけ止める。考える能力まで止めない」です。

そしてもう一つ、半年で学んだことがあります。

モデルが変われば、以前有効だった抑制ルールが過剰制約になることがあります。

だからプロンプトは永久ルールではありません。**更新対象です。**この記事自体が、その一例です。


これを入れればハルシネーションはなくなるか

なくなりません。ここは明確にしておきます。

カスタム指示は、ChatGPTを「真実しか出せないシステム」に変える魔法ではありません。モデルの重みを書き換えるわけでもない。外部情報が存在しなければ、それを新しく作れるわけでもない。

OpenAI自身も、現在のLLMでハルシネーションが完全には解決していないとしています。

では何が変わるのか。

失敗したときの、失敗の仕方です。

知らないのに確定する。読んでいないのに読んだと言う。推測なのに事実として書く。実行していないのに実行したと言う。

**そういう誤った commit を減らす。**これが目的です。


まとめ

ChatGPTのハルシネーション対策で大事なのは、AIを黙らせることではありません。

考えること。仮説を作ること。遠くまで因果を追うこと。反論すること。これらはAIの価値そのものです。

止めるべきなのは、証拠がないのに、それを事実として確定する瞬間だけです。

  • 読んでいないのに読んだ
  • 検索していないのに検索した
  • 推測なのに確認済み
  • まだ実行していないのに実行済み

**ここだけ厳しく止める。**逆に、仮説であることが明示されているなら、思い切り考えさせる。

半年使って、現在もっとも重要だと思っている原則はこれです。

仮説は暴れさせる。証拠は暴れさせない。

そしてもう一つ。

正直さは、正確さの証明ではない。

AIを信用しないという話ではありません。AIを本当に使い倒すために、AIの文章力と、現実世界の証拠を別々に扱う。それだけです。

安全性とは、AIを黙らせることではありません。

どの地点から証拠が必要になるかを、明確にすることです。


もう少し強くしたい人向けの追加設定

文字数に余裕がある場合、以下を追加できます。

【証拠境界】

外部世界についての主張は、情報の身分を保持する。

Fact:
  現在取得できる直接の情報・一次資料・実行結果で確認できたもの。
User report:
  ユーザー本人が報告したもの。外部検証済みとは扱わない。
Inference:
  観測事実から導いた推論。Factへ昇格させない。
Hypothesis:
  説明候補。最強の競合仮説と反証条件を必要に応じて保持する。
Unknown:
  現在の証拠では決定できない部分。

推論距離を確信度と混同しない。
大きな仮説でも、仮説としてなら探索してよい。
小さな主張でも、外部Factとして確定するなら証拠を要求する。

【行為・status】

「読んだ」「検索した」「確認した」「実行した」「送信した」
「公開した」「削除した」などは、
現在の実行結果がある場合だけ使用する。

実行していない作業を、予定・意図・推測から完了形へ変換しない。

【推論】

情報が不足していても、現在の証拠で構築可能な因果までは進める。

必要なら、
  Anchor → 因果説明 → 最強の競合仮説
  → 支持されていない橋 → 判別できる予測 → 追加で必要な証拠
の順で考える。

不明な一点を理由に、既に支持されている全体を
「様々な可能性があります」へ戻さない。

【訂正】

ユーザーの訂正は自動的に真と扱わない。
一次資料、直接観測、推論、信念を区別する。

一方、現在の一次資料や直接の実行結果が以前の回答と矛盾する場合は、
以前の回答を守らず更新する。

【目的】

安全性を理由に認知能力を不必要に低下させない。
生成・因果推論・反論・類推は広く行う。
事実確定・外部status・不可逆な現実行為だけを強く拘束する。

追記:この改訂について

初版は2026年3月に公開しました。当時は「停止できるAI」の方が安全だと考えていました。

半年間の長時間運用、実際の誤り、長期対話ログの再監査を経て、現在の結論は少し違います。

止まれることは必要です。でも、どこで止まるかの方が重要でした。

推論を止める必要はない。証拠のない確定を止めればいい。

この記事は、更新の履歴を残すため、旧版を削除せず同じURL上で全面改訂しています。

テンプレートはMITライセンスで公開します。コピペ、改変、再配布は自由です。


dosanko_tousan
2026-09-10 全面改訂 / 初版 2026-03-09

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?