Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
独立メディア
いかなるプロジェクトとも無提携
Claudeスキルを学んで、すべてをもっとうまくやろう
claudeskill-me.com
最新
Subagentはより賢い小さなClaudeではない——それが解決するのは隔離の問題であり、能力の問題ではない  ·  SKILL.mdの適切な長さとは?公式が示す500行の目安と3層の段階的開示ロジック  ·  XMLタグの正しい使い方:プレーンテキストとの違いを示す3つの実例  ·  MCPとは何か?「AI版のUSB-C」を理解し、Claudeに初めての外部ツールを接続する方法  ·  Claude APIの請求額が急に高くなった?Prompt Cachingを使っているか、そしてひそかに変更されたTTLを確認しよう  ·  Claude のTemperatureパラメータの設定方法:0から1まで、そして開発者を巻き込み続ける隠れた制約
prompt-examples

XMLタグの正しい使い方:プレーンテキストとの違いを示す3つの実例

30秒バージョン · 忙しい方へ
XMLタグは装飾ではない。Claudeが推測に頼っていた意味的境界を、明示的な宣言に変える手段だ。

詳しく読む +
01 · なぜ起きたのか?

XMLタグと、段落分けや見出しでコンテンツを区切る方法とでは、効果にそれほど差がありますか?

差は「シグナルの明確さ」にある。段落分けやテキストラベル(例えば「例:」「入力:」といった文字マーカー)も一定程度の区切りを提供でき、人間の読者には理解できる。しかしこれらのマーカーは本質的に自然言語の一部であり、Claudeが処理する際も依然として内容の一部として解釈しており、構造的な境界宣言としては扱われない。

XMLタグの違いは、それがフォーマットレベルのシグナルであることだ。Claudeはマーカーテキストの意味を「理解」する必要がなく、コンテナの境界として直接認識する。これが公式ドキュメントが「複数の内容タイプが混在する」場面でタグの効果が最も顕著になると強調する理由でもある——内容タイプが多く混同しやすいほど、フォーマットレベルのシグナルが意味レベルのマーカーより信頼できる。

02 · 仕組みは?

タグ名に標準的な語彙はありますか?適当に名付けると効果に影響しますか?

公式ドキュメントは、Claudeが特定の「標準」XMLタグセットのみを認識するよう訓練されているわけではないと明言しており、<customer_data><financial_report>のような状況特化の記述的な名前でも同様に機能する。

しかし「どんな名前でもいい」と「適当に名付ける」は別の話だ。命名の原則は2つある。第一に、名前を見れば中身が一目でわかること——これは後でプロンプトを修正する際にも役立つ。第二に、同一プロンプト内で命名の一貫性を保つこと。ある箇所で<input>を使い、似た性質の別箇所で<user_input>に切り替えるような不一致は、それ自体が新たな混乱を生む。

03 · 自分にどう影響する?

XMLタグはFew-Shot Prompting(少数事例学習)やChain-of-Thought(思考の連鎖)と併用できますか?

併用できるだけでなく、公式ドキュメントはこの組み合わせを「パワーユーザー向けテクニック」として明確に推奨している。よくあるパターンは、複数の例を<examples>に包み、内部で<example>を使って入出力のペアごとに個別に区切る方法だ。これによりClaudeは「ここに複数の例があり、それぞれが独立した入出力ペアである」と明確に認識でき、異なる例の内容を混同して解釈することがなくなる。

Chain-of-Thoughtの部分では、<thinking><answer>タグを組み合わせることが多く、Claudeに推論プロセスと最終回答を分けて出力させることで、後でプログラム的に一部だけを抽出しやすくなる。注意点として、既にAPIの拡張思考機能を使っている場合、さらに<thinking>タグで追加の推論出力を求めることは推奨されない——2つの推論メカニズムが互いに干渉し、かえって効果が下がる可能性がある。

04 · どうすればいい?

