モデル間でプロンプトを移植する
あるモデルで見事に動くプロンプトがある。今度はそれを別のモデルで動かす必要がある — クライアントが GPT を使っている、コスト目標のためにオープンモデルへ移らざるを得ない、あるいは Claude と Gemini を A/B テストしている、といった具合だ。朗報は、どのプロバイダーの公式ドキュメントでも繰り返し述べられているとおり、良いプロンプトの骨格は普遍的だということ。変わるのは、表層的な慣習という薄い一層だけだ。このページではその二つを切り分け、書き直さずにプロンプトを移せるようにし、さらに繰り返し使える移行ワークフローと移植可能なテンプレートを提供する。
- プロンプトのどの部分が Claude、GPT、Gemini、オープンモデルの間できれいに引き継げるかを理解する
- どの部分がモデルごとの調整を必要とするか — そしてその理由を理解する
- 試行錯誤の書き直しではなく、繰り返し使える移行ワークフローを実行する
- ターゲットごとに特化できる、移植可能でモデル中立なプロンプトテンプレートを保持する
メンタルモデル:構造は引き継げる、慣習は引き継げない
どんなプロンプトも二つの層として捉えよう。
- 推論層(reasoning layer) — 何を尋ねているか、どんなコンテキストを与えるか、例、求める出力。これはコミュニケーションに関わるもので、モデルをまたいでもほぼそのまま引き継げる。
- 慣習層(convention layer) — この特定のモデルが、そのコミュニケーションをどう包装してほしいか。システムプロンプトをどこに置きどれだけ強く従うか、XML を好むか Markdown を好むか、正確なツール呼び出しスキーマ、デフォルトのおしゃべりさやリフューザルの姿勢、どの生成パラメータが存在するか。
プロンプトの移植は、推論層の書き直しになることはほとんどない。それは慣習層の再フィッティングだ。この区別を正しく押さえれば、移行は不可解なものではなく機械的なものになる。(そもそもプロバイダー中立にターゲットを選ぶ方法については、モデルを選ぶを参照。)
きれいに引き継げるもの
これらは Claude、GPT、Gemini、主要なオープンモデルのいずれでも同様に成り立つ — 各プロバイダーのベストプラクティスドキュメントが独立にこれらを推奨している。
- 明確な役割 + タスク + 明示的な指示。 「あなたは X です。あなたの仕事は Y です。次のルールに従ってください。」どのプロバイダーもペルソナ/役割の構造を文書化しており、曖昧なものより具体的で明確な指示を好む。
- 具体的な例(few-shot)。 入力→出力のペアを 2〜5 個示すと、説明するよりも確実にパターンを教えられる。主要な三つのプロバイダーはいずれも明示的に few-shot の例を推奨しており、Gemini のドキュメントはほぼ常に含めるべきだとまで言っている。
- 指定された出力フォーマット。 「列 X、Y、Z を持つ Markdown テーブルを返す」あるいは「JSON のみ、散文なし」はどこでも機能する。厳格モードの仕組みが異なっても(後述)、指示自体は引き継げる。
- 思考連鎖(chain-of-thought)/「答える前に推論する」。 難しいタスクで段階的な推論を求めると、モデルをまたいで結果が改善する。モデルごとに当てはまる注意点が一つある。専用の推論/思考モデルはこれを内部で行うことが多いため、明示的な「ステップごとに考えよ」は冗長、あるいは逆効果になり得る — 調整リストを参照。
- グラウンディング/RAG。 「以下のコンテキストのみを使うこと。答えがそこになければ、わからないと言うこと。」取得したコンテキストを与え、モデルをそれに制約するという規律は普遍的だ — どのプロバイダーも、ハルシネーションを減らす方法として RAG 風のグラウンディングを文書化している。
- 長いコンテキストを先に、質問を最後に。 文書/データを先頭に、指示を末尾に置く。この順序はモデルをまたいで有効で、Gemini のガイダンスでも明示的に言及されている。
プロンプティングの基礎を身につけていれば、移植可能な 80% はすでに手中にある。
モデルごとに調整が必要なもの
これが慣習層 — 本当に違う部分だ。移行するときはこれらを再フィッティングする。
| 観点 | モデル間で何が変わるか | 何をすべきか |
|---|---|---|
| システムプロンプトの扱いと重み | どのモデルにもシステム/開発者メッセージはあるが、それがユーザーのターンをどれだけ強く上書きするかは異なる。専用の開発者/システム役割をユーザー指示より上に重み付けするモデルもあれば、その境界が曖昧なモデルもある。 | システムプロンプトが同じ強さで従われると仮定しないこと。制約が実際に保たれるか再テストし、すり抜けるなら重要なルールをより上位へ昇格させる。 |
| XML 対 Markdown 対デリミタ | Claude は指示/コンテキスト/例を分けるのに XML タグを特によく解析する。GPT と Gemini も XML を受け付けるが、Markdown の見出しやデリミタにも依拠する。 | 何らかの明示的な構造は保ちつつ、その流儀をターゲットの好みに合わせて入れ替える。プロンプトのフォーマットを望む出力に合わせると、出力スタイルも誘導できる。 |
| ツール/関数呼び出しの JSON 形状 | ループ(ツールを宣言 → モデルが呼び出しを要求 → あなたが実行 → 結果を返す)はどこでも同一だが、ワイヤフォーマットは違う — フィールド名、呼び出し/結果がメッセージリストにどう収まるか、厳格モードのオプションが異なる。 | 生のツール JSON をプロバイダー間でコピーしてはいけない。ターゲットのスキーマに再マッピングする。ツール利用を参照。 |
| デフォルトの冗長性 | 新しいモデルはデフォルトで簡潔になる傾向があり、詳細はこちらが尋ねることを期待する。古いモデルはよりおしゃべりだった。 | プロンプトを移植して答えが短く/長くなったら、プロンプトのせいにする前に冗長性を明示的に設定する。 |
| リフューザル/安全性の姿勢 | どのモデルも、際どい要求を拒否したり言葉を濁したりする独自の閾値を持ち、これらはリリースのたびに再チューニングされる。 | 移植後にエッジケースを再テストする。あるモデルでは一度もリフューザルを引き起こさなかったプロンプトでも、別のモデルでは再フレーミングが必要になることがある。 |
| 回答のプレフィル | フォーマットを強制するためにアシスタントの口に言葉を入れるのは、Claude 時代の古典的なレバーだ — しかし新しい Claude モデル(4.6 以降)はプレフィルされた最終アシスタントターンを拒否し、他所でのサポートもまったくまちまちだ。 | プレフィルを、直接の指示(「前置きなしで応答せよ」)、出力スキーマ、またはツール呼び出しに置き換える。 |
| ストップシーケンスと max tokens | すべてが長さの上限を公開し、ほとんどがストップシーケンスを公開するが、パラメータ名、デフォルト、上限が異なる — そして一部の思考バジェットのつまみは、effort/max_tokens を優先して非推奨化されつつある。 | ターゲット側でパラメータ名と上限を再確認すること。古い値がそのまま移植できると仮定しない。 |
移行ワークフロー
移植は、当てずっぽうの書き直しではなく、短く規律のあるループとして扱う。
- 既存のプロンプトを読み、頭の中で分割する。推論層(役割、タスク、コンテキスト、例、出力仕様)対 慣習層(XML/Markdown の選択、プレフィル、ツール JSON、パラメータ)。前者は保ち、後者を再フィッティングする。
- 意味ではなく慣習であるものをすべて取り除く。単なる構造だった XML タグ、プレフィルのターン、ターゲットが内部で推論するなら不要なモデル固有の『ステップごとに考えよ』、そして古いツール呼び出しスキーマ。これで、クリーンで中立な核ができる。
- ターゲットの好む流儀で構造を戻す(XML があった所には Markdown の見出しやデリミタ)。システムプロンプトを設定し、期待どおりに重み付けされているか確認する。冗長性を明示的に設定し、ツール定義をターゲットの JSON 形状に再マッピングする。
- 通常のケースをカバーする実入力 5〜15 個に、エッジ/際どいものを数個(リフューザルや冗長性の変化を捕まえるため)加えて選ぶ。これがビフォー/アフターの物差しになる — それなしでは当てずっぽうだ。
- ターゲットで評価を実行する。出力が異なる箇所では、推論層に手を付ける前に、まず慣習層(フォーマット、冗長性、システムプロンプトの強さ)を直す。たいていのギャップはここで埋まる。
- 両方のプロンプト変種を、何をなぜ変えたかのメモとともにバージョン管理下に置く。再びモデルを切り替える — あるいは戻す — のは、再発見ではなく数分で済むようになる。
:::tip ゼロから書き直さない 役割、タスク、例を作り直していると気づいたら、止まること — それは移植可能な層だ。きれいな移植が変えるのは包装であって、意味ではない。 :::
移植可能なプロンプトテンプレート
プロンプトをモデル中立な形で書き、ターゲットごとに慣習層だけを特化する。この核は、軽く普遍的に理解される構造を使う(Markdown としてきれいに読め、タグは Claude 向けに XML へ容易に変換できる)。
モデル中立なプロンプトの核 — ターゲットごとに慣習層を特化する
# ROLE
You are {role}.
# TASK
{One clear sentence describing the single goal.}
# RULES
- Use ONLY the information in CONTEXT below. If the answer is not there, say "I don't know" — do not guess.
- Be concise. Respond directly, with no preamble like "Here is..." or "Based on...".
- {Any other hard constraints.}
# OUTPUT FORMAT
{Exact format — e.g. "A Markdown table with columns Name, Value, Source." or "JSON only matching this schema: {...}".}
# EXAMPLES
Input: {example input 1}
Output: {ideal output 1}
Input: {example input 2}
Output: {ideal output 2}
# CONTEXT
{Retrieved documents / data go here — long content first.}
# REQUEST
{The actual user question, last.}その上に重ねる、ターゲットごとの微調整。
- Claude — セクションマーカーを XML タグ(
<role>、<rules>、<context>、<request>)に移す。Claude はそれらを特にきれいに解析する。現行モデルではプレフィルされたアシスタントターンを使わず、「前置きなし」ルールやツール/スキーマに頼る。 - GPT — RULES をシステム/開発者メッセージに置いてより重みを持たせる。Markdown の見出しで問題ない。スキーマを散文で説明するだけでなく、構造化出力/厳格 JSON モードを使う。
- Gemini — ROLE + RULES + OUTPUT FORMAT を system-instruction フィールド経由で渡し、プロンプトを直接的に保つ(新しい Gemini は冗長なプロンプトを過剰解釈し得る)。そして CONTEXT を先に、REQUEST を最後に保つ。
- オープンモデル(Llama/Mistral/Qwen など) — モデルが公開しているチャットテンプレートに正確に従い、明示的な few-shot の例とフォーマット制約により強く依拠する。指示追従性は通常、フロンティアのクローズドモデルほど頑健ではないからだ。
クイックチェック
自分を試す
0/3- プロンプトは推論層(引き継げる)と慣習層(モデルごとに再フィッティングする)からなる — 後者を移植し、前者は保つ。
- 明確な役割/タスク/指示、few-shot の例、出力フォーマット仕様、思考連鎖、RAG グラウンディングは、Claude、GPT、Gemini、オープンモデルをまたいで引き継げる。
- システムプロンプトの重み、XML 対 Markdown の構造、ツール呼び出しの JSON、デフォルトの冗長性、リフューザルの姿勢、プレフィル、長さパラメータをターゲットごとに調整する。
- 実入力で小さな評価セットをビフォー/アフターに実行し、推論に手を付ける前に慣習を直す。
- モデル中立なテンプレートとターゲットごとの微調整をバージョン管理下に保ち、切り替えを安価にする。
- 特定の挙動はリリースのたびに変動する — パラメータと上限は各プロバイダーの現行ドキュメントで確認し、決して記憶から答えないこと。
ソースと参考資料
- プロンプトエンジニアリング概要 — Anthropic(Claude)ドキュメント — Claude のプロンプティング手法:明確さ、例、XML 構造化、思考、役割。
- Claude プロンプティングのベストプラクティス — Anthropic ドキュメント — モデル固有のチューニング、XML タグ、出力/冗長性の制御、プレフィル移行のガイダンス。
- プロンプトエンジニアリングのベストプラクティス — OpenAI(GPT)API ドキュメント — メッセージの役割/指揮系統、デリミタ、few-shot、推論モデル対 GPT のガイダンス。
- 関数呼び出し — OpenAI API ドキュメント — マッピング先となるツール呼び出しスキーマとリクエスト/レスポンスのループ。
- プロンプト設計戦略 — Google Gemini API ドキュメント — システム指示、few-shot、構造化、コンテキスト先行の順序、出力/長さパラメータ。
- Gemini 3 開発者ガイド — Google Gemini API ドキュメント — 直接的なプロンプト、デフォルトの冗長性、指示の配置に関する新しいモデル向けガイダンス。
次へ
- プロバイダー中立にターゲットを選ぶ → モデルを選ぶ
- 移植可能な基礎 → プロンプティングの基礎
- Claude の構造レバー → XML タグ
- ツールスキーマを再マッピングする → ツール利用