Anthropic 公式「プロンプトのベストプラクティス」完全ガイド — Claude 4.6 時代の「宝の山」を読み解く

Cursor Ambassador であり「Cursor完全ガイド」著者のKinopee(@kinopee_ai)氏のポストが注目を集めています。

XML云々の例は英語版のリンクだけど、日本語訳もある。「プロンプトのベストプラクティス」の章だけでも熟読をお勧めします。作りたいものをモデルに伝える大切なテクニック集、宝の山。 — Kinopee(@kinopee_ai)

67いいね、91ブックマークという反響は、AI コーディングツールを日常的に使う開発者がプロンプト設計の基礎に立ち返る必要性を感じていることを示しています。Kinopee氏が「宝の山」と表現する Anthropic 公式のプロンプトベストプラクティスは、Claude Opus 4.6、Claude Sonnet 4.6、Claude Haiku 4.5 に対応した包括的なガイドです。本記事ではその全体像を、実践的な視点で解説します。

ドキュメントの全体構成

公式ドキュメントは大きく6つのセクションで構成されています。

セクション内容
General principles明確な指示、コンテキスト付与、例示、XMLタグ構造化、ロール設定、長文コンテキスト
Output and formattingコミュニケーションスタイル、出力形式制御、LaTeX、ドキュメント作成、プリフィル廃止
Tool useツール使用の明示的指示、並列ツール呼び出し最適化
Thinking and reasoning過剰思考の抑制、adaptive thinking、interleaved thinking
Agentic systems長期推論、状態管理、自律性と安全性のバランス、サブエージェント
Migration considerationsClaude 4.6 への移行ガイド、Sonnet 4.5 → 4.6 の effort 設定

API 開発者向けの内容ですが、Claude Code や Cursor などの AI コーディングツールを使う際にも、CLAUDE.md やシステムプロンプトの設計に直接応用できます。

最もインパクトの高い5つのスキル

公式ドキュメントが挙げる「最もインパクトの高い5つのスキル」は以下の通りです。

1. XML タグで構造化する

Claude にとって XML タグはプロンプトの文法です。指示、コンテキスト、例示、入力データが混在するプロンプトでは、各要素をタグで包むことで誤解を大幅に減らせます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<documents>
  <document index="1">
    <source>annual_report_2023.pdf</source>
    <document_content>
      {{ANNUAL_REPORT}}
    </document_content>
  </document>
</documents>

Analyze the annual report. Identify strategic advantages
and recommend Q3 focus areas.

ベストプラクティス:

  • 一貫した命名: プロンプト全体で同じタグ名を使い、そのタグ名で内容を参照する
  • 階層構造: コンテンツに自然な階層がある場合はタグをネストする
  • 説明的なタグ名: <instructions>, <context>, <input> など、内容を表す名前をつける

日本語版の公式ドキュメントでも詳しく解説されています。

2. 結論の前に根拠を求める

Claude に「まず関連する引用を抽出してから分析せよ」と指示すると、長文ドキュメントの処理精度が大幅に向上します。

1
2
3
4
Find quotes from the patient records that are relevant
to diagnosing the symptoms. Place these in <quotes> tags.
Then, based on these quotes, list diagnostic information
in <info> tags.

これは Chain of Thought(思考の連鎖)の実践的な応用です。

3. 具体的なロールを与える

システムプロンプトでロールを設定するだけで、Claude の振る舞いとトーンが劇的に変わります。

1
2
3
4
5
6
7
8
message = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=1024,
    system="You are a helpful coding assistant specializing in Python.",
    messages=[
        {"role": "user", "content": "How do I sort a list of dictionaries by key?"}
    ],
)

一文のロール設定でも効果があります。Claude Code の CLAUDE.md に「セキュリティルール」や「コーディング規約」を記述するのも、このロール設定の延長です。

4. ステップバイステップの推論を求める

複雑な問題では、Claude に段階的な推論を明示的に求めることで精度が上がります。ただし Claude 4.6 では具体的な手順を指定するより、「徹底的に考えて」と一般的に指示する方が良い結果が出ることが多いとされています。

A prompt like “think thoroughly” often produces better reasoning than a hand-written step-by-step plan — Claude’s reasoning frequently exceeds what a human would prescribe.

