エージェント基盤・プロトコル

システムプロンプトとは|会話の中で伝えた決まりごとは、9往復目に消えていた

システムプロンプトとは何を書く場所なのか会話の中で伝えるのと何が違うのかどこまで書けばよいのか

AIに守ってほしい決まりごとがあるとき、会話の最初に伝えるか、毎回送る指示として置くかで扱いが分かれます。後者がシステムプロンプトです。

履歴の削られ方を積み上げたところ、会話の中で伝えた決まりごとは9往復目に消えました。しかも消えたことは動作からしか分かりません。

この記事の要点

  • システムプロンプトは毎回まとめて送られる指示
  • 会話の中で伝えた決まりごとは9往復目に消えた
  • 毎回送る側は20往復で1,200トークンを使う
  • 書く量は期待する動作を過不足なく示す最小限にする

会話の中で伝えた決まりごとは、9往復目に消えていた

履歴の削られ方を積み上げました。会話の中の決まりごとは9往復目に消え、毎回送る側は20往復で1,200トークンを使います。

システムプロンプトに置くかどうかで何が変わるのかを、往復ごとに積み上げました。題材は「金額は税込で答える」といった3つの決まりごとです。

断っておくと、これはモデルを動かした実測ではありません。履歴が上限で削られる条件を置いて追った計算です。置いた値はコードに書いてあります。

javascript
const RULE_TOK = 60;
const PER_TURN = 900;
const LIMIT = 8000;

// A: 会話の1往復目で決まりごとを伝える。履歴が削られると一緒に消える
function inConversation(turn) {
  const fit = Math.floor(LIMIT / PER_TURN);          // 履歴に入る往復数
  const oldest = Math.max(1, turn - fit + 1);        // 残っている最古の往復
  return { alive: oldest <= 1, sent: RULE_TOK, oldest };
}

// B: 毎回送る指示に置く。履歴とは別枠なので削られない
function inSystem(turn) {
  return { alive: true, sent: RULE_TOK * turn, oldest: 1 };
}
text
往復  会話の中で伝える  毎回送る指示に置く
  1回  効いている             効いている
  5回  効いている             効いている
  9回  消えた               効いている
 10回  消えた               効いている
 15回  消えた               効いている
 20回  消えた               効いている

会話の中で伝えた決まりごとが消えるのは 9往復目

20往復ぶんで、決まりごとの送信に使うトークン量
  会話の中で伝える:    60 tok(1回だけ。ただし途中で消える)
  毎回送る指示に置く: 1200 tok(毎回送るぶん)
  差: 1140 tok

8往復目までは差がありません。差が出るのは履歴が上限に当たってからで、そこで会話の中の決まりごとだけが消えます。

消えたことは動作からしか分からない

この消え方が厄介です。エラーは出ません。税抜きの金額が返ってきて初めて、決まりごとが効いていないと気づきます

しかも気づくのは、決まりごとを外れた出力が実際に出たときだけです。外れなかった往復では、消えていても分かりません。

毎回送るぶんの費用

毎回送る側は20往復で1,200トークンを使います。会話の中で伝える方式との差は1,140トークンです。安いのは会話方式ですが、途中で消えます

履歴に置いた決まりごとは、上限に当たった時点で静かに消える。

充足 1 / 39往復目以降も効いている会話の中に置くと履歴から削られる。毎回送る指示なら残る消えたことに気づけるエラーは出ず、外れた出力が実際に出るまで分からない送信量が増えない会話の中なら60トークンで済む。毎回送ると20往復で1,200トークン会話の中に決まりごとを置いた場合の判定。1往復900tok・上限8000tokでの積み上げ。
図1 ── 20往復後に決まりごとが残っているか
出典Anthropic Engineering「Effective context engineering for AI agents」2026-08-17 確認
System prompts should be extremely clear and use simple, direct language that presents ideas at the right altitude for the agent.
原文Anthropic Engineering「Effective context engineering for AI agents」 この内容の有効期限2027-02-17

システムプロンプトとは何を書く場所なのか

毎回まとめて送られる指示です。役割、守ってほしい決まりごと、返してほしい形式を置きます。

システムプロンプトは、会話の内容とは別に、毎回まとめて送られる指示です。会話が何往復進んでも、同じものが毎回送られます。

置くもの

  1. 担わせたい役割。誰として答えるか
  2. 守ってほしい決まりごと。毎回守ってほしいもの
  3. 返してほしい形式。項目、長さ、言葉づかい
  4. 1回きりの依頼。ここではなく会話のほうに書く

4番目に注意してください。今日の依頼をここに書くと、明日も同じ依頼が送られ続けます

書き方が動作を決める

