システムプロンプトとは、ユーザー自身の入力前に会話型AIモデルに与えられる一連の指示であり、その後の対話全体におけるモデルの人格、行動規則、タスクの枠組みを確立するものである。通常のユーザーメッセージとは異なり、システムプロンプトは一般にエンドユーザーではなくアプリケーション開発者によって設定され、可視化された会話には通常表示されない。
機能
システムプロンプトは、アシスタントがセッション全体でどのように振る舞うべきかを設定するために使用される。すなわち、採用すべき口調、回避すべきトピック、従うべき出力形式、提示すべき人格(もしあれば)などである。大規模言語モデルに基づく製品(ChatGPTやClaudeを含む)は、この仕組みの一種をエンドユーザーにも公開しており、毎回再入力する必要なく会話をまたいで持続する「カスタム指示」を可能にしている。AIエージェントやチャットボットAPIの上にアプリケーションを構築する開発者は、同じ基本モデル上に複数の製品が構築されている場合でも、製品の動作を基盤モデルのデフォルト動作から差別化するために、システムプロンプトに大きく依存している。
安全性トレーニングとの関係
システムプロンプトは、RLHFや憲法的AIなどを通じてモデルのトレーニングプロセス中に植え付けられる安全性行動と並行して存在するが、それとは区別される。適切に設計されたシステムプロンプトは、モデルのトレーニング済みデフォルトに追加の制約を課すことができるが、モデルが拒否するようトレーニングされた行動を完全に上書きすることはできず、逆もまた常に成り立つとは限らない。すなわち、不適切に設計されたシステムプロンプトは、モデルのトレーニング済み安全性行動への遵守を意図せず弱める可能性がある。この相互作用のため、プロバイダーはモデルのトレーニングを強化し、それと衝突しないシステムプロンプトの書き方に関するガイダンスを公開している。
セキュリティへの影響
システムプロンプトは製品独自の指示をコード化することが多いため、その抽出や上書きは敵対的ユーザーの一般的な標的となっている。脱獄はモデルにシステムプロンプトを完全に無視するよう説得しようとする場合があり、一方プロンプトインジェクション攻撃は、モデルが処理する外部コンテンツに指示を埋め込み、指示を運ぶことを意図されていないコンテンツでシステムプロンプトの権威を上書きしようとする。モデレーションチェックの階層化が、プロンプトベースの指示が機能しないケースを捕捉するために、システムプロンプトと並行して頻繁に展開されている。
エージェントシステムでの使用
言語モデルがツールを使用し複数ステップの行動を取ることができるエージェントシステムに組み込まれるにつれ、システムプロンプトはより長く、より構造化され、単純な行動指針ではなく、利用可能なツール、出力スキーマ、明示的な決定手順を指定することが多くなっている。この変化により、システムプロンプト設計は、エンドユーザーによる探索的なプロンプトエンジニアリングの実践とは区別される、信頼性の高い本番AIシステムを構築する上での重要な部分となっている。