私は普段API開発ではなく、claude.aiのブラウザ版でチャットしているだけですが、このテクニックは役に立ちますか?

完全に役立つし、思っているより敷居は低い。XMLの文法規則を理解したりコードを書いたりする必要はなく、チャット欄に直接<例>...</例><instructions>...</instructions>のような山括弧で異なる種類の内容を包むだけで、Claudeは同じように構造を認識する。

最も実用的な場面は、一度のメッセージで性質の異なる複数のテキストをClaudeに渡す必要があるときだ——例えば「従うべき文章スタイルの例」「背景資料」「今日書きたいテーマ」を同時に貼り付ける場合。これら3つのブロックに何のマーカーもなければ、Claudeが同じ種類のものと誤判断しやすい。10秒かけてタグを追加するだけで、より正確で、やり取りの往復が少ない回答が得られる——日常的なチャット利用においても十分に見合う投資だ。

全文 +

3段落を超えるプロンプトを書いたことがあるなら、こんな経験があるはずだ。Claudeが「例」を指示の一部として扱ってしまう、あるいは「背景情報」を処理すべき問題そのものと誤解してしまう——これはClaudeの理解力が足りないのではなく、プレーンテキストのプロンプトは内容が増えるほど、そもそも明確な境界を持たないという構造的な問題だ。丁寧に書いたシステムプロンプトでも、内部構造が乱れていれば誤読される。

Anthropic公式のプロンプトエンジニアリングガイドは、プロンプトが指示・文脈・例・可変入力を混在させる場合、XMLタグがClaudeの誤判断を大きく減らすと明記している。この記事は公式ドキュメントの文法規則を繰り返すのではなく、タグあり/なしの実例を3つ並べて、違いが実際どう現れるかを見せる。

ケース1:カスタマーサポート返信で「例」が「入力」と誤認される

タグなしのプロンプトは典型的にこうなる:「このクレームに親切な口調で返信して」という指示、続いて過去の優れた返信を例として貼り付け、最後に今回実際に処理すべきクレーム内容を貼る。人間の目には3つのブロックが明確に分かれて見えるが、Claudeにとってはすべてがただのテキストであり、「2番目のブロックは参考例で返信不要」「3番目こそが実際に処理すべきもの」と示す構造的シグナルが存在しない。よくある失敗は、Claudeが例そのものに返信してしまう、あるいは例の口調を間違った対象に適用してしまうことだ。

例を<example>に、実際のクレームを<input>に包み、指示を<instructions>に保つことで、各ブロックの役割が曖昧でなくなる。これは装飾的な記号追加ではなく、Claudeが以前は推測に頼っていた意味的境界を、明示的な宣言に変換する作業だ。

ケース2:複数文書の比較でClaudeが出典を誤る

2つ以上の文書をClaudeに渡して比較を依頼する場合、プレーンテキストの貼り付けが最も問題を起こしやすい——文書間に明確な区切りがないと、Claudeが文書Aの内容を文書Bの発言として誤帰属させることがあり、特に文書の書式が似ていて見出しの区別が乏しい場合に顕著になる。

公式が推奨する方法は、各文書をindex属性付きの<document>タグで包み、内部に<source><document_content>のサブタグをネストすることだ。この入れ子構造により、Claudeは回答生成時に「この主張はどの文書由来か」を明示的に示せるようになる——これは本サイトが複数ソースの検索結果を扱う際に実際に採用しているパターンでもあり、文単位での出典明示を求める前に、各ソースを個別にタグで包んでいる。

ケース3:役割設定が後続の指示で希薄化する

もう一つよくあるパターンは、プロンプト冒頭で役割を設定(「あなたはシニアバックエンドエンジニアです」)した後、長いフォーマット要求や出力規則、注意事項が続き、役割設定の影響力が徐々に薄れ、Claudeの口調が汎用的な方向に流れてしまい、本来設定されたはずの専門的な視点を失うことだ。

