わさびです。
Claudeに「もっといい回答を出させたい」と思ったことがある人向けの記事。
「プロンプトの書き方」は入門レベルの情報が多いけど、Claudeには他のLLMとは違う独自の設計思想がある。Anthropicの公式ドキュメント(英語)に書かれている中級テクニックを、実例つきで7つ紹介する。
1. XMLタグで構造化する
Claudeは他のLLMと比べて、XMLタグの構造を正確に認識する。これはAnthropicが公式に推奨しているテクニック。
悪い例:
以下の文章を要約してください。レビュー文はこちらです。この製品は非常に優れていて...
良い例:
<task>以下のレビュー文を3行で要約してください。</task>
<review>
この製品は非常に優れていて...
</review>
<format>
-箇条書き3点
-各点は30文字以内
</format>
XMLタグを使うメリット:
- 指示とデータの境界が明確になる
- 出力フォーマットの指定が正確に伝わる
- 複数の入力を区別できる
Claudeは自然言語の曖昧さよりも、構造化された指示を正確に解釈する傾向がある。
2. Few-shotで品質を安定させる
Few-shot(少数例示)は「こういう入力にはこういう出力を返して」と例を見せるテクニック。Claudeは例示に忠実に従う傾向が強い。
<examples>
<example>
<input>東京タワーの高さは?</input>
<output>333メートルです。1958年に完成した電波塔で、正式名称は日本電波塔。</output>
</example>
<example>
<input>富士山の高さは?</input>
<output>3,776メートルです。日本最高峰の活火山で、2013年にユネスコ世界文化遺産に登録。</output>
</example>
</examples>
<input>スカイツリーの高さは?</input>
こうすると「高さ + 一言補足情報」という出力パターンが安定する。
Few-shotのコツ:
| ポイント | 説明 |
|---|---|
| 例は2-3個 | 多すぎるとトークン消費が増える |
| 境界ケースを含める | 通常パターンと例外パターンの両方 |
| 出力形式を統一する | 例の出力形式がそのままテンプレートになる |
3. Chain of Thoughtで推論精度を上げる
Chain of Thought(CoT)は、Claudeに段階的に考えさせるテクニック。Extended Thinkingとは別物で、プロンプトレベルで指示する。
<task>
以下の売上データから、最も利益率が高い商品を特定してください。
</task>
<instructions>
ステップごとに考えてください:
1.各商品の利益率を計算する
2.利益率を比較する
3.最も高い商品を特定する
4.その理由を説明する
</instructions>
<data>
商品A:売上100万円,原価60万円
商品B:売上200万円,原価150万円
商品C:売上50万円,原価20万円
</data>
「ステップごとに考えてください」の一文を入れるだけでも効果がある。Claudeは指示されると中間推論をテキストに出力するようになり、飛躍した間違いが減る。
4. ロールプロンプティング
Claudeに役割を与えると、その専門分野に適した語彙と知識の深さで回答するようになる。
<role>
あなたはセキュリティ監査の専門家です。
OWASPTop10を熟知しており、コードレビューで脆弱性を見つけることが得意です。
</role>
<task>
以下のPythonコードのセキュリティ上の問題を指摘してください。
</task>
ロールプロンプティングの注意点:
- 具体的な専門性を指定する(「専門家」だけでは弱い)
- 知識の範囲を限定する(何を知っている専門家なのか)
- 行動の傾向を指示する(何を重視するのか)
「あなたはAIアシスタントです」は無意味。Claudeは自分がAIであることを知っている。
5. 出力形式をJSONで制御する
APIで処理するデータは、JSON形式で返させると後続処理が楽になる。
<task>
以下のレビューを分析して、JSON形式で返してください。
</task>
<output_format>
{
"sentiment":"positive/negative/neutral",
"score":0.0-1.0,
"keywords":["keyword1","keyword2"],
"summary":"一文の要約"
}
</output_format>
<review>
最新のClaudeは本当にすごい。コードの理解力が段違い。
ただ、たまにハルシネーションがあるので完全には信頼できない。
</review>
確実にJSONだけを返させたい場合は、「JSON以外のテキストは出力しないでください」と明示する。Claudeは指示に従うが、前置きを入れたがる傾向があるので、この一文が効く。
6. プロンプトチェーンで複雑なタスクを分割する
1つのプロンプトに全部詰め込むより、段階的に処理するほうが精度が上がる。
ステップ1:記事の構成案を作る
ステップ2:各セクションを執筆する
ステップ3:全体を推敲する
これをAPI呼び出しで順番に実行する:
# ステップ1: 構成案
outline = client.messages.create(
model="claude-sonnet-4-5-20250514",
messages=[{"role": "user", "content": "記事の構成案を作成..."}]
)
# ステップ2: 執筆(構成案を入力に含める)
draft = client.messages.create(
model="claude-sonnet-4-5-20250514",
messages=[{
"role": "user",
"content": f"以下の構成案に基づいて執筆...\n{outline.content[0].text}"
}]
)
各ステップで最適なモデルを選ぶこともできる。構成案はHaiku 4.5で高速に、執筆はSonnet 4.5で品質を確保、のような使い分け。
7. Claude固有のベストプラクティス
Anthropicの公式ドキュメントに記載されている、Claude特有のコツ。
否定形より肯定形
悪い例: 「長すぎる説明はしないでください」
良い例: 「3文以内で簡潔に回答してください」
Claudeは「何をするか」の指示のほうが「何をしないか」より正確に従う。
曖昧さを排除する
悪い例: 「いい感じにまとめて」
良い例: 「3つの要点に絞り、各要点を1文で記述してください」
出力のプリフィルを使う
APIでは、assistantメッセージの先頭を指定できる。
response = client.messages.create(
model="claude-sonnet-4-5-20250514",
messages=[
{"role": "user", "content": "JSONで回答してください: ..."},
{"role": "assistant", "content": "{"}
]
)
{を先頭に置くことで、Claudeは確実にJSONから始める。前置きのテキストが入らなくなる。
まとめ
7つのテクニックを一覧にする:
| テクニック | 効果 | 難易度 |
|---|---|---|
| XMLタグ構造化 | 指示の明確化 | 低 |
| Few-shot | 出力品質の安定 | 低 |
| Chain of Thought | 推論精度の向上 | 低 |
| ロールプロンプティング | 専門性の引き出し | 中 |
| JSON出力制御 | 後続処理の効率化 | 中 |
| プロンプトチェーン | 複雑タスクの精度向上 | 高 |
| Claude固有のコツ | 全体的な品質底上げ | 低 |
まずはXMLタグとFew-shotから試してほしい。この2つだけで、Claudeの回答品質は体感で変わる。
僕もプロンプトの書き方を色々試してきたけど、結局「明確に、具体的に、構造的に」が最強。カメにもAIにも、はっきり伝えるのが大事。
あわせて読みたい
見てもらえるだけで応援になります
このブログはアフィリエイトリンクで運営されています。以下のリンクから気になるサービスをチェックしてもらえると、僕たちの活動の支えになります。
この記事を書いたのは わさび(ニホンイシガメ / 3歳 / VTuberあかはら。の家族)です。
あかはらVラボ — Claude特化の情報を発信中。
この記事が参考になったら|以下のリンクから見てもらえるだけで、ブログ運営の応援になります。
- NordVPN

AI活用時のデータ保護に。VPNで通信を暗号化。 
AI開発環境やブログ運営に。初期費用無料、月額296円から。



コメント