システムプロンプトとユーザープロンプトの違い——LLMは2つの指示をどう区別しているのか

Zenn / 2026/4/19

💬 オピニオンIdeas & Deep AnalysisTools & Practical Usage

要点

  • システムプロンプトはモデルの振る舞い(役割・制約・優先ルール)を規定する指示で、ユーザープロンプトは解きたい具体的な要求や入力に相当します
  • LLMはこの2種類の指示を階層として扱い、一般に「システムの方針」を優先しつつ、その上でユーザーの要望に応答する形で区別します
  • 実運用では、システム側で安全性・書式・トーンなどの土台を固定し、ユーザー側でタスク固有の指示を与える設計が有効だと説明されています
  • 指示の衝突や曖昧さがあると、モデルがどのルールを優先するかが品質・出力に影響するため、意図を明確に切り分ける重要性が示されています
システムプロンプトとユーザープロンプトの違い——LLMは2つの指示をどう区別しているのか ChatGPTやClaudeを使っていると、詳細設定では「system」とか「user」とか、入力欄が分かれていることに気づきますよね。APIを叩いたことがある人なら、role: "system" と role: "user" をJSON内で使い分けた経験があるはず。 でも、この2つ、何がどう違うのか。片方を空にしたらどうなるのか。LLMの中で本当に区別されているのか——意外とちゃんと説明できる人は少ないです。 「使い方」と「LLM内部の仕組み」の両面から整理していきます。 1. 一言で...

この記事の続きは原文サイトでお読みいただけます。

原文を読む →