Anthropicエンジニアが内部で使っている10のプロンプトパターン

Anthropicエンジニアが内部で使っている10のプロンプトパターン

こんにちは、makokonです。
Xの投稿によると、Anthropicのエンジニアがかくプロンプトは私たちが書くプロンプトとは一味違うようですよ。
ここは、Xのスレッドで紹介されたAnthropicのエンジニアが内部で使っている10個のプロンプトパターンを、わかりやすく日本語化してまとめました。本当に意外なものも多いです。
これらのテクニックは、ClaudeのようなAIモデルの性能を最大限に引き出し、より正確で信頼性の高い出力を得るために役立ちます。 .
各パターンについて、以下の3点を明確にしています:

  • 何をする:具体的にどんなテクニックか

  • なんのために:主な目的

  • なぜ効果的なのか:理由(Claudeの特性やテスト結果に基づく)


1. XMLタグでプロンプトを完全に構造化する

  • 何をする:指示、コンテキスト、例、入力などをすべて<instructions>、<context>、<document>などのXMLタグで囲む。プレーンテキストやMarkdownは避ける。

  • なんのために:複雑なプロンプトを明確に区切ってClaudeに正しく解析させる。

  • なぜ効果的なのか:Claudeは訓練データでXML構造に慣れているため、タグを使うと内容の境界を誤解しにくく、指示の漏れや混同を防ぐ。

2. 役割定義を「求人票」のように具体的・詳細にする

  • 何をする:単に「あなたは専門家です」ではなく、「分散システムに強いシニアバックエンドエンジニア。FastAPI、PostgreSQL最適化、100ms以内のレスポンスを優先」など、スキル・ツール・優先事項を具体的に記述。

  • なんのために:曖昧な役割による一般的な出力(generic output)を避ける。

  • なぜ効果的なのか:具体的な役割定義により、Claudeの振る舞いがプロフェッショナルで一貫したものになる。

3. 推論(reasoning)と出力(output)を明確に分離する

  • 何をする:<thinking>や専用タグでまず分析・推論させ、その後<answer>や出力タグで最終回答を書かせる。

  • なんのために:複雑なタスクで「考える」プロセスを強制し、出力の質を高める。

  • なぜ効果的なのか:テストで精度が73%から91%に向上。Claudeが即座に出力せず、論理的に考える習慣がつく。

4. 例(few-shot)を「単なる入出力」ではなく「推論プロセス付きの完全なドキュメント」にする

  • 何をする:例としてinput → reasoning process → outputの全体を示す。

  • なんのために:Claudeに「何を出すか」だけでなく「どのように考えるか」を教える。

  • なぜ効果的なのか:few-shotの効果が約60%から85%に跳ね上がる。単なる模倣ではなく、思考パターンを学習させる。

5. 「やってはいけないこと」(negative constraints)を明示的に指定する

  • 何をする:「企業用語を使うな」「複数のリクエストを混ぜるな」「『質問があればどうぞ』で終わらせるな」など、避けるべき行動をリストアップ。

  • なんのために:出力の境界を明確にし、不要な要素を排除。

  • なぜ効果的なのか:肯定的指示だけでは境界が曖昧になりやすい。ネガティブ制約が「ガードレール」として機能し、精度を大幅に上げる。

6. Claudeの最初の文(応答の先頭)をあらかじめ書いておく(Prefill)

  • 何をする:APIなどでClaudeの応答を「ここから始めて」と部分的に事前に埋めておく(例:出力の構造を強制)。

  • なんのために:無駄な挨拶や前置き(「喜んでお手伝いします!」など)を完全に排除

  • なぜ効果的なのか:応答が即座に本題に入り、構造化され、直接的になる。非常に過小評価されているテクニック。

7. 出力仕様を「外科手術レベル」で詳細に定義する

  • 何をする:単に「要約せよ」ではなく、「セクション見出しはこれ」「各セクションの文字数制限」「信頼度表示必須」「引用形式は〜」など、フォーマットを細かく指定。

  • なんのために:出力のフォーマットばらつきをなくし、毎回期待通りの形式を得る。

  • なぜ効果的なのか:90%以上のフォーマット不整合を解消。欲しいものを正確に得られる。

8. 複数のソース文書をインデックス付きのタグで包む

  • 何をする:<document index="1">、<document index="2">のように番号付けして各文書をラップし、内容と出典を明確に。

  • なんのために:情報源の混同やハルシネーション(でっち上げ)を防ぐ。

  • なぜ効果的なのか:Claudeが「文書1によると…」と正確に引用可能になり、参照の信頼性が大幅に向上

9. エラー処理・例外対応をプロンプトに事前に組み込む

  • 何をする:不完全なデータの場合の対応、矛盾の発見方法、「わからない」と言うタイミング、曖昧さの扱い方を明記。

  • なんのために:自信過剰な誤った回答(confident bullshit)を防ぐ

  • なぜ効果的なのか:ガードレールが最初から組み込まれるため、出力が慎重で信頼性が高い。

10. プロンプト全体を「プロダクションコード」のように扱う

  • 何をする:バージョン管理、ユースケースごとのタグ付け、ベースラインに対するテストを実施。単なる「雰囲気」ではなく、体系的なシステムとして構築。

  • なんのために:一時的な使い捨てプロンプトではなく、再利用可能でスケーラブルなものにする。

  • なぜ効果的なのか:AIを「使う」レベルから「構築する」レベルへ移行。長期的に安定した高品質出力を実現。