Anthropicは、プロンプト設計の主眼が効果的なプロンプト、とりわけシステムプロンプトをどう書くかにあるとしています。ここに何を書くかが、動作の土台になるという整理です。

同じ文書では、システムプロンプトは明確で、単純で直接的な言葉を使い、相手にとってちょうどよい粒度で示すべきだとも述べられています。細かすぎても抽象的すぎても効きません。

会話の中で伝える場合との違い

違いは1点で、削られるかどうかです。会話の中身は履歴の一部なので、上限に当たれば古い順に消えます。システムプロンプトは別枠なので残ります

余談 効いていない指示が残りやすい

運用していて気づいたのは、書いたまま誰も検証していない指示が溜まることでした。消しても動作が変わらない行は、毎回送られているだけで何もしていません。編集部では、1行ずつ外して動作が変わるかを確かめるようにしています。

出典Anthropic Engineering「Effective context engineering for AI agents」2026-08-17 確認
As the term implies, the primary focus of prompt engineering is how to write effective prompts, particularly system prompts.
原文Anthropic Engineering「Effective context engineering for AI agents」 この内容の有効期限2027-02-17

システムプロンプトはどこまで書けばよいのか

期待する動作を過不足なく示せる最小限です。増やすほど毎回の送信量が増え、指示どうしの優先順位も曖昧になります。

システムプロンプトの分量は、足りないと動作が安定せず、多すぎると効かなくなるという両側から挟まれます。

最小限を狙う

Anthropicは基準を明確に示しています。構成の仕方に関わらず、期待する動作を完全に示せる最小限の情報を目指すべきだ、という書き方です。

つまり短ければよいのでも、詳しければよいのでもありません。動作が決まる分だけ書いて、そこで止めるという基準になります。

増やすと優先順位が崩れる

指示が増えると、内容が衝突しはじめます。「簡潔に答える」と「根拠を必ず示す」を同時に書くと、どちらを優先するかは書かれていません

対処は2つあります。衝突する指示を減らすか、優先順位を明示することです。前者のほうが確実に効きます。

効いていない行を落とす

書いた指示が実際に効いているかは、外して動作が変わるかを見れば分かります。変わらないなら、毎回送っているだけの行です。

20往復で1,200トークンという前の節の数字は、決まりごと3つぶんです。指示が10倍になれば、その分だけ毎回の送信量に乗り続けます。文脈全体の設計はコンテキスト設計の記事で扱っています。

足りなくても多すぎても効かない。動作が決まる分だけ書く。

毎回守ってほしい内容かいいえ会話のほうに書くはい外すと動作が変わるかいいえ書かないはいシステムプロンプトに置く決まりごと3つで20往復1,200トークン。増やせばそのぶん毎回の送信量に乗る。
図2 ── システムプロンプトに書くかどうかの判断
決まりごとは検査でも押さえるシステムプロンプトに書いた決まりごとは、守られたかどうかを出力側でも確かめてください。指示は守られないことがあり、守られたかは文面からは判定できません。指示による制御の限界はガードレールの記事で扱っています。
出典Anthropic Engineering「Effective context engineering for AI agents」2026-08-17 確認
Regardless of how you decide to structure your system prompt, you should be striving for the minimal set of information that fully outlines your expected behavior.
原文Anthropic Engineering「Effective context engineering for AI agents」 この内容の有効期限2027-02-17

よくある質問

会話の最初に書くのと何が違うのですか
会話の中に書いた内容は履歴の一部なので、上限に当たれば古い順に削られます。システムプロンプトは履歴とは別枠で毎回送られるため、削られません。
長く書いても問題ありませんか
毎回送られるので、長いほど毎回の送信量が増えます。また指示が増えるほど、どれを優先するかが曖昧になります。
何を書けばよいですか
守ってほしい決まりごと、返してほしい形式、担わせたい役割です。1回きりの依頼はここではなく会話のほうに書きます。
消えたかどうかは確認できますか
直接は確認できません。決まりごとを外れた出力が出て初めて気づく形になります。ですから消えない場所に置くほうが確実です。

まとめ

  • システムプロンプトは履歴とは別枠で毎回送られる指示
  • 会話の中で伝えた決まりごとは9往復目に消えた
  • 毎回送るぶんの費用は20往復で1,140トークン多い
  • 書く量は期待する動作を示す最小限に絞る

今日から始められること

  1. AIに守ってほしい決まりごとを箇条書きにする
  2. そのうち毎回守ってほしいものだけをシステムプロンプトに移す
  3. 1回きりの依頼は会話のほうに残す
  4. 書いた指示のうち、実際に動作が変わらないものを削る

実務で組んだシステムプロンプトのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る