長い指示や大量のデータをまとめて渡すと、Claudeが途中で指示を無視したり前提を取り違えたりする——そんな経験、ありますよね。原因はモデルの能力ではなく、”指示とデータが混ざっている”ことにあります。本記事ではXMLタグによる構造化で精度が安定する理由と、そのままコピペできる雛形を解説します。
なぜ長いプロンプトは途中で崩れるのか
結論から言えば、長いプロンプトが崩れる最大の原因は、指示・データ・ルールが一続きのテキストとして地続きになっていることです。モデルの賢さの問題ではありません。
人間なら「ここからが資料、ここまでが命令」と空気で読み取れます。しかしモデルにとって、プレーンテキストはすべて同じ平面に並んだ”連続したトークン列”でしかありません。境界が明示されていなければ、モデルは「どこからどこまでが指示で、どこからがデータなのか」を推測するしかないのです。この推測こそが、指示の取りこぼしや前提のすり替えの正体です。
たとえば顧客からのメール本文をそのまま貼り付けて「これを要約して」と頼むと、メール文中の「至急対応してください」という一文を、モデルが”あなたへの指示”として拾ってしまうことがあります。これは混同(confusion)であって、誤動作ではありません。境界がないのだから、当然の挙動です。
XMLタグは”意味的な壁”として働く
ここで効くのが XMLタグ(<tag>〜</tag> という山かっこで囲む記法)です。タグは、テキストの中にsemantic boundary(意味的な境界線)を引きます。「ここからここまでは”データ”という塊だ」「これは”ルール”という塊だ」と、構造そのものを明示するわけです。
重要なのは、これが Claude の設計思想に深く組み込まれている点です。Anthropic は公式のプロンプトエンジニアリング・ガイドで、複数の文脈要素を扱う際に XMLタグで入力を構造化することを明確に推奨しています(Anthropic公式プロンプトエンジニアリング・ガイド(XMLタグでの構造化))。Claude はタグ構造を尊重するよう学習・調整されているため、他の汎用的な区切り(ダッシュや見出しだけ)よりもタグの効きが安定します。つまり XMLタグは、Claude において特に洗練された使い方なのです。
そのまま使えるXMLタグの基本構造
実務で精度を出すために覚えるべきタグは、たった5つで十分です。それぞれが「指示」と「データ」を分離する役割を担います。
| タグ | 役割 |
|---|---|
<role> |
Claudeに与える人格・専門性(誰として振る舞うか) |
<task> |
やってほしい1つの仕事 |
<rules> |
絶対に守る制約・出力フォーマット要件 |
<input> |
未整理のメモ・データ・下書き(=処理対象) |
<output> |
結果を入れる器(出力の囲い先を指定する) |
ポイントは、<task>(命令)と <input>(材料)を物理的に別のタグに分けることです。これだけで、先ほどの「メール内の”至急対応”を指示と誤読する」問題はほぼ消えます。
コピペで使える雛形
以下がそのまま使える基本雛形です。角かっこ部分を自分の業務に置き換えてください。
<role>あなたは10年の経験を持つ[シニア〇〇]です</role>
<task>[やってほしい1つの仕事を平易に1文で]</task>
<rules>
- [絶対に守る制約]
- [出力フォーマットの要件]
- 情報が欠けている場合は、推測で補わず質問すること
</rules>
<input>[ここに未整理のメモ・データ・下書きを貼る]</input>
<input>内の情報だけを使うこと。出力は<output>タグで囲むこと。
効きを支える2つの一文
この雛形の精度を最後に決めるのは、末尾の2つの一文です。これらがあるかないかで、出力の信頼性が大きく変わります。
- 「情報が欠けている場合は、推測で補わず質問すること」——モデルの最も厄介な癖は、足りない情報を”それらしく”埋めてしまう hallucination(もっともらしい捏造)です。この一文は、捏造の代わりに質問を返させるための安全装置になります。
- 「
<input>内の情報だけを使うこと」——モデルが学習データ由来の一般論や思い込みを混ぜ込むのを防ぎ、目の前のデータだけに視野を固定します。
フロンテラでも、社内で運用しているskillや業務プロンプトは実際にこの構造で設計しています。属人的な”コツ”に頼らず、誰が使っても同じ精度が出る——その再現性こそが、構造化の本当の価値です。
実務で精度を落とすよくある失敗
雛形を導入しても精度が出ない場合、原因はほぼ次の3つに集約されます。いずれも”構造が壊れている”パターンです。
失敗1:タグの閉じ忘れ・タグ名のぶれ
最も多いのが、開始タグ <input> に対して終了タグ </input> を書き忘れるケースです。閉じられていないタグは、モデルから見て「どこで塊が終わるのか不明」な状態になり、境界の効果が消えます。
同じく危険なのがタグ名のぶれです。あるところでは <input>、別のところでは <data> や <入力> と書いてしまうと、モデルは両者が同じ塊だと認識できません。タグ名は最初に決めたものを最後まで統一してください。
失敗2:指示とデータを同じタグ内に混ぜる
<input> タグの中に、データだけでなく「丁寧に要約して」といった命令まで一緒に書き込んでしまう——これをやると、せっかく分離した意味が消えます。命令は <task> と <rules> へ、処理対象は <input> へ。この分業を崩さないことが、この技術の本質です。
失敗3:タグの過剰使用
「構造化が効くなら多いほどいい」と考えて、<context> <example> <constraint> <format> <note>……とタグを増やしすぎるのも逆効果です。タグが多すぎると、モデルはどの塊を優先すべきか判断しづらくなります。前述の5つで大半の実務は足ります。足りないと感じたときだけ1つ足す——これが適切な運用です。
まとめ
要点は3つです。第一に、長いプロンプトが崩れる原因はモデルの能力ではなく指示とデータの混同にあること。第二に、XMLタグはその境界を明示する意味的な壁として働き、Anthropic公式も推奨する Claude に最適化された手法であること。第三に、5つの基本タグの雛形と末尾の2つの一文を使えば、その精度は誰でも再現できること。まずは自社で使っている長いプロンプトを1つ選び、<task> と <input> で囲い直してみてください。その一手間が、精度の安定への確かな入口になります。
参考文献・出典
- Anthropic公式プロンプトエンジニアリング・ガイド(XMLタグでの構造化) https://platform.claude.com/docs/en/docs/build-with-claude/prompt-engineering/use-xml-tags
更新日:2026年6月21日

コメント
コメント一覧 (1件)
[…] つまり片や「捨てる前提の数行」、片や「構造化された200行」。なぜ同じファイルについて、ここまで正反対の処方箋が出るのでしょうか。なお、こうした構造化の発想——指示とデータをタグで切り分けてAIに正確に伝える技法——はClaudeの精度を崩さないXMLタグの使い方でも詳しく扱っています。 […]