5. 長い指示より例を見せる

例示(Few-shot / Multishot prompting)は、Claude の出力形式・トーン・構造を制御する最も信頼できる方法です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<examples>
  <example>
    <input>商品レビューの感情分析をしてください: 「この製品は最高です!」</input>
    <output>感情: ポジティブ (信頼度: 95%)</output>
  </example>
  <example>
    <input>商品レビューの感情分析をしてください: 「まあまあかな」</input>
    <output>感情: ニュートラル (信頼度: 70%)</output>
  </example>
</examples>

公式は3〜5個の例示を推奨しています。

Claude 4.6 で変わったこと

Claude 4.6 世代では、プロンプト設計のアプローチに重要な変更がいくつかあります。

プリフィルの廃止

Claude 4.6 以降、最後のアシスタントターンのプリフィル(事前入力)はサポートされなくなりました。以前は {"role": "assistant", "content": "Here is the JSON:"} のように出力形式を強制していましたが、モデルの指示追従能力が向上したため不要になりました。

以前のプリフィル用途移行先
JSON/YAML 形式の強制Structured Outputs またはツール呼び出し
前置きの省略システムプロンプトで「前置きなしで直接応答せよ」
不要な拒否の回避Claude 4.6 は適切な拒否判断が改善済み
中断された応答の継続ユーザーメッセージに前回の末尾を含めて継続を指示

Adaptive Thinking

Claude Opus 4.6 は Adaptive Thinkingthinking: {type: "adaptive"})を使い、クエリの複雑さに応じて動的に思考の深さを調整します。

1
2
3
4
5
6
7
client.messages.create(
    model="claude-opus-4-6",
    max_tokens=64000,
    thinking={"type": "adaptive"},
    output_config={"effort": "high"},
    messages=[{"role": "user", "content": "..."}],
)

以前の budget_tokens による手動制御に代わり、effort パラメータ(low, medium, high, max)で制御します。内部評価では、Adaptive Thinking は Extended Thinking よりも一貫して高い性能を示しています。

過剰なプロンプトを抑える

Claude 4.6 は以前のモデルよりもはるかにプロアクティブです。以前のモデルで必要だった「CRITICAL: You MUST use this tool when…」のような強い指示は、過剰トリガーの原因になります。

以前(Claude 3.5 向け)現在(Claude 4.6 向け)
CRITICAL: You MUST use this tool when...Use this tool when...
Default to using [tool]Use [tool] when it would enhance your understanding
If in doubt, use [tool]削除(適切にトリガーされる)

エージェントシステムのための実践テクニック

Claude Code のようなエージェント環境で特に有用なテクニックを整理します。

行動 vs 提案の明示

Claude に「変更を提案して」と言うと、提案だけして実装しないことがあります。行動を求めるなら行動を明示します。

1
2
3
4
5
# 効果が低い(提案で終わる可能性)
Can you suggest some changes to improve this function?

# 効果が高い(実装される)
Change this function to improve its performance.

並列ツール呼び出しの最適化

Claude 4.6 は並列ツール実行に優れています。以下のプロンプトで並列度を最大化できます。

1
2
3
4
5
<use_parallel_tool_calls>
If you intend to call multiple tools and there are no
dependencies between the tool calls, make all of the
independent tool calls in parallel.
</use_parallel_tool_calls>

自律性と安全性のバランス

Claude Opus 4.6 は指示なしだと、ファイル削除や force-push のような不可逆な操作も実行してしまう可能性があります。公式が推奨するプロンプト:

1
2
3
4
5
Consider the reversibility and potential impact of your actions.
You are encouraged to take local, reversible actions like
editing files or running tests, but for actions that are hard
to reverse, affect shared systems, or could be destructive,
ask the user before proceeding.

これは Claude Code のシステムプロンプトにも組み込まれている原則です。

過剰エンジニアリングの抑制

Claude Opus 4.6 は余計なファイル作成、不要な抽象化、求められていない機能追加をする傾向があります。

1
2
3
4
5
6
<avoid_overengineering>
Avoid over-engineering. Only make changes that are directly
requested or clearly necessary. Keep solutions simple and focused.
Don't add features, refactor code, or make "improvements"
beyond what was asked.
</avoid_overengineering>

