提示詞 XML 標籤怎麼用:用標籤和 Markdown 給長提示詞分區(官方寫法與模板)

提示詞裏的 XML 標籤有什麼用?本文按 Anthropic、OpenAI、Google 官方文檔講清為什麼要給提示詞分區、標籤和 Markdown 標題各適合做什麼、標籤怎麼命名和嵌套,並附通用模板。

NNathaniel bigo··原創首發·AI 輔助撰寫
8 分鐘讀完
資料核對於 2026-10-11 · 依據官方文檔與公開資料整理 免費帳號 帳號

適用於誰

  • 搜「提示詞 xml標籤」「提示詞 分隔符」的人;
  • 看到別人的提示詞裏寫滿了 <context>、<instructions> 這樣的尖括號,想知道這是不是必須、該怎麼寫的人;
  • 提示詞越寫越長,模型開始把資料裏的話當成指令、或者把例子當成正文的人。

本文根據 Anthropic、OpenAI、Google 的官方提示詞文檔整理,資料核對於 2026-10-11。

結論先說

  1. 標籤的作用是「分區」:告訴模型哪一段是指令、哪一段是資料、哪一段是例子,避免混淆。
  2. 不是隻有 Claude 才用。三家官方文檔都推薦用 XML 風格的標籤或 Markdown 來組織提示詞。
  3. 沒有「官方規定的標籤名」。標籤名自己取,要求是有描述性、前後一致。
  4. Markdown 標題適合劃分大的章節,XML 標籤適合包住一整塊內容,兩者可以配合使用;Google 則建議在一個提示詞裏選定一種並保持一致。
  5. 短提示詞不需要標籤。一句話能說清的事,加標籤只是添亂。

三家官方怎麼說

說法
AnthropicXML 標籤幫助模型無歧義地解析複雜的提示詞,尤其是當提示詞裏混合了指令、上下文、示例和可變輸入時。把每種內容包在各自的標籤裏,可以減少誤解
OpenAI用 Markdown 和 XML 標籤的組合幫助模型理解提示詞和上下文數據的邏輯邊界。Markdown 的標題和列表用來標出不同部分並表達層級;XML 標籤用來界定一段內容(比如參考文檔)從哪裏開始、到哪裏結束,標籤的屬性還可以用來放關於內容的元數據
Google用清晰的分隔符把提示詞的不同部分分開,XML 風格的標籤(如 <context>、<task>)或 Markdown 標題都有效;選一種格式,在同一個提示詞裏保持一致

OpenAI 在給推理模型的建議裏也專門有一條:用 Markdown、XML 標籤和小標題這樣的分隔符,清楚地標明輸入的不同部分。

步驟

1. 判斷要不要分區

需要分區的信號:

  • 提示詞裏有大段粘貼的資料(文檔、電郵、代碼、聊天記錄);
  • 同時有指令 + 例子 + 待處理的內容三樣東西;
  • 資料裏本身含有祈使句(比如一封電郵裏寫着「請盡快回覆」),你擔心模型把它當成給自己的指令;
  • 你需要程序化地從輸出裏提取某一部分。

反之,「把這句話翻譯成英文」這種一句話的任務,不需要任何標籤。

2. 給每種內容一個標籤

Anthropic 舉的例子是 <instructions>、<context>、<input>。常用的一組:

標籤放什麼
<role> 或 # 身份角色和定位
<instructions>要做什麼、規則、步驟
<context>背景資訊
<document> / <documents>參考資料
<example> / <examples>少樣本示例
<input> 或具體名稱如 <email>這一次要處理的內容
<output_format>期望的輸出格式

Anthropic 的兩條最佳實踐:

  • 標籤名要一致、有描述性。整個提示詞乃至你所有的提示詞裏,同一種內容用同一個名字;
  • 內容有天然層級時就嵌套。例如多份文檔放在 <documents> 裏,每份再用帶編號的 <document index="1"> 包起來。

標籤名用中文還是英文,官方文檔沒有規定,示例都是英文。重要的是前後一致、成對閉合。

3. 在指令裏按名字引用

標籤的好處是可以指名道姓。與其寫「根據上面的內容」,不如寫:

請根據 <contract> 中的條款,逐條檢查 <checklist> 裏的每一項是否滿足。

資料很多時,這種引用方式能明顯減少模型「看錯對象」的情況。

4. Markdown 和 XML 怎麼配合

OpenAI 官方示例的排法是:大章節用 Markdown 標題,具體內容塊用 XML 標籤。

# 身份
你是幫助團隊統一代碼風格的編程助手。

# 指令
* 變量名一律用 snake_case。
* 只返回代碼,不要解釋。

