PR

GPT-5はMarkdownよりXMLが得意? OpenAI公式プロンプトガイドが勧める構造化タグの使い方

AIツール

結論から書きます。OpenAIの公式プロンプトガイドは、指示の区切りにXML風のタグを使う書き方を勧めています。ただし「MarkdownよりXMLが好き」と公式が言い切った事実はありません。この記事では、公式資料に書いてあることと、書いていないことを分けて整理します。

※本記事は公式資料・公開情報をもとにした解説です。筆者による実機検証は含みません。

※2026年9月追記: GPT-5は2025年8月7日に公開されました。初稿にあった「まだ公開されていない」という記述は削除しています。OpenAIが公開したGPT-5 prompting guide(OpenAI Cookbook)があります。このガイドは、指示のまとまりをXML風タグで囲む構造化を実例つきで勧めています。本文はこのガイドの内容に合わせて書き直しました。

そもそもMarkdownとXMLは何が違うのか

Markdownは、見出しに「#」、箇条書きに「-」を付けるだけの軽い記法です。人が読みやすく、書くのも速い。一方で「この見出しの範囲はどこまでか」が、記号だけでははっきりしません。

XMLは、<task>で始めて</task>で閉じる書き方です。開始と終了が対になるので、範囲があいまいになりません。人が読むには少し重い。その代わり、機械には境界がはっきり伝わります。

プロンプトで使うのは、厳密なXML文書ではなく「XML風のタグ」です。タグ名は自分で決めてかまいません。閉じ忘れさえなければ、それで役目を果たします。

公式ガイドに実際に書いてあること

ガイドの本文を読むと、推奨プロンプトの例はほぼすべてタグで区切られています。登場するタグ名を拾うと、次のようなものです。

  • <context_gathering> …… 情報収集をどこまで深くやるかの指示
  • <persistence> …… 途中で止まらず最後まで進める指示
  • <tool_preambles> …… ツールを使う前に計画を説明させる指示
  • <code_editing_rules> …… コード編集のルール集
  • <self_reflection> …… 出力前に自分で採点させる指示

もう1つ、はっきりした記述があります。コードエディタ「Cursor」の事例です。<[instruction]_spec>のような構造化したXML仕様を使うと、指示への追従が改善したと書かれています。「XMLで区切ると指示を守りやすくなる」の根拠は、この一文です。

一方で、ガイドにはMarkdownとXMLを並べて比較した記述はありません。「XMLの方が好き」は、この記事の初稿を含めて、読み手が付け足した解釈です。ここは正直に訂正しておきます。

Markdownについては別の話が書いてあります。API経由のGPT-5は、既定では回答をMarkdownで整形しないそうです。使いたいときは「意味のある箇所だけMarkdownを使う」と明示する。つまりMarkdownは「出力の見た目」の話、XML風タグは「入力の区切り」の話です。この2つを混ぜると話がねじれます。

同じ依頼を2通りで書いてみる

公式の書き方にならって、商品レビュー記事の構成案を頼む場面で比べます。まずはよくあるMarkdown風の指示です。

# 商品レビュー記事の構成案を作成してください
## 商品名:〇〇
### ターゲット読者:△△
- 導入:読者の悩みに共感する
- 商品紹介:...

これでも意図は伝わります。ただ「ターゲット読者」が見出しなのか条件なのか、記号だけでは決まりません。次に、タグで区切った書き方です。

<request>
  <task>商品レビュー記事の構成案を作成してください</task>
  <product_name>〇〇</product_name>
  <target_audience>△△</target_audience>
  <structure>
    <item>導入:読者の悩みに共感する</item>
    <item>商品紹介:...</item>
  </structure>
</request>

「どこからどこまでが1つの条件か」が、タグの名前と閉じ位置で決まります。指示が長くなるほど、この差が効いてくる。公式ガイドの例が長いシステムプロンプトばかりなのは、そういう理由だと読めます。

全部XMLにするのも違う。使い分けの目安

チャットで一言二言の質問をするのに、毎回タグを書くのは面倒なだけです。効果もほとんど見込めません。逆に、毎日同じ形式で使う長い指示を、記号だけで書き続けるのももったいない。

目安は3つです。1つ目、指示が10行を超えるならタグで区切る。2つ目、役割・入力データ・出力形式のように性質が違う情報が混ざるなら区切る。3つ目、APIや自動化で同じプロンプトを繰り返し使うなら区切る。この3つに当てはまらない依頼は、今までどおりの書き方で足ります。

たとえば名古屋で製造業をしている会社が、見積依頼メールの下書きをAIに毎日頼むとします。<role>に自社の立場、<input>に相手のメール本文を入れる。<format>には「敬語・200字以内・件名つき」と書く。相手のメールを貼り替えるだけで、毎回ぶれない下書きが出てきます。フリーランスのライターなら、<input>に取材メモを入れる。<format>に媒体ごとの文字数を入れれば、同じ型になります。

まとめ

公式ガイドが勧めているのは「長い指示をXML風タグで区切ること」です。「XMLが好き」でも「Markdownは古い」でもありません。短い質問はそのまま、長い定型の指示はタグで区切る。それだけで、公式ガイドの言う「指示への追従」は十分に取り込めます。

タグ名は英語でも日本語でもかまいません。閉じ忘れだけは気をつけてください。閉じ忘れたタグは、区切りがないのと同じです。

出典: GPT-5 prompting guide(OpenAI Cookbook)

タイトルとURLをコピーしました