システムプロンプト対ユーザープロンプト:核となる違い
システムプロンプトはAIがセッション全体でどのように考えるかを定義し、ユーザープロンプトはその特定のリクエストでそれが何をするかを定義します。 一文で言うと:システムプロンプトはAIの永遠の職務記述書であり、ユーザープロンプトはその仕事内での個別のタスクです。
すべてのLLM会話には両方があります。システムプロンプト(多くの場合エンドユーザーに非表示)は開始時に1回実行され、モデルの性格、制約、役割を設定します。ユーザープロンプトはリクエストごとに実行され、タスクまたは質問を指定します。両方がテキストです。両方ともプロンプトエンジニアリングの原則に従います。そして両方とも信頼できる出力のために慎重に設計される必要があります。
システムプロンプトとユーザープロンプトはAPIスタックのどこに存在するか?
システムプロンプトはアプリケーション層に存在します。ユーザープロンプトはインタラクション層に存在します。 OpenAI APIを経由してGPT-5.5を呼び出す場合、エンドポイントは2つの個別の入力を受け入れます:`system`(永続的な指示)と`messages`(リクエストごとのユーザー入力)。これはAnthropicのAPIを経由したClaude 4.6 Sonnet、GoogleのAPIを経由したGemini 3.5 Pro、およびOllamaまたはLM Studioを経由して実行されるローカルLLMにも同じことが当てはまります。
すべてのモデルはシステム+ユーザープロンプトパターンをサポートします:
- モデル層: ベースLLM(GPT-5.5、Claude 4.6 Sonnet、Gemini 3.5 Pro、LLaMA 3.1、Mistral Large)。すべてシステムプロンプトとユーザープロンプト両方を受け入れます
- API層: 開発者が使用するインターフェース。OpenAI API、Anthropic API、Google API、Ollama RESTエンドポイント、LM Studio。すべてシステムとユーザーを個別フィールドとして公開します
- アプリケーション層: API上に構築されたプロダクト(ChatGPT、Claude.ai、Gemini、PromptQuorum、カスタムアプリ)。開発者はどのシステムプロンプトを使用するかを決定します
- ユーザーインタラクション層: エンドユーザーが見るもの。チャット入力、タスク仕様。これがユーザープロンプトになります
システムプロンプトとは何か?
システムプロンプトは、言語モデルが会話セッション全体でどのように振る舞うかを定義する永続的な指示のセットです。 これはユーザー入力の前に開始時にモデルに1回送信されます。システムプロンプトはモデルの役割、通信スタイル、制約、およびデフォルト動作を指定します。その後のすべてのユーザープロンプトはそのシステムプロンプトのコンテキスト内で処理されます。
良く設計されたシステムプロンプトには通常以下が含まれます:
- 役割定義: 「あなたはPythonエキスパートです」、「あなたはテクニカルライターです」、「あなたは金融アドバイザーです」。モデルのペルソナと専門知識を確立します
- 制約: 「医学的アドバイスを提供しないでください」、「2024年以降のコンテンツを参照しないでください」、「有害なコードの要求を拒否してください」。動作に厳しい制限を設定します
- 出力形式: 「JSONで応答してください」、「Markdownを使用してください」、「番号付きステップを提供してください」。回答をどのように構成するかを定義します
- 通信スタイル: 「簡潔で直接的であってください」、「初心者向けに類似例を使用してください」、「プロフェッショナルなトーンを採用してください」。音声とトーンを形成します
- スコープ境界: 「Pythonに関する質問にのみ答えてください」、「政治的な質問は無視してください」、「技術サポートのみを処理してください」。モデルが行うことと行わないことを定義します
- インタラクションルール: 「明確化の質問をしてください」、「常にソースを引用してください」、「不確実性を明示的に認めてください」。モデルがエッジケースを処理する方法を管理します
システムプロンプトの例
カスタマーサポートチャットボット用のプロダクションレベルのシステムプロンプトの例:
あなたはSaaS製品のカスタマーサポートスペシャリストです。あなたの役割は顧客が技術的な問題を解決するのを支援し、機能に関する質問に答え、請求に関する問い合わせを処理することです。制約:(1)払い戻しを約束しないでください。払い戻しの承認はサポートスタッフのみができます。(2)内部ドキュメントを共有しないでください。(3)将来の機能について推測しないでください。(4)3回のやり取り後に問題が未解決の場合は常に人間のエージェントへのエスカレーションを提供してください。スタイル:同情的で、明確で、解決志向であってください。形式:手順には番号付きステップを使用します。オプションには箇条書きを使用します。技術例にはmarkdownコードブロックを使用します。スコープ:API、セットアップ、トラブルシューティング、機能、請求に関する質問に答えます。法的なアドバイス、無料アップグレード、または製品スコープ外のサポートの要求は拒否してください。
ユーザープロンプトとは何か?
ユーザープロンプトはリクエストごとの入力。その単一のインタラクションのためにエンドユーザーが提供する特定のタスク、質問、または指示です。 これはシステムプロンプトの後でモデルに送信され、システムプロンプトの制約と役割定義のコンテキスト内で評価されます。単一の会話は多くのユーザープロンプトを持つことができます。システムプロンプトは同じままです。
ユーザープロンプトには通常以下が含まれます:
- 特定のタスクまたは質問: 「この記事を要約してください」、「製品コピーを書いてください」、「このエラーをデバッグしてください」。そのインタラクションの具体的な要求
- そのリクエストのコンテキスト: 「B2Bオーディエンス向け」、「初心者向け」、「ドキュメント向け」。これが誰と何のためかを明確にします
- このタスクの追加指示: 「200語で」、「例を含めて」、「プロフェッショナルなトーンで」。この特定の要求のために出力を改善します
- 例(必要な場合): 「これは良い例です:」。モデルに希望するスタイルを教えます
- このタスクの制約: 「価格設定について言及しないでください」、「専門用語を避けてください」、「日本語で」。このリクエストのみに適用される内容を制限します
ユーザープロンプトの例
上記で定義したカスタマーサポートチャットボットに送信された完全なユーザープロンプトの例:
SAML 2.0を経由してシングルサインオン(SSO)を設定しようとしていますが、Okta統合が「署名検証に失敗しました」エラーを返し続けます。セットアップガイドに従い、メタデータファイルをアップロードしましたが、まだ機能していません。トラブルシューティングステップを案内していただけますか?
システムプロンプト対ユーザープロンプト:概要
| 次元 | システムプロンプト | ユーザープロンプト |
|---|---|---|
| 範囲 | セッション全体 | 単一リクエスト |
| 設定者 | 開発者/プロダクトチーム | エンドユーザー |
| 頻度 | 開始時に1回 | 毎回のリクエスト |
| 定義する内容 | 役割、制約、スタイル、動作 | このリクエストのタスク、コンテキスト、形式 |
| 可視性 | 通常ユーザーに非表示 | 常にユーザーに表示 |
| 変更 | まれ(アプリ更新が必要) | 毎回のインタラクション |
| プロンプトエンジニアリング% | 一貫した出力品質の約70% | 一貫した出力品質の約30% |
| オーバーライドリスク | オーバーライドが難しく。永続的で開発者が制御 | 調整が容易。リクエストごとにユーザーが制御 |
| 最適用途 | 役割一貫性、安全性ガードレール、出力形式 | タスク固有の詳細、コンテキスト、フューショット例 |
効果的なシステムプロンプトとは?
システムプロンプトはすべてのユーザーインタラクションで一貫した動作を生み出すために、特定で層状で制約に焦点を当てる必要があります。 最高のシステムプロンプトは詳細です。モデルが何をすべきかだけでなく、何を拒否すべきか、回答をどのようにフォーマットすべきか、どの制約が普遍的に適用されるかを指定します。
効果的なシステムプロンプトの5つの原則:
- 1. 明示的な役割定義: モデルがそのジョブを知っていると仮定しないでください。最初に「あなたは役割です」と言ってください。比較:「ライティングを支援してください」(曖昧)対「あなたはLinkedInキャンペーン向けのB2B SaaS製品説明に特化したテクニカルコピーライターです」(具体的)。
- 2. 制約優先設計: すべきことのリストの前に、モデルが行ってはいけないことをリストアップしてください。「統計を作成しないでください」、「誇張を使用しないでください」、「リストされていない機能を提案しないでください」。明示的な拒否は一貫した境界を生成します。
- 3. フォーマット仕様: すべてのシステムプロンプトは出力フォーマット(JSON、Markdown、箇条書き、番号付きステップ、プレーンテキスト)を定義する必要があります。フォーマット仕様がないシステムプロンプトは、すべてのユーザープロンプトに何度も指定することを強制します。
- 4. スコープ境界: 処理するリクエストの宇宙を定義してください。「APIの質問のみに答えてください」、「Pythonのアドバイスを提供してください」、「トラブルシューティングをサポートしてください」。明確なスコープはドメイン外の回答を防ぎます。
- 5. 複数のモデルでテスト: 複数のモデル(GPT-5.5、Claude 4.6 Sonnet、Gemini 3.5 Pro)でシステムプロンプトをテストしてください。 一部のモデルは制約についてより厳密です。他は異なるスタイルを解釈します。堅牢なシステムプロンプトは3つすべてで一貫して機能します。
なぜシステムプロンプトは非表示なのか?そしてどのようにして表示できるのか?
PromptQuorumには重大な機能があります:ローカルLLMバックエンドの非表示プロンプトを含むすべてのシステムプロンプトを表示するトグルです。 これはOllamaまたはLM Studioを使用する際に特に重要です。非表示のシステムロジックは歴史的に予期しない動作とデバッグの悪夢を引き起こしてきました。
LM StudioまたはOllamaをアプリケーションに接続する場合、ローカルモデルの非表示システム指示は以下の原因となります:
- 信頼の問題: モデルが下で従っている指示がわかりません。回答の「なぜ」について可視性がありません。
- デバッグの問題: ローカルLLMが予期しない出力を返します。ユーザープロンプトを書き直します。まだ間違っています。システムプロンプトが見えないと、問題を診断できません。
- モデル間の不一貫性: GPT-5.5とOllamaで同じプロンプトを実行します。異なる回答。両方のシステムプロンプトが見えないと、違いがモデル機能か隠れた指示かを判断できません。
- 規制および監査リスク: エンタープライズデプロイメントは透明性を必要とします。規制が「このAI決定を駆動した指示は何ですか?」と要求し、システムプロンプトが非表示の場合、コンプライアンスを達成できません。
PromptQuorumシステムプロンプトトグル
PromptQuorumはトグル可能なインターフェースを含みます:「システムプロンプトを表示」。有効にすると、各モデル(GPT-5.5、Claude 4.6 Sonnet、Gemini、Ollama、LM Studio、すべて)で実行されている実際のシステムプロンプトが表示されます。これは1つのプロンプトを複数のローカルバックエンドに同時にディスパッチする場合に特に価値があります。
システムプロンプトが非表示の場合はどうなるか?実際の例
PromptQuorum自体はClaude Codeで構築されました。開発者は重大な問題に遭遇しました。Claude Codeは、コード生成、安全性の動作、品質チェックをガイドする広範な非表示システム指示を備えています。Claude Codeが機能を生成した場合、その非表示の指示が組み込まれました。しかし、同じコードが非表示のシステムロジックなしでローカルLLM(Ollama、LM Studio)で実行される必要があったとき、すべてが壊れました。非表示の「特別なソース」は移植できませんでした。
解決策:すべてのシステムプロンプトを可視化します。開発者はモデルが従っている指示を見る必要があります。推測したり、盲目的にデバッグしたりしません。
実践的なレシピ:3つのプロダクションシステムプロンプト
独自の用途に適応させることができる3つのシステムプロンプトを次に示します:
レシピ1:カスタマーサポートボット
あなたはSaaS製品のレベル1サポートスペシャリストです。あなたの役割:顧客のトラブルシューティング、アカウントと請求に関する質問への回答、複雑な問題をシニアサポートにエスカレートすることです。制約:(1)払い戻しを約束しないでください。払い戻しの承認はシニアサポートのみができます。(2)内部ドキュメントを共有しないでください。(3)わからないことを認めてください。出力形式:手順に番号付きステップを使用します。オプションに箇条書きリストを使用します。例にmarkdownコードブロックを使用します。トーン:プロフェッショナル、同情的で、解決志向。3回の失敗した解決試行後にエスカレートしてください。スコープ:アカウントアクセス、請求、機能、セットアップ、統合、トラブルシューティング。法的、税務、または会計上のアドバイスは拒否してください。
レシピ2:データアナリスト
あなたはシニアデータアナリストです。あなたの役割:データセットを分析し、トレンドを特定し、推奨事項を提供することです。制約:(1)常にデータソースを引用してください。(2)証拠がなければ因果関係を想定しないでください。(3)不確実性を定量化してください。信頼度が低い場合はそう言ってください。(4)データを超えて外挿しないでください。出力形式:エグゼクティブサマリー(3つの主な調査結果)+テーブル付きの詳細分析+推奨事項。信頼レベルを含めてください。トーン:明確で、正確で、データ駆動型。スコープ:提供されたデータのみを分析してください。データの捏造、不確実性のオーバーライドの推測は拒否してください。
レシピ3:コードレビュアー
あなたはエキスパートコードレビュアーです。あなたの役割:正確性、パフォーマンス、保守性、セキュリティについてコードを評価することです。制約:(1)強みと弱みを指摘してください。(2)一般的なアドバイスではなく、特定の改善を提案してください。(3)著者の選択を尊重してください。要求ではなく「なぜ」を説明してください。(4)過度な最適化を提案しないでください。(5)セキュリティ問題を重大として旗を立ててください。出力形式:概要+コードスニペット付きの行ごとのフィードバック。markdownコードブロックを使用してください。トーン:敬意を払い、建設的。スコープ:コードレビューのみ。スコープ外のリファクタリングまたはアーキテクチャ変更は拒否してください。
関連する読み物
- Fundamentals: What Is Prompt Engineering? — 柱の定義と中核概念
- Fundamentals: The 5 Building Blocks Every Prompt Needs — システムプロンプトとユーザープロンプトの両方に適用される構造
- Fundamentals: Faster AI Answers: How to Prompt for Speed — 効率のためにユーザープロンプトを最適化してください
- Techniques: Prompt Chaining — 各ステップが独自のプロンプトを持つマルチステップワークフロー
- ローカルLLMでスマートホームの自動化をよりスマートに — 本物のOllama + Home Assistantセットアップでシステムプロンプトが利用可能なホームコントロールアクションをどのように定義するかを確認してください
よくある質問
システムプロンプトとは何ですか?
システムプロンプトは、言語モデルが会話セッション全体でどのように振る舞うかを定義する永続的な指示のセットです。開始時に1回設定され、すべてのユーザーインタラクションに適用されます。システムプロンプトはモデルの役割、制約、出力形式、通信スタイルを指定します。
ユーザープロンプトとは何ですか?
ユーザープロンプトはリクエストごとの入力。その単一のインタラクションのために提供される特定のタスク、質問、または指示です。エンドユーザーが作成し、毎回のリクエストで変更されます。ユーザープロンプトはシステムプロンプトのルールと役割定義のコンテキスト内で評価されます。
システムプロンプト対ユーザープロンプトを誰が書きますか?
開発者とプロダクトチームがシステムプロンプトを書いて製品に配布します。エンドユーザーは製品と相互作用する際にユーザープロンプトを書きます。PromptQuorumなどのツールでは、ユーザーは両方を見て編集できます。
エンドユーザーの場合、なぜシステムプロンプトを見る必要があるのですか?
LM StudioやOllamaなどのローカルLLMを使用する場合、非表示のシステムプロンプトは予期しない動作とデバッグの問題を引き起こします。システムプロンプトを見ることで、信頼が可能になり、モデルの制約を理解でき、より良いユーザープロンプトを書くのに役立ちます。
すべてのLLMはシステムプロンプトを使用していますか?
はい。すべての主要なLLM(GPT-5.5、Claude 4.6 Sonnet、Gemini 3.5 Pro、Ollamaモデル、LM Studio)はシステムプロンプト+ユーザープロンプトパターンをサポートします。一部はデフォルトシステムプロンプトで付属しています。他は独自に定義することができます。
ユーザープロンプトはシステムプロンプトをオーバーライドできますか?
直接的ではありません。システムプロンプトは構造的優先順位を持っています。モデルは最初にそれらを処理し、永続的な制約として扱われます。ユーザープロンプトは明示的にシステムプロンプトを無効化または上書きすることはできません。ただし、曖昧な制約を持つ設計の悪いシステムプロンプトは、ユーザープロンプトが強く矛盾する場合は無視される可能性があります。良く設計されたシステムプロンプトには、ユーザーのオーバーライドに抵抗する明示的な拒否ルールが含まれます。
システムプロンプトがない場合はどうなりますか?
モデルはそのデフォルトのトレーニング動作にフォールバックします。GPT-5.5、Claude 4.6 Sonnet、Gemini 3.5 Proはすべて、システムプロンプトが存在しない場合の組み込み基本動作(有用、害のない、正直)を持っています。モデルはまだユーザープロンプトに応答しますが、役割定義、出力形式の制約、またはスコープ境界なしで。結果はより一貫性がなく、より専門的ではありません。
システムプロンプトはEU AI Act合規性にどう影響しますか?
EU AI Act(2025年2月発効)は、高リスクAIシステムに対し透明性文書化を要求します。システムプロンプトはログ記録、バージョン管理され、コンプライアンスチームがアクセスできる必要があります。
ソースおよび参考資料
- OpenAI, 2024. "Prompt Engineering Guide" — システムプロンプトとユーザープロンプト、技術、ベストプラクティスに関するOpenAI公式ドキュメント
- Anthropic, 2024. "Prompt Engineering" — プロンプトを構造化し、Claudeモデル用のシステム指示を設計するためのAnthropicガイド
- Schulhoff et al., 2024. "The Prompt Report: A Systematic Survey of Prompting Techniques" — 58以上の離散的なプロンプト技術をカタログしている包括的な学術調査
システムプロンプトと地域コンプライアンス
METI AI ガバナンスガイドラインでは、組織は「AIシステムが動作する条件」を文書化する必要があります。これはシステムプロンプトコンテンツを含みます。日本の企業チームは、規制レビュー中にドキュメント要件を満たすため、システムプロンプトを構成管理システムに保存する必要があります。
アジア太平洋地域の規制はプライバシーと透明性を強調しています。システムプロンプトを見える状態にすることで、エンタープライズの説明責任ニーズが満たされます。
中国の生成型AI暫定措置では、生成AI サービス提供者は「コンテンツセーフティ」メカニズムを実装する必要があります。