# 示例
<user_query>
怎麼聲明一個存名字的字符串變量?
</user_query>
<assistant_response>
var first_name = "Anna";
</assistant_response>

Google 的模板則是全程用 XML 風格的標籤(<role>、<constraints>、<context>、<task>),並說明把用戶輸入放進 <context> 之後,模型會知道這是數據而不是指令。兩種都可以,關鍵是一個提示詞內部風格統一。

Anthropic 還有一條相關的提醒:提示詞本身的格式風格會影響回答的風格。提示詞裏滿是 Markdown,回答也更容易滿是 Markdown;想要成段的文字,就少用列表和加粗來寫提示詞。

5. 讓輸出也進標籤

標籤不只用於輸入。讓模型把不同部分的輸出放進指定的標籤裏,後續提取和核對都更方便:

先在 <quotes> 標籤裏摘錄相關原文,再在 <answer> 標籤裏給出結論。

Anthropic 文檔裏把這種做法用在好幾個地方:用 <quotes> 和 <info> 分開摘錄與分析;思考關閉時把最終答案放進 <answer> 標籤以便提取;想控制寫作風格時,讓模型把正文寫在一個以風格命名的標籤裏。

程序裏用簡單的字符串匹配就能取出標籤內的內容。但如果你需要的是嚴格合法的 JSON,應該用結構化輸出功能而不是靠標籤,見《如何讓大模型穩定輸出 JSON》。

通用模板

<role>
[一兩句話:它是誰、為誰服務、什麼口吻]
</role>

<instructions>
1. [第一步]
2. [第二步]
3. [規則與限制;重要的規則寫上原因]
</instructions>

<examples>
<example>
<input>[示例輸入]</input>
<output>[示例輸出]</output>
</example>
</examples>

<documents>
<document index="1">
<source>[來源]</source>
<document_content>
[資料正文]
</document_content>
</document>
</documents>

<task>
[這一次的具體請求。資料很長時,把這一段放在最後]
</task>

按需刪減:沒有例子就刪掉 <examples>,沒有資料就刪掉 <documents>。

常見問題

Q:必須是合法的 XML 嗎?要不要寫聲明、轉義特殊字符?

不需要。這裏只是借用尖括號的形式做分隔,不會被當作 XML 解析。成對閉合、不要交叉嵌套就可以。

Q:用三個引號、三個反引號或者 ### 做分隔行不行?

可以,它們同樣是分隔符。標籤的優勢在於有名字,能在指令裏引用,也能嵌套。資料本身包含代碼塊或 Markdown 時,用標籤包住更不容易混淆。

Q:資料裏的內容會不會被當成指令執行?

分區能降低這種風險,Google 的模板也是這樣說明的。但它不是安全機制:處理不可信的外部內容(網頁、陌生電郵)時,仍然要假設其中可能有人為設計的指令,重要操作要有人工確認。

Q:聊天介面裏也能這麼寫嗎?

能,直接把帶標籤的文本粘進輸入框即可。上載文件時文件本身就是一個獨立的塊,不用再包標籤,在問題裏用文件名指代就行。

Q:標籤用得越多越好嗎?

不是。每加一個標籤都要問:它區分開了兩種不同的內容嗎?只包住一句話的標籤通常是多餘的。

參考資料

  • Anthropic 文檔:Prompting best practices(Structure prompts with XML tags、Control the format of responses)— https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices
  • OpenAI 文檔:Prompt engineering(Message formatting with Markdown and XML)— https://developers.openai.com/api/docs/guides/prompt-engineering
  • OpenAI 文檔:Reasoning best practices — https://developers.openai.com/api/docs/guides/reasoning-best-practices
  • Google 文檔:Prompt design strategies(Structured prompting examples)— https://ai.google.dev/gemini-api/docs/prompting-strategies
需要開通或續費?ChatGPT Plus 充值 →

