Agent SDK のシステムプロンプト|4つの変え方と選び方

この記事の要点
- 何も指定しないと、SDK は道具を呼ぶための最小限の指示だけを使う。Claude Code の安全の指示は入らない
- 迷ったら claude_code プリセット+append。何も消さずに自分の指示を足せるので、いちばん安全
- 会話の途中で指示を変えても、再開した会話にはすぐ届かない。変えたい時は次のメッセージかフックで伝える
AI エージェントを自社の仕事に合わせるとき、最初に触るのが システムプロンプト(AI の役割や守ることを決める最初の指示) です。ところが Agent SDK では、何も書かないと Claude Code と同じ指示にはならない など、知らないとつまずく点がいくつかあります。
この記事では、公式ドキュメント「Modifying system prompts」(2026年11月10日確認)にもとづいて、システムプロンプトの4つの変え方と、作るものに合わせた選び方を整理します。SDK の全体像は Claude Agent SDK とは を参照してください。
まず知っておきたい:何も書かないと「最小限」になる
systemPrompt を指定しないと、SDK は道具を呼ぶための最小限の指示だけを使います。 Claude Code 本体が持っている安全や作業のための指示は入りません。コマンドから claude -p で動かした時とは違うので、注意が必要です。
出発点は次の3つです。
| 出発点 | 中身 |
|---|---|
| 何も指定しない | 道具を呼ぶための最小限の指示だけ |
| claude_code プリセット | Claude Code 本体と同じ指示(道具の使い方・安全の指示を含む) |
| 自分で書いた文字列 | 書いたものだけ。それ以外は何も入らない |
作るものから選ぶ早見表
決め手は、作るものが Claude Code にどれだけ近いか です。人が画面を見ながら作業を進めるコード向けの道具なら、プリセットがそのまま合います。
| 作るもの | 選ぶもの |
|---|---|
| Claude Code に近い、コードを書く道具 | claude_code プリセット |
| 同じ道具に、社内のルールや出力の形を足したい | プリセット+append(いちばん安全) |
| 問い合わせ対応・分析など、名前や役割が違う AI | 自分で書いた文字列 |
| 指示はすべて依頼文に書く、薄い仕組み | 何も指定しない |
「Claude Code と違う」とは、たとえば 画面の出力を人が読まない、別の名前で名乗る、人の確認なしで動く、コード以外の仕事をする といった場合です。自分で書く場合は、プリセットにあった安全の指示を、自分で入れ直す責任があります。

4つの変え方を比べる
システムプロンプトそのものを変える以外にも、AI の動きを変える方法があります。大事なのは「どこに置かれ、何が残るか」 です。
| 方法 | 置き場所 | 共有 | Claude Code の指示 |
|---|---|---|---|
| CLAUDE.md | フォルダごとのファイル | チームで共有しやすい | そのまま残る |
| 出力スタイル | ファイル | ほかのフォルダでも使い回せる | 作業の指示は外れる(残す設定あり) |
| プリセット+append | プログラムの中 | 会話ごと | すべて残る |
| 自分で書いた文字列 | プログラムの中 | 会話ごと | すべて置き換わる |
CLAUDE.md はシステムプロンプトを変えず、会話の中に「フォルダの決まり」として差し込まれます。 そのため、どの変え方とも一緒に使えます。読み込むかどうかは settingSources で決まり、既定では読み込まれます。CLAUDE.md の書き方は CLAUDE.md の書き方 で、出力スタイルは Claude Code の出力スタイル で解説しています。
途中で指示を変えたいとき
ここがいちばんの落とし穴です。再開した会話(resume・continue)に別の append や文字列を渡しても、次の返事には届きません。 Claude Code は会話の最初の依頼でシステムプロンプトを記録し、会話が要約(圧縮)されるまで使い回すためです。
途中で変えたいときは、次のどちらかで伝えます。
- 次のメッセージに書く:新しい指示を、次に送る依頼文に入れる
- フックで伝える:依頼を送った時や道具を使った後のフックから、「いまは読み取り専用です」のような事実の一文を足す
文言を試している間だけは、記録を止める設定(snapshot を false)も使えます。ただし本番では記録を残したままにします。記録を止めると、キャッシュ(同じ指示の読み込みを安く速くする仕組み)が効かなくなるためです。キャッシュの考え方は プロンプトキャッシュ で解説しています。
たくさんの AI で同じ指示を使い回すコツ
同じプリセットと append を使っていても、利用者ごとの情報が指示の中に入ると、キャッシュを共有できません。 excludeDynamicSections(Python では exclude_dynamic_sections)を true にすると、利用者ごとの情報を最初のメッセージに移し、指示の部分を全員で同じにできます。そのぶん、移した情報は少しだけ効きが弱くなる、と公式は説明しています。
まとめ
- 何も書かないと最小限の指示。Claude Code と同じにしたいならプリセットを指定する
- 迷ったら プリセット+append。役割も名前も違う AI だけ自分で書く
- 途中の変更は次のメッセージかフックで。再開した会話にシステムプロンプトの変更はすぐ届かない
出典
この記事はAIを使って下書きし、著者が事実確認・加筆しています。ツールの機能や料金は変わることがあるため、最新の情報は各社の公式ページでご確認ください。


