Claude向けのプロンプトを書く際、指示・背景情報・例・入力データが混在すると、Claudeがどの部分をどう扱えばよいか曖昧になることがあります。Anthropicの公式ドキュメントによると、XMLタグを使ってプロンプトの各部分を明示的に区切ることで、この曖昧さを減らし、意図した出力を得やすくなるとされています。この記事では、公式ドキュメントにもとづいて、基本的な使い方から応用例までを紹介します。
なぜXMLタグが有効なのか
公式ドキュメントでは、XMLタグが有効な理由として、次の3点が挙げられています。
- 曖昧性の排除:指示、コンテキスト、例、変数入力が混在する複雑なプロンプトを、Claudeが曖昧さなく解析できる
- 階層的理解:ネストされたタグにより、情報の自然な階層構造を表現できる
- 意図の明確化:各コンテンツの役割(指示か、例か、コンテキストか)をClaudeが正確に認識できる
手順:基本形のプロンプトを書く
まずは、指示・コンテキスト・例・入力をそれぞれタグで区切るところから始めます。
<instructions>
具体的なタスク指示
</instructions>
<context>
背景情報
</context>
<examples>
<example>
例1の入出力
</example>
<example>
例2の入出力
</example>
</examples>
<input>
ユーザーの入力データ
</input>
具体的にした改善形:複数ドキュメントを扱う場合
複数の資料を同時に読み込ませたい場合は、ドキュメントごとにタグをネストさせ、出典も明記します。
<documents>
<document index=”1″>
<document_content>
ドキュメント1の内容
</document_content>
<source>ファイル名またはURL</source>
</document>
<document index=”2″>
<document_content>
ドキュメント2の内容
</document_content>
<source>ファイル名またはURL</source>
</document>
</documents>
さらに条件を追加した実務向け:引用抽出タスク
長文の資料から根拠を示しながら回答させたい場合は、次のようにタスクと手順を明示します。
<task>
文書から関連部分を引用した上で、質問に答えてください
</task>
<instructions>
- まず、質問に関連する部分を文書から引用する
- 引用に基づいて回答を提供する
</instructions>
<document>
<source>annual_report.pdf</source>
<content>
[ドキュメント内容]
</content>
</document>
<question>
ユーザーの質問
</question>
基本知識:長文コンテキストを扱う場合のコツ
公式ドキュメントによると、20,000トークンを超えるような長文を扱う場合は、長文のドキュメントをプロンプトの上部に、質問(クエリ)を下部に配置する構成が推奨されています。この配置により、性能が向上する傾向があるとされています。あわせて、XMLタグでドキュメントのメタデータを含め、関連部分の引用を先に提示させる工夫も有効とされています。
よくある失敗と改善方法
- 失敗例:指示・例・入力をタグで区切らず、地の文としてまとめて書いてしまう。長いプロンプトほど、Claudeがどの情報が何を意味するのか誤解しやすくなります
- 改善方法:`<instructions>`(何をしてほしいか)、`<context>`(背景情報)、`<examples>`(望ましい出力の例)、`<input>`(実際に処理させたいデータ)のように役割ごとにタグを分けましょう
- 失敗例:例(examples)を1つも示さないまま、抽象的な指示だけで狙った形式の出力を求めてしまう
- 改善方法:公式ドキュメントでは、3〜5個の関連性の高い例を`<examples>`タグ内に構造化して示すことが勧められています
具体例:どんな場面で使うと効果的か
- 契約書や報告書など、長文の資料から特定の情報を正確に抽出したいとき
- 出力フォーマットを厳密に指定したい、システムプロンプトを設計するとき
- 複数の例を示しながら、期待する出力のパターンをClaudeに学習させたいとき
注意点
- XMLタグの名前に厳密な決まりはありませんが、`instructions`や`context`など、内容を表す分かりやすい名前を一貫して使うことが推奨されています。
- タグを使えば必ず精度が上がるわけではありません。指示の内容自体があいまいな場合は、タグで区切ってもClaudeが意図を正確に読み取れないことがあります。
- 公式ドキュメントの内容はモデルのアップデートにあわせて更新される可能性があるため、最新のベストプラクティスは公式サイトで確認することをおすすめします。
よくある質問
Q. XMLタグを使うと、必ず出力の精度が上がりますか。
A. 公式ドキュメントによると、XMLタグは複雑なプロンプトの曖昧さを減らす効果があるとされていますが、指示の内容自体が明確であることが前提です。タグの使用と合わせて、指示そのものを具体的にすることが重要です。
Q. どのようなタグ名を使えばいいですか。
A. 公式ドキュメントでは、`instructions`、`context`、`examples`、`input`、`document`など、内容を表す分かりやすいタグ名の例が紹介されています。決まった正式なタグ名があるわけではなく、内容が伝わる名前を一貫して使うことが推奨されています。
Q. 長い資料を読み込ませるときに気をつけることはありますか。
A. 公式ドキュメントによると、20,000トークンを超えるような長文を扱う場合は、資料を先に、質問を後に配置する構成にすると、性能が向上する傾向があるとされています。
まとめ
Claudeのプロンプトは、XMLタグで指示・コンテキスト・例・入力を区切ることで、曖昧さを減らし、意図した出力を得やすくなります。基本形から始めて、複数ドキュメントの処理や長文コンテキストへの対応など、必要に応じてタグの構成を発展させていきましょう。
次に取るべき行動
普段使っているプロンプトの中から、出力が安定しないものを1つ選び、指示・コンテキスト・例・入力をXMLタグで区切って書き直してみましょう。長文の資料を扱う場合は、資料を上部、質問を下部に配置する構成も試してみてください。

コメント