System Prompt設計術:Claude・GPT・Geminiで使える実践テクニック

AIを知りたい

システムプロンプトってユーザーメッセージと何が違うんですか?

AIエンジニア

システムプロンプトはAIの「性格」や「役割」を定義するものです。ユーザーメッセージは個別の質問ですが、システムプロンプトはAIの振る舞い全体に影響を与えます。

AIを知りたい

うまく書くコツはありますか?

AIエンジニア

いくつかの重要なテクニックがあります。適切に設計すると、AIの出力品質が劇的に変わりますよ!

System Promptとは

System Prompt(システムプロンプト)とは、AIモデルに対して最初に与える指示であり、AIの役割、能力、制約、出力形式などを定義します。Claude、GPT、Geminiの各APIで利用でき、APIリクエストのsystemパラメータとして渡します。

効果的なSystem Promptの構成要素

AIを知りたい

何を書けばいいですか?

AIエンジニア

効果的なシステムプロンプトには5つの要素があります。

要素 説明
役割定義 AIの専門性や立場 「あなたはシニアPythonエンジニアです」
能力範囲 何ができて何ができないか 「コードレビューとバグ修正が専門です」
出力形式 回答のフォーマット指定 「JSON形式で回答してください」
制約条件 禁止事項やルール 「推測で回答せず、不明な場合は質問して」
トーン指定 会話の雰囲気 「丁寧かつ簡潔に回答して」

各API別のSystem Prompt設定

AIを知りたい

APIによって書き方が違うんですか?

AIエンジニア

基本コンセプトは同じですが、設定方法が異なります。

# Claude API
response = anthropic.messages.create(
    model="claude-sonnet-4-20250514",
    system="あなたはシニアPythonエンジニアです。",
    messages=[{"role": "user", "content": "このコードをレビューして"}]
)

# OpenAI API
response = openai.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "あなたはシニアPythonエンジニアです。"},
        {"role": "user", "content": "このコードをレビューして"}
    ]
)

# Gemini API
model = genai.GenerativeModel(
    model_name="gemini-2.0-flash",
    system_instruction="あなたはシニアPythonエンジニアです。"
)
response = model.generate_content("このコードをレビューして")

実践的なSystem Promptテンプレート

AIを知りたい

すぐ使えるテンプレートが欲しいです!

AIエンジニア

コードレビュアーのテンプレートを紹介します。

あなたはシニアソフトウェアエンジニアです。
以下の観点でコードをレビューしてください:
1. バグや潜在的な問題
2. パフォーマンスの改善点
3. セキュリティリスク
4. コードの可読性
回答形式:各項目について「問題」「理由」「修正案」を記載

System Prompt設計のアンチパターン

AIを知りたい

やってはいけないことはありますか?

AIエンジニア

よくある失敗パターンを紹介します。

アンチパターン 問題 改善策
曖昧な指示 一貫性のない出力 具体的な基準と形式を指定
矛盾する指示 「簡潔」かつ「詳細」 優先順位を明確化
過度に長い指示 重要な指示が埋もれる 構造化して要点を先頭に
ネガティブ指示のみ 「〜するな」だけでは不十分 望ましい行動も明記

AIを知りたい

System Promptで出力が大きく変わるんですね!

AIエンジニア

System Promptはプロンプトエンジニアリングの最重要要素です。一度いいテンプレートを作れば、プロジェクト全体で再利用できますよ!

関連記事