役割設定とフォーマット規則を分離する——例えば役割はシステムプロンプトに保ち、フォーマット要求を<formatting>に包む——ことで、Claudeは「これが私の身分」と「これが私の出力ルール」を区別でき、規則セクションが長くなっても役割設定の重みが希薄化しない。

XMLタグが不要な場合

公式ドキュメントの表現は具体的だ:プロンプトが「指示・文脈・例・可変入力を混在させる」場合にXMLタグを使う。逆も成り立つ——プロンプトが複数の内容タイプを含まない単純な一つの質問であれば、タグを追加してもノイズが増えるだけで実質的な改善にはならない。判断基準はプロンプトの長さではなく、互いに区別すべき内容タイプがいくつあるかだ。

あなたのプロンプト設計にとって何を意味するか

次にプロンプトを書くときは、まず自分に問いかけてほしい:このテキストには指示・例・背景情報・処理すべき入力のうち、いくつの異なる役割の内容が含まれているか?答えが2つ以上なら、それぞれを専用タグで包む方が、Claudeに境界の推測を任せ続けるより確実だ。タグ名に決まった語彙はなく、重要なのは一つのプロンプト内で一貫性を保ち、中身が一目でわかる名前を選ぶことである。

出典:Use XML tags to structure your prompts - Claude DocsPrompting best practices - Claude Platform Docs
図解
純文字 Prompt 與 XML 標籤 Prompt 對比純文字 Prompt 缺乏結構邊界,容易讓 Claude 混淆各段落角色;XML 標籤把角色邊界明確宣告出來Plain Text vs XML-Tagged PromptPlain Text PromptInstruction text...Example text...Input text...No structural boundary→ Claude may confuse rolesXML-Tagged Prompt<instructions>...</instructions><example>...</example><input>...</input>Explicit role boundary→ Claude parses each block correctlyClaude Skill Me · claudeskill-me.com
スクリーンショット歓迎。転載時は出典を明記してください。
質問する
10文字以上入力してください
関連記事
システムプロンプトとユーザープロンプトの違いとは?この構造を理解すれば指示が本当に効くようになる
beginners · 08/27
初めてのSystem Prompt作成:「あなたはアシスタントです」から実際に使える役割設定へ
prompt-examples · 08/14
Subagentはより賢い小さなClaudeではない——それが解決するのは隔離の問題であり、能力の問題ではない
advanced · 08/31
SKILL.mdの適切な長さとは?公式が示す500行の目安と3層の段階的開示ロジック
skill-library · 08/31
関連トピック
System PromptとProjectの指示はどちらに置くべきか:2つの層が混同されやすい点
Claude Me
このルールがまったく異なる文脈やプロジェクトに移されても適用され続けるか?その答えが、System PromptとProject指示のどちらに置くべきか直接教えてくれる。
#system-prompt#prompt-engineering#context-window
なぜモデルは自信満々に間違えるのか:幻覚は「知らない」ことではなく、メカニズム自体の副作用だ
Claude Me
モデルが得意なのは妥当な文章の続きを生成することであり、生まれつき事実を検証する能力を持っているわけではない——聞こえが妥当であることと、それが真実であることは、完全には関連しない2つのことだ。
#context-window#prompt-engineering
なぜエージェントはタスクの途中で突然、先に伝えたルールを「忘れて」しまうのか?
AI Agent Bible
記憶の緩和メカニズムが一切ない場合、エージェントのルール遵守率は5ターン目の73%から16ターン目の33%へと低下する——忘れたとは教えてくれず、ただ間違った行動を始めるだけだ。
#context-window#prompt-engineering
プロンプトキャッシングでAPIコストを削減:見落とされがちな節約設定
Claude Me
誰が質問していても、何を質問していても内容がまったく同じなら、それはキャッシュする価値のある候補だ。
#context-window#system-prompt