Nathaniel 的更多內容

  1. 01

    AI 學習路線:零基礎從哪開始,6 個階段、每階段該讀哪幾篇教學(2026)

    AI 學習路線怎麼走?給零基礎的人一條循序漸進的路徑:先選一個助手用順,再學提問,再用進日常工作,按需學做圖做影片,守住私隱與版權,最後進階自動化和編程。每個階段都配了本站對應的教學。

    其他 AI 工具0
  2. 02

    AI 瀏覽器有哪些:Perplexity Comet、Opera Neon、Dia、Brave Leo 與 Edge Copilot 的官方說法對照

    AI 瀏覽器有哪些?按官方頁面整理 Perplexity Comet、Opera Neon、Dia、Brave Leo 和 Edge 裏的 Copilot:官方自述的定位、支持的平台、免費還是訂閱,以及 Gemini、Claude 的 Chrome 方案和已停用的 ChatGPT Atlas。

    其他 AI 工具0
  3. 03

    即夢國際版 Dreamina 是什麼:官方站入口、能生成什麼、免費積分和模型(2026)

    即夢國際版 Dreamina 是什麼?官方站是 dreamina.capcut.com,是一個圖片、影片和數字人一體的 AI 創作平台。按官方首頁和 FAQ 講:能生成什麼、免費用戶每天 120 積分、列出的 Seedance 與 Seedream 模型,以及和國內即夢怎麼區分。

    其他 AI 工具0
  4. 04

    Kimi K3 Coding Plan 是什麼、怎麼用:Kimi Code 會員、模型 ID、套餐價格和額度規則

    Kimi K3 Coding Plan 是什麼?按 Kimi 官方文檔核對:官方現在叫 Kimi Code,是 Kimi 會員權益裏的編程服務,Plus 及以上才有;講 K3 等模型 ID、國內新套餐價格、三種客戶端、第三方工具接入和額度規則。

    Kimi0
  5. 05

    DeepSeek V4 Pro 和 Flash 的區別與 API 價格:官方價格頁逐項對照(高峰與空閒時段)

    DeepSeek V4 Pro 和 Flash 有什麼區別、API 怎麼收費?按 DeepSeek 官方價格頁(2026-10-19 查詢)列出兩個模型的版本、上下文、圖像理解、並發和每百萬 token 價格,說明高峰與空閒時段的計費差別和舊模型名怎麼處理。

    其他 AI 工具0
  6. 06

    GPT-6 Pro(Astra)怎麼用、哪些套餐有:怎麼選到 Pro 檔、用量限制和 Pro 三檔價格

    GPT-6 Pro(Astra)怎麼用、哪些套餐有?按 OpenAI 幫助中心核對:聊天裏 Pro 檔給 Pro 100、Pro 200、Business 和 Enterprise;Plus 在 Work 和 Codex 裏含 Astra。講怎麼選到、用量上限和官方 Pro 價格。

    ChatGPT0

同產品的其他教學

  1. 01

    Claude Pro 和 Max 的區別:用量、價格、Fable 模型和每月 API 額度怎麼選

    Claude Pro 和 Max 有什麼區別?按官方定價頁和幫助中心核對:Max 有 5x、20x 兩檔用量,Pro 與 Max 在價格、Fable 模型、每月 API 額度和計費週期上的差別,以及什麼情況下 Pro 夠用、什麼情況下該升 Max。

    Claude0
  2. 02

    Claude 登入不了、用不了、打不開怎麼辦:按官方幫助中心逐條排查

    Claude 無法登入、無法使用、無法打開怎麼辦?按官方幫助中心的順序排查:收不到登入電郵、登入報錯、Google 登入出問題、系統繁忙、額度用完、官方故障,以及所在地區是否在官方支持名單裏。

    Claude0
  3. 03

    Claude 怎麼註冊:官方註冊流程、手機驗證要求,以及提示無法註冊時官方怎麼說

    Claude 怎麼註冊?打開 claude.ai,用 Google 或電郵登入連結創建帳號,再用支持地區的手機號收短訊驗證碼。講清官方的註冊條件、手機驗證的限制,以及收不到驗證碼、號碼被用過多次時官方的處理辦法。

    Claude0
  4. 04

    Claude 怎麼用:新手入門,從打開聊天到寫出第一個好問題

    Claude 怎麼用?按官方幫助中心整理的新手路徑:在網頁、桌面版或手機 App 打開聊天,像對同事一樣寫需求,用輸入框的「+」和「/」找功能,點模型名換模型,免費版有每 5 小時重置的上限。

    Claude0
  5. 05

    Claude 怎麼設定成中文:介面語言、回答語言和語音語言分別怎麼設

    Claude 怎麼設定中文?官方幫助中心列出的 11 種介面語言裏目前沒有中文,但 Claude 會用你提問的語言回答,直接用中文問即可;想固定用中文,可在設定的 Instructions for Claude 裏寫一句。語音模式的語言要單獨選。

    Claude0
  6. 06

    MCP Inspector 怎麼用:安裝、啟動命令、調試 MCP 伺服器與 v2 的變化

    MCP Inspector 是什麼、怎麼安裝和使用?按 MCP 官方文檔講清網頁、命令行、終端介面三種模式的啟動命令,怎麼連本地和遠程伺服器、怎麼傳環境變量,密鑰存在哪,以及 v2 相比舊教學在端口、令牌變量名和 Node 版本上的變化。

    Claude其他 AI 工具0

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~