ハルシネーションの最小化

1
2
3
4
5
<investigate_before_answering>
Never speculate about code you have not opened. If the user
references a specific file, you MUST read the file before
answering. Give grounded and hallucination-free answers.
</investigate_before_answering>

コンテキストウィンドウの活用

Claude 4.6 はコンテキスト認識(context awareness)機能を持ち、残りのコンテキストウィンドウ(トークン予算)を追跡できます。Claude Code のような長時間セッションでは、以下のプロンプトが有効です。

1
2
3
4
5
Your context window will be automatically compacted as it
approaches its limit, allowing you to continue working
indefinitely. Do not stop tasks early due to token budget
concerns. Save your progress and state to memory before
the context window refreshes.

マルチコンテキストウィンドウの状態管理

長時間のタスクでは、以下のベストプラクティスが推奨されています。

テクニック説明
テストを構造化形式で記録tests.json などで管理し、テストの削除・編集を禁止
セットアップスクリプトの作成init.sh で環境構築を自動化し、再開時の手間を削減
git で状態管理commit による進捗記録とチェックポイントの活用
進捗ノートの活用progress.txt にフリーテキストで進捗を記録

CLAUDE.md への応用

Kinopee氏が「宝の山」と表現したのは、これらのテクニックがAPI 開発だけでなく、Claude Code の日常使用に直接応用できるからです。

CLAUDE.md で使える XML タグ構造

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
## セキュリティルール
<security_rules>
- .env ファイルの内容を読み取らない
- APIキーをコードに埋め込まない
- 外部URLへのデータ送信を行わない
</security_rules>

## コーディング規約
<coding_conventions>
- Python: Black でフォーマット、型ヒント必須
- テスト: pytest、カバレッジ80%以上
- Git: Conventional Commits 形式
</coding_conventions>

Claude Code スキル定義への応用

Claude Code のスキル(.claude/skills/)は、まさにこのベストプラクティスの実践の場です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# スキル定義の構造(XMLタグで明確に分離)

<instructions>
指定された URL の内容を調査し、ブログ記事を作成する
</instructions>

<steps>
1. ソースを取得する
2. 深掘りリサーチを行う
3. 記事を作成する
</steps>

<output_format>
- 保存先: /tmp/{slug}.md
- Gist に公開投稿
</output_format>

学習リソース

Anthropic は公式チュートリアルも提供しています。

リソース形式特徴
公式ベストプラクティス(英語)Web ドキュメントClaude 4.6 対応の最新リファレンス
日本語版 XML タグガイドWeb ドキュメントXML タグの使い方を日本語で解説
Interactive Tutorial(GitHub)Jupyter Notebook手を動かしながら学べるチュートリアル
Google Sheets 版チュートリアルGoogle Sheets非エンジニア向けの軽量版
Claude Console のプロンプトツールWeb ツールプロンプト生成器、テンプレート、改善ツール

まとめ

  • 「宝の山」は公式ドキュメントにある: Anthropic の Prompting Best Practices は Claude 4.6 対応の包括的なガイドで、API 開発者だけでなく Claude Code ユーザーにも直接役立つ
  • 最もインパクトの高い5つのスキル: XMLタグ構造化、根拠先行、ロール設定、ステップバイステップ推論、例示。これらは CLAUDE.md やスキル定義にそのまま応用できる
  • Claude 4.6 ではプロンプトを「緩める」: 以前のモデルで必要だった強い指示は過剰トリガーの原因になる。「CRITICAL: MUST」を「Use … when」に置き換える
  • プリフィルは廃止: Structured Outputs やツール呼び出しに移行。モデルの指示追従能力が向上したため不要に
  • Adaptive Thinking で思考を動的制御: effort パラメータで思考の深さを調整。手動の budget_tokens より一貫して高性能
  • エージェント特有のテクニック: 行動の明示、並列ツール最適化、過剰エンジニアリング抑制、ハルシネーション最小化が Claude Code 環境で特に重要
  • コンテキスト管理は状態ファイルと git: tests.json + progress.txt + git commit で長時間タスクの状態を永続化する

参考