【AI活用ガイド】複合プロンプトと分割プロンプトの挙動比較と推奨ベストプラクティス
本記事では、AIエージェントへの問い合わせを使用する際、プロンプトの構成方法によって回答の精度や挙動がどのように変化するかを解説します。
概要
本記事では、AIエージェントへの問い合わせを使用する際、プロンプトの構成方法によって回答の精度や挙動がどのように変化するかを解説します。
具体的には、「一度に複数の指示を出す場合(複合プロンプト)」と「段階的に質問する場合(分割質問)」の違いを分析し、正確性が求められるテクニカル業務における推奨アプローチを定義します。
1.プロンプト構成による挙動の違い
FortiGateの脆弱性調査を例に、2つのアプローチの違いを比較します。
例1:複合プロンプト(一つのプロンプトに複数要求)
|
Fortinet社FortiGate 80F FortiOS v7.2.10を使用しています。当該バージョンに関連する脆弱性情報および影響範囲について詳しく説明してください。また、脆弱性対策済みの推奨ファームウェアバージョンがありましたら、リスト化して報告してください。 なお、回答を作成する際に参照した主な出典ドキュメント名と、可能であれば該当章・セクションを列挙してください。 また、リスク低減策としては、影響するSSL-VPN機能を一時的に無効化する方法を詳しく説明してください。 |
アプローチ:
「脆弱性情報」「推奨ファームウェア」「出典」「回避策(SSL-VPN無効化)」など、すべての要求を1つのプロンプトに詰め込む方法。
AIの挙動とリスク:
- 注意配分の分散: LLM(大規模言語モデル)は、確率的に「文章のどこに重点を置くか」を決定します。複数のタスクが混在すると、ある回では「脆弱性の説明」が詳細になる一方で「出典」が疎かになるなど、出力の優先順位が都度変動します(回答のブレ)。
- 内部計画の簡略化: モデル内部でタスクを分解・要約する際、トークン制限や処理の都合上、一部の指示が「優先度が低い」と判断され、省略されたり記述が薄くなったりする可能性があります。
例2:分割質問(マルチターン会話)
| Fortinet社FortiGate 80F FortiOS v7.2.10を使用しています。当該バージョンに関連する既知の脆弱性情報および影響範囲について、可能な範囲で詳しく説明してください。 |
| 上記を踏まえ、脆弱性対策済みの推奨ファームウェアバージョンがあれば、理由とあわせてリスト化してください。 |
| これまでの回答を作成する際に参照した主な出典ドキュメント名と、可能であれば該当章・セクションを列挙してください。 |
| より詳細な章立てや説明をしてください。 |
| CVE-2024-21762の対象バージョン、対策と回避策を詳しく説明してください。 |
| リスク低減策としては、影響するSSL-VPN機能を一時的に無効化する方法を詳しく説明してください。 |
アプローチ:
- 脆弱性情報の詳細のみを質問
- その情報に基づく推奨バージョンのみを質問
- 出典のみを確認
といったように、タスクごとにプロンプトを分ける方法。
AIの挙動とメリット:
- タスクの明確化: 「1プロンプト=1タスク」とすることで、AIは一つの目的にリソースを集中でき、回答の網羅性が向上します。
- 文脈の最適化: 前の回答内容を踏まえて次の質問ができるため、ユーザーが求める詳細度に合わせて回答が調整されます。
2.比較まとめ:なぜ挙動が変わるのか
|
比較項目 |
複合プロンプト(一括) |
分割質問(段階的) |
|
注意配分 |
複数のタスク間でリソースが分散する。詳細度が項目ごとにバラつきやすい。 |
単一タスクに集中できる。各項目の詳細度が高く維持される。 |
|
計画と要約 |
内部処理で「重要でない」と判断された項目が簡略化・省略されるリスクがある。 |
各ステップで独立して処理されるため、省略リスクが低い。 |
|
再現性 |
生成ごとに重点が変わるため、回答品質がブレやすい。 |
タスクが単純なため、安定した回答が得られやすい。 |
|
レビューの容易さ |
情報が混在しており、事実確認に手間取る。 |
項目ごとに検証できるため、トレーサビリティが高い。 |
3.推奨ベストプラクティス
結論:原則は「分割質問」を推奨
セキュリティ情報やバージョン選定など、「正確さ」と「トレーサビリティ(出典)」が重要視される業務では、タスクごとに質問を分割する方法を採用してください。
推奨フロー:
- 現状把握: 脆弱性の内容と影響範囲のみを深く掘り下げる。
- 解決策: 対策済みバージョンや回避策をリストアップさせる。
- 根拠確認: 参照したドキュメントや出典を整理させる。
例外:「構造化プロンプト」の活用
概要をざっくり把握したい場合など、どうしても一度に質問したい場合は、AIがタスクを認識しやすいよう「見出し」と「出力形式」を明示した構造化プロンプトを使用します。
【テンプレート:構造化プロンプト】
|
次の3点について、必ずすべて回答してください。 回答は「1.脆弱性情報」「2.推奨バージョン」「3.出典」の3つの見出しに分けて出力してください。 対象: [Fortinet社FortiGate 80F FortiOS v7.2.10] 1.脆弱性情報
|
構造化テンプレートを使った場合の回答
|
1.脆弱性情報 FortiGate 80F(FortiOS v7.2.10)に現時点で該当する主な既知脆弱性は以下の通りです。 ・CVE-2023-42789/CVE-2023-42790(キャプティブポータルの境界外書き込み/スタックオーバーフロー)、CVE-2024-21762(SSL-VPN接続時の境界外書き込み)、CVE-2024-23113(fgfmd デーモンプロセスの脆弱性)などが過去に報告されていますが、これらはいずれも7.2.6以前までが当該脆弱性バージョンであり、7.2.10自体はこれら主脆弱性の影響範囲外とされています。ただし、新規アドバイザリの発表や今後の報告にもご注意ください。一般的な攻撃シナリオには、認証されていないリモート攻撃者による細工されたリクエスト経由のリモートコード実行や、サービス停止(DoS)などが含まれます。 2.推奨バージョン 恒久的なリスク回避のため、FortiOS 7.2.7以降へのアップグレードが推奨されます。これらのバージョンでは、上記の主脆弱性(リモートコード実行や特権昇格、DoSなど)に対処済みです。加えて、新たな脆弱性情報が発表された際には速やかなアップグレード対応やSSL-VPN機能の無効化等、日常的な対策実施が望まれます。 3.出典 ・Fortinetナレッジベース『FortiGateのSSL-VPNヒープバッファオーバフローの脆弱性(FG-IR-23-097)』(1.脆弱性概要、2.対象バージョン、3.対応について) |
4.回答精度を高めるためのテクニック
プロンプトに追加することで、ハルシネーション(もっともらしい嘘)のリスクを低減し、根拠を強化するためのフレーズです。
根拠・出典を強化する追加フレーズ
日常的にプロンプトの末尾へ追加することを推奨します。
- 「回答の確実性のレベル(高・中・低)を示し、理由も簡単に説明してください。」
- 「推測を含む箇所は『推測』と明記してください。」
- 「公開情報に基づく一般的な回答であり、最終的な判断は公式ドキュメントを確認する必要がある旨も記載してください。」
チェック用フォローアップ質問
回答を得た後、その内容を検証するために投げかける質問です。
- 「いまの回答のうち、『確度が低い/推測が多い』と考えられる部分を明示し、その理由を説明してください。」
- 「上記回答で言及されたバージョンごとに、『なぜそのバージョンが推奨されるのか』をもう少し詳しく説明してください。」
5.業務適用ガイド
業務の重要度に応じて、以下のように使い分けることを推奨します。
- 日常的な調査・概要把握:
- 「構造化プロンプト」 + 「根拠強化フレーズ」 を使用。
- 重要案件(インシデント対応・構成変更検討):
- 「分割質問」 で各項目を深掘りする。
- 仕上げに 「チェック用フォローアップ質問」 で検証を行う。
この2段階アプローチにより、情報の品質と業務効率の両立が可能になります。
本記事を参考に、自動問い合わせ対応AIエージェントサービスをご活用いただければ幸いです。
【例1:複合プロンプトの実行サンプル】
| Fortinet社FortiGate 80F FortiOS v7.2.10を使用しています。当該バージョンに関連する脆弱性情報および影響範囲について詳しく説明してください。また、脆弱性対策済みの推奨ファームウェアバージョンがありましたら、リスト化して報告してください。 なお、回答を作成する際に参照した主な出典ドキュメント名と、可能であれば該当章・セクションを列挙してください。 また、リスク低減策としては、影響するSSL-VPN機能を一時的に無効化する方法を詳しく説明してください。 |
回答
Fortinet社のFortiGate (FortiOS v7.2.10) にはSSL-VPN機能にヒープバッファオーバフローの脆弱性(FG-IR-23-097, CWE-122)が存在します。攻撃者が細工したリクエストを送信した場合、任意コード/コマンドを実行される可能性があります。 ■対象バージョン
下記バージョン以降にアップグレードすることが恒久対策として推奨されています。
CLIで次の設定を実施してください。 config vpn ssl settings set status disable end この設定により、SSL-VPN機能が無効化され、脆弱性リスクを一時的に回避できます。 参考: OSのリリース状況や詳細はFortinet公式サポートサイトを参照してください。 ご不明点等ございましたらご相談ください。 参照: Fortinetナレッジベース「FortiGateのSSL-VPNヒープバッファオーバフローの脆弱性」 1.概要、2.対象バージョン、3.対応について ソース: |
【例2:分割質問の実行サンプル】
分割質問①
|
Fortinet社FortiGate 80F FortiOS v7.2.10を使用しています。当該バージョンに関連する既知の脆弱性情報および影響範囲について、可能な範囲で詳しく説明してください。 |
回答①
|
FortiGate 80F(FortiOS v7.2.10)には、下記のような既知の脆弱性が報告されています: 【主な脆弱性と影響範囲】 ・CVE-2022-42475(SSL-VPNのヒープベースのバッファーオーバーフロー) 認証されていない攻撃者が細工したリクエストを送信することで、任意コードやコマンドの実行が可能となる脆弱性です。影響範囲はFortiOS 7.2.0~7.2.2なので、ご利用バージョン(7.2.10)はこの特定脆弱性には含まれません。 ・CVE-2023-42789/CVE-2023-42790(キャプティブポータルの境界外書き込み/スタックオーバーフロー) 内部攻撃者によるリモートコード実行リスク。対象は7.2.0~7.2.5、7.2.6までなので7.2.10は含まれませんが、類似の脆弱性発見時は迅速な情報確認が必要です。 ・CVE-2024-21762(SSL-VPN接続時の境界外書き込み) 全体として7.2.6以前が対象ですが、より新しいバージョンも都度アドバイザリを確認することを推奨します。対象範囲は7.2.0~7.2.6。 ・CVE-2024-23113(fgfmdデーモンプロセスの脆弱性) 対象は7.2.0~7.2.6です。 【まとめ】 ご利用の7.2.10は上記の主要な脆弱性の影響対象バージョンから除外されていますが、新規に発表される脆弱性が追加される場合もありますので、最新アドバイザリやサポート情報を継続的にご確認ください。 システム保護のため、OSの早期アップデートやSSL-VPNの無効化など、防御策を講じることが推奨されます。 |
分割質問②
| 上記を踏まえ、脆弱性対策済みの推奨ファームウェアバージョンがあれば、理由とあわせてリスト化してください。 |
回答②
|
FortiGate 80F(FortiOS v7.2.10)に関係する最新の脆弱性の多くは、7.2.6以前や7.2.3以前が対象となるものが多数です。 推奨ファームウェアバージョンと理由
【理由】
|
分割質問③
| これまでの回答を作成する際に参照した主な出典ドキュメント名と、可能であれば該当章・セクションを列挙してください。 |
回答③
|
これまでの回答は、以下の主なナレッジベース・ドキュメントから参照しました: 主な出典ドキュメント
【補足】
|
分割質問④
| CVE-2024-21762の対象バージョン、対策と回避策を詳しく説明してください。 |
回答④
|
【CVE-2024-21762の詳細】 ■ 対象バージョン
■ 恒久対策(公式アップデート)
■ 暫定対策・回避策
この回避策は、本質的な恒久対策(最新バージョンへの早期アップグレード)が可能になるまでの暫定措置です。 出典:Fortinetナレッジベース「FortiOSにおける、SSL-VPN接続時の境界外書き込みの脆弱性(FG-IR-24-015/CVE-2024-21762)」内「対象バージョン」「脆弱性に対する対応について」セクション。 |
分割質問⑤
| リスク低減策としては、影響するSSL-VPN機能を一時的に無効化する方法を詳しく説明してください。 |
回答⑤
|
FortiGateでSSL-VPN機能を一時的に無効化するには、GUIまたはCLIより以下の手順を実施します。 【GUIの場合】
【CLIの場合】
config vpn ssl settings set status disable end 【補足】 ・SSL-VPNを無効化することで、インターネット側からのSSL-VPNアクセスが遮断され、緊急のリスク低減策となります。 参考:Fortinet Document Library「SSL VPN security best practices」。 ソース: |
以上