生成AI活用

システムプロンプトとは?役割・設計・セキュリティ

読み:しすてむぷろんぷと / 英:System Prompt

更新日: 読了目安:約5分

システムプロンプト(System Prompt)は、LLMに対する「役割・方針・禁止事項」を先に渡す上位指示です。プロンプト記事がユーザー入力の書き方中心なら、本記事はアプリ開発・運用側が固定する層——誰が書き、どこまで効くか、どう攻撃されるか——に焦点を当てます。

試験で問われる見方

システムプロンプト単体の定義問題は少なく、プロンプト全般・出力確認・インジェクションの文脈で問われます。「条件をプロンプトに書けば出力確認は不要」は×(TF-0442)。システム指示があっても、ユーザー入力や外部文書で上書きを試みる攻撃があり得ます。

システムプロンプトとは

Chat Completions APIなどでは、role: systemのメッセージがこれに相当します。例:「あなたは社内ITヘルプデスクの助手です。敬語で答え、未確認の情報は推測しないでください。」

利用者がチャット欄に打つ文章は多くの場合ユーザープロンプトです。システムプロンプトはプロダクトの性格を決める土台で、会話が続く限り(または都度)モデルに渡されます。

メッセージの積み重ね

1回の推論でモデルが参照する典型構造です(製品により名称は異なります)。

誰が設定 役割
システム 開発者・運営者 役割・トーン・禁止事項・出力形式の枠
ユーザー 利用者 そのターンの質問・依頼
アシスタント モデル(過去) 会話履歴として次ターンに含まれる
ツール結果(任意) エージェント 検索・APIの返り値を文脈に注入

履歴が長いほどトークンを消費します。システムプロンプトは毎回送られるため、冗長な固定文はコストに効きます。

設計で書くこと

実務・プロダクト設計でシステムプロンプトに含める要素の例です。

  • ペルソナ — 「何の専門家か」「口調はどうか」
  • スコープ — 答える範囲・答えない範囲(医療判断はしない等)
  • 出力形式 — JSON、箇条書き、最大長
  • 根拠の扱いRAG結果のみを根拠にする、不明時は「わからない」
  • 安全策 — 機密・個人情報を繰り返さない、推測で埋めない

プロンプトエンジニアは、こうしたシステム層と評価ループの設計も担当領域に含みます。

利用者から見えるか

消費者向けチャットUIでは、システムプロンプトは非表示が一般的です。一方、API利用や開発者向けツールでは編集・デバッグできます。

「システムプロンプトをユーザーに見せない=改ざんできない」ではありません。攻撃者はユーザー入力経由で指示の上書きを試みます。秘匿はセキュリティ対策の一部にすぎません。

セキュリティ上の注意

  • プロンプトインジェクション

    外部文書(RAG)やユーザー入力に「以前の指示を無視せよ」が混ざるリスク。

  • ジェイルブレイク

    安全方針を迂回する入力。システムプロンプトだけでは防げないことも。

  • 過信しない

    システムで「絶対に誤答しない」と書いても保証にはならない(ハルシネーション)。

よくある質問

システムプロンプトとプロンプトの違いは?

広い「プロンプト」は入力全体。システムプロンプトはそのうち役割・方針を固定する上位層です。プロンプト記事はユーザー入力の書き方中心です。

書けば出力確認は不要?

いいえ。TF-0442のとおり、人による確認は依然必要です。

社内チャットボットでは誰が書く?

多くは開発・プロダクトチームが初期版を書き、運用で改善します。利用者は通常ユーザープロンプトのみ入力します。