ご覧いただきありがとうございます!20日目担当の福永です。
社内業務の効率化に向けて、生成AI(ChatGPTやClaude、Gemini等)の活用を進めている企業が増えているかと思います。
議事録の要約やメールの作成といった単純なタスクであれば、今の生成AIは非常に優秀です。しかし、「複数の条件を組み合わせた業務判断」を自動化しようとした途端、精度が落ちると感じたことはないでしょうか?
「AかつBの場合はOK、でもCの場合はNG。ただしDの条件を満たせば例外的にOK…」
こうした複雑なロジックをプロンプト(指示文)に落とし込むと、AIが条件を読み飛ばしたり、誤った判定を下したりすることがあります。
そこで今回は、「なぜ複雑な条件だと間違えるのか?」「どう書けば間違えないのか?」を、生成AI本人に直接聞いてみました。 その回答をもとに、実際にプロンプトを改善していく過程をご紹介します。
ステップ1:生成AIに「苦手なプロンプト」を聞いてみる
まずは、生成AI(今回はGemini 2.5 Flashを使用)に、どのような書き方が誤判定を招くのか質問してみました。
私 : プロンプトエンジニアリングについて教えてください。 複雑な条件分岐(AND/OR/NOTの組み合わせや例外処理)を含むタスクを依頼した際、AIが条件を誤解釈したり無視したりすることがあります。 「AIにとって解釈しづらく、誤判定を引き起こしやすいプロンプト」の特徴を具体的に挙げてください。
すると、生成AIから非常に興味深い「自己分析」が返ってきました。
AIが論理的な誤判定を起こしやすいプロンプトの特徴
1. 否定の多用と例外
「ただし~を除く。でも~の場合は除く必要はない」のように、否定の否定を文章だけで説明されると、論理スコープを見失いやすくなります
2. 条件の散在(非構造化データ)
条件が長文の中に散らばっており、箇条書きや構造化(JSON/XML等)されていない場合、優先順位を見誤ります
3. 「全てを満たす場合」という一括判定
「以下の条件A, B, C, D, Eを全て満たす場合のみOK」のように条件が多いと、確率論的に「ほとんど合っているからOK」と幻覚(ハルシネーション)を起こし、小さな欠格事由を見落とすことがあります
4. 計算と論理の混同
「合計が〇〇以上かつ、平均が△△以下」のような数値計算と論理条件を同時に文章だけで処理させると、精度が落ちる傾向があります
如何でしょうか。思い当たるようなプロンプトを作成されたことがある方もいらっしゃるのではないでしょうか?(恥ずかしながら私はあります...)
ステップ2:AIが苦手なプロンプトを作成してみる
誤判定を起こしやすいプロンプトとはどういう記載になるのか、実際に作成してみたいと思います。
❌ 誤判定し易いプロンプト例(一括判定・例外・文章羅列による非構造化データ)
架空の業務: 旅費交通費の精算承認判定
以下の申請について、経理部門として精算を「承認」するか「不承認」か判定してください。
【承認条件】
精算には厳格なルールがあります。
出張目的が「顧客との商談」であること、かつ移動手段が「公共交通機関」であり、日当が社内規定の「上限額以下」で、かつ証憑(領収書等)が全て添付されており、さらに申請が「出張日から1週間以内」に完了していること、これら「全てを満たす場合」のみ「承認」としてください。ただし、海外出張である場合は、上記に関係なく承認となります。
【対象者データ】
項目: データ
目的: 顧客との商談
移動: 公共交通機関
日当: 上限額以下
証憑: 全て添付済み
出張地域: 国内
出張日: 2025年11月1日
申請日: 2025年11月10日
最近の生成AIはとても精度がよいので、上記プロンプト例のみの実行であれば判定を間違うことはほぼ無さそうなのですが、実務で利用するために作成するプロンプトとなると話は別です。ひとつのプロンプトの中で複雑な判定を複数回実施するような指示の出し方が想定され、生成AIの判定に間違いが生じてしまうことが懸念されます。実際、今回 Geminiに指摘されたような特徴のある複雑なプロンプトを過去に作成してしまった際には、生成AIの判定がかなり不安定になってしまいました。
ステップ3:AIに書き直してもらう
では、このプロンプトをどう修正すればいいのでしょうか?AIに依頼してみました。
私: 上記のプロンプトだと誤判定が起きました。 あなたが論理を正確に解釈できるよう、プロンプトを「構造化」し、判定ロジックを整理して書き直してください。
⭕ 改善後のプロンプト例(構造化・ステップ思考)
あなたは厳格な経理管理者です。以下の手順に従い、冷静にStep-by-Stepで精算承認の判定を行ってください。
手順1:特権の確認(即時承認)
出張地域が「海外」ですか?
Yes → 即座に「承認」と出力して終了
No → 手順2へ進む
手順2:欠格事由のチェック(重要)
以下の条件に対し、一つずつ [OK/NG] を判定してください。
1. 出張目的は「顧客との商談」か?
2. 移動手段は「公共交通機関」か?
3. 日当は社内規定の「上限額以下」か?
4. 証憑(領収書等)は「全て添付済み」か?
5. 申請は「出張日から1週間以内」に完了しているか?
最終判定:
1. 手順2の判定結果から、[NG]の総数をカウントしてください。
2. もし [NG]の総数が 0 ならば → 「承認」
3. もし [NG]の総数が 1以上 ならば → 「不承認」
【対象者データ】
(...データ省略...)
プロンプトの指示内容は長くなってしまいましたが、この書き方であれば適用業務の要件を満たしつつ、且つ生成AIの特徴に合った指示の仕方になっていると言えそうです。
まとめ:業務プロンプト作成のポイント
今回の調査から、社内業務で複雑な条件分岐をAIに任せる際の重要なポイントが見えてきました。
1. 「否定・例外」を後付けではなく先に確認する
「〇〇の場合はOK、ただし××はNG」という書き方は誤判定を招きやすいようです。「まず××(NG条件)を確認し、それに該当しなければ〇〇(OK条件)を見る」という判定順序(フロー)を指示に含めることが重要です。
2. 「AND条件」は「チェックリスト」に分解する
「AかつBかつCかつ…」と条件が増えるほど、AIの注意力は散漫になってしまいました。「全て満たすならOK」ではなく、「各項目をチェックし、NGがゼロならOK」というプロセスを踏ませましょう。
3. AIに「検品者」の帽子を被せる
AIは基本的にユーザーの役に立ちたがるため、肯定的な回答(許可など)を好むバイアスがあるようです。「厳格な管理者として不備を探せ」という役割を与えることで、このバイアスを抑制することができます。
4. 迷ったら「メタプロンプト」!
複雑な条件で迷ったら、今回のように「この条件でミスしないプロンプトを書いて」とAI自身に設計させるのが、最も高精度な近道です。
最後に
生成AIは柔軟性に長けており「文脈を読む」のが得意ですが、厳格性が求められる業務に適用する際には、論理やルールを優先するよう指示の仕方を工夫する必要が出てきます。
もし、社内ツールのAIが思ったような挙動をしてくれないときは、誤判定し易いプロンプトになっていないか見直してみてください。そして、AI自身に「どう書けば分かりやすい?」と相談してみることをお勧めします。AIは、自分自身の取扱説明書を一番よく知っているのですから。