これら10個の共通パターン(まとめのポイント)

  • WHO(誰として応答するか:具体的な役割)

  • WHAT(何をするか:明確なタスク)

  • HOW(どのようにするか:定義されたプロセス)

  • FORMAT(出力形式:正確な構造)

  • AVOID(避けること:ハードな制約)

これらをXMLタグで配信することで、Claudeの性能を最大限に引き出せます。
Anthropic公式のベストプラクティスとも重なる部分が多く、日常のプロンプトで試すと効果を実感しやすいはずです。実際に使う際は、まずはシンプルなタスクからXMLタグ+推論分離+negative constraintsを試してみてください!

XMLタグの具体例

以下は、Anthropicの公式推奨(Claudeのプロンプトベストプラクティス)と、エンジニアが実際に使っている10個のパターンに基づいたXMLタグの具体例です。ClaudeはXMLタグに特に強く訓練されているため、タグで明確に区切ることで指示の混同を防ぎ、精度が大幅に向上します。タグ名は自由に決められますが、意味がわかりやすい記述的な名前を使うのがベストです。

基本的なXML構造のテンプレート(最もよく使う形)

<instructions>
ここにメインの指示やルールをすべて書く
</instructions>

<context>
背景情報や追加の知識を入れる
</context>

<examples>
<example>
<user>入力例1</user>
<thinking>考えるプロセス</thinking>
<answer>出力例1</answer>
</example>
</examples>

<input>
ユーザーの実際の入力や処理対象のテキスト
</input>

<output_format>
出力の厳密な形式を指定(例: 箇点リスト、各項目は20文字以内など)
</output_format>

よく使われるタグの具体例

  1. 指示・タスクの区切り(<instructions> / <task>)

    • 何をする:Claudeに与える命令を明確に囲む

  2. 推論と出力の分離(<thinking> / <reasoning> と <answer> / <final_answer>) ← これが特に効果的

    1. <instructions> まず<thinking>タグ内でステップバイステップで考えてください。 その後、<answer>タグ内に最終回答だけを入れてください。 </instructions> <thinking> ステップ1: ... ステップ2: ... 結論: ... </thinking> <answer> 最終的な回答をここに書く(ここだけが本番の出力になる) </answer>

  3. 複数の文書・ソースの扱い(<documents> と <document index="n">)

    1. <documents> <document index="1"> <source>https://example.com/article1</source> <content>ここに文書1の内容全部</content> </document> <document index="2"> <source>内部資料.pdf</source> <content>ここに文書2の内容</content> </document> </documents> <instructions> 上記の文書を参照して質問に答えてください。回答では「文書1によると...」のように出典を明記してください。 </instructions>

  4. 例(Few-shot)の構造化

    1. <examples> <example> <input>古くて太っている</input> <thinking>寿命が短い要因が多い</thinking> <output>あまり時間が残っていないようです</output> </example> <example> <input>健康的な生活を送っている</input> <thinking>良い習慣が多い</thinking> <output>長生きできそうです</output> </example> </examples>

  5. 出力形式の厳密指定(<output_format> や <format>)

    1. <output_format> 回答は必ず以下の構造で出力してください: - タイトル:1行 - 要約:100文字以内 - 詳細:箇点リスト(各項目は15文字以内) - 結論:1文 </output_format>

実践的なフル例(メール作成タスク)

<role>
あなたは丁寧でプロフェッショナルなビジネスメールの専門家です。日本語で自然で上品な表現を使います。
</role>

<instructions>
以下の内容でビジネスメールを作成してください。
- 件名も必ず提案
- 挨拶・本文・締めを明確に分ける
- 丁寧語を正しく使用
</instructions>

<context>
送信者:山田太郎(営業部)
受信者:株式会社ABCの鈴木部長
目的:先日の提案に対するフォローアップと次回ミーティングの調整
</context>

<input>
先日の資料についてご質問があればお答えします。来週の水曜日か木曜日で30分のオンラインMTGはいかがでしょうか。
</input>

<output_format>
件名:
本文:
</output_format>

ポイントとTips

  • タグは入れ子(ネスト) にしてもOK(例:<documents>の中に<document>を複数)

  • タグ名は日本語でも大丈夫ですが、英語のまま(instructions, thinking, answerなど)の方が安定する場合が多いです。

  • 複雑なプロンプトほどXMLタグの効果が大きいです。

  • 最初はシンプルなタスクで試して、徐々に<thinking> + <answer>や<documents>を追加していくと良いです。

重要キーワードをハッシュタグ形式で

#プロンプトエンジニアリング #Anthropic #Claude #プロンプトパターン #XMLタグ #構造化プロンプト #役割定義 #推論分離 #FewShot学習 #ネガティブ制約 #Prefill #出力仕様 #ドキュメント参照 #エラー処理 #プロダクションコード #ベストプラクティス #思考プロセス #ハルシネーション対策 #ガードレール

これらのハッシュタグは、Anthropicのエンジニアが使用するプロンプトの10のパターンと、それらを効果的に活用するためのテクニックを要約しています . 特に、XMLタグを使用してプロンプトを構造化すること 、役割定義を具体的にすること 、推論と出力を分離すること 、そして「やってはいけないこと」を明示すること などが強調されています。これらのテクニックは、ClaudeのようなAIモデルの性能を最大限に引き出し、より正確で信頼性の高い出力を得るために役立ちます .


いいなと思ったら応援しよう!