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