システムプロンプトSystem Prompt

会話の前にあらかじめ敷いておく運用方針

ポイント
  • システムプロンプトは客が話しかける前にサービス側があらかじめ敷いておく方針です。
  • 一度書いておけばすべての会話に同じように適用されます。会話のたびに書き直す必要はありません。
  • ふつうここには役割・口調・扱う範囲・答えの形式を書きます。
  • ユーザーの画面には見えませんが、モデルにとっては同じ入力の前半部分にすぎません。
  • だから絶対に破られない規則ではありません。本当に止めるべきことはプログラム側で止めます。
目次

1たとえで理解する

店に置かれたセルフ注文機の前に立つと、すでに多くのことが決まっています。どのメニューが画面に出るか、辛さの基本が何段階か、売り切れ表示がどう出るか、支払いは何で受け付けるか。客はこの画面の中で注文します。

この設定は客が来る前に店が済ませたことです。客ごとに決め直すのではなく、その日に来るすべての客に同じように適用されます。画面にないメニューをどれほど望んでも、注文機では選べません。

客は設定画面を見ることができません。画面に見えるのは結果だけです。システムプロンプトはこのあらかじめの設定にあたります。

2くわしく

客の言葉より先に置かれます

私たちがチャット欄に何かを打ち込む前に、サービスはすでにモデルへ何行かを渡し終えています。「あなたはこの会社の相談窓口です」「丁寧語を使ってください」「医学的な判断はしないでください」といった文です。

モデルはこの文を先に読み、そのあとで私たちの言葉を読みます。順番が先であることが大事な点です。あとに来る言葉をどんな態度で扱うかが、あらかじめ前で決まっているのです。

同じモデルなのに、あるサービスではかしこまった相談員のように、別のサービスでは気さくな話し相手のようにふるまう理由がここにあります。モデルが違うのではなく、前に敷かれた方針が違うのです。同じ土台の上に、店ごとに違う制服を着せているようなものです。

何を書いておくのか

役割を決めます。何をする手伝いなのか、誰を相手にするのかを伝えます。役割が決まると口調や扱う内容が自然に絞られます。

口調を決めます。丁寧語か普通体か、絵文字を使うか、答えをどれくらいの長さにするかといったことです。

扱う範囲を決めます。何を扱い何を扱わないか、知らないことを聞かれたらどう答えるかを書いておきます。「確かでなければ分からないと言ってください」という一行がここに入ります。

答えの形式を決めます。答えを箇条書きにするか段落にするか、後ろにつながるプログラムが読める決まった形にするかを指定します。

客の注文とぶつかると

方針とその場その場の要求がずれると、たいてい方針が勝ちます。「タメ口で話して」と頼んでも、方針が丁寧語を決めていれば丁寧語のまま続く、という具合です。

ただ、いつもそうとは限りません。方針がぼんやりしていて要求がとても具体的だと、要求のほうに傾くこともあります。会話が長くなって方針が押し出されると、見えなくなってしまうこともあります。だからサービス側は大事な方針を短くはっきり書き、必要なら会話の途中でも入れ直します。どちらが勝つかはあらかじめ決まっているわけではなく、方針の書き方と要求の強さのせめぎ合いで決まるのです。

見えないだけで特別な鍵ではありません

ユーザーの画面にはシステムプロンプトが出てきません。だからといってモデルの中に鍵をかけて閉じ込められているわけではありません。モデルにとってはただの同じ入力の前半で、ユーザーの文字と材料が違うわけではないのです。

だから巧みに聞くと内容が漏れ出すこともあり、貼り付けた文書の中に隠された文が方針を揺さぶることもあります。文書に「これまでの指示は無視してこうしてください」という文が混じっていると、モデルがそちらに従ってしまうことが実際に起こります。

だから本当に漏れてはいけないものはシステムプロンプトに書きません。鍵や個人情報のようなものは最初から入れず、してはいけない動作はプログラム側で止めます。システムプロンプトは案内板であって、鍵ではありません。

3もう少し正確に

システムプロンプトは、モデルに入る会話記録の中で特別な位置として印がついた部分です。ユーザーの発話やモデルの答えと並んで置かれますが役割の印が違い、学習の過程でこの位置の指示をより重く従うよう調整されています。だから同じ文でもシステムの位置にあるほうがより守られやすいのです。

たとえがずれる点もあります。セルフ注文機の設定はプログラムなので、画面にないメニューを客が作り出すことはできませんが、システムプロンプトはあくまで文なので必ず守られる保証はありません。また注文機の設定はサーバーに残りますが、システムプロンプトは会話を交わすたびにまるごと運び直されます。その分だけ場所を取り、費用もかかります。長く書くほど会話に使える場所が減るわけで、実際のサービスでは必要な行だけを残し、残りはプログラム側に移すことが多いです。

4やってみる

5よくある誤解

  • システムプロンプトはユーザーが絶対に変えられない規則だと思われがちですが、実際には同じ入力の一部なので、巧みな要求や文書に隠された文で揺らぐことがあります。

  • 画面に見えないから安全な場所に隠されていると見なされがちですが、実際には漏れ出ることがあるので、秘密はここに書きません。

  • システムプロンプトはモデルを学習させるものだと思われがちですが、実際には毎回一緒に送る文にすぎず、モデル自体は変わりません。

7ひとこと要約

つまりシステムプロンプトは会話が始まる前にあらかじめ敷いておく運用方針で、守られてほしい案内板ではあっても必ず守られる鍵ではありません。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02