POML 语法基础(Language Basics)

POML 语法基础(Language Basics)

参考官方文档:microsoft.github.io/poml/stable...

独立文件模式(Standalone .poml)

  • 最常用方式:创建以 .poml 为后缀的文件,使用接近 XML 的语法描述提示。
  • 顶层需要使用 <poml> 标签包裹全部内容,便于解析与渲染。

最小示例:

poml 复制代码
<poml>
  <p>Hello, world!</p>
</poml>

要点:

  • 文件后缀:.poml
  • 必须有顶层 <poml>,否则许多能力不可用。

Free Text 模式(不推荐)

  • 你也可以不写 <poml>,直接写普通文本,POML 会把它当作字符串处理。
  • 但当前存在多项限制:
    • 不能正确渲染任何使用尖括号包裹的"标签样"文本(如 <...>)。
    • 许多特殊字符不可用。
    • 无法使用 POML 的诸多"结构化"能力。
  • 因此官方建议:始终使用顶层 <poml>

基本术语

  • 标签(Tag):用尖括号 < > 包裹的元素标记,如 <p> 是开始标签,</p> 是结束标签。

  • 属性(Attribute):写在开始标签内的键值对,形如 name="value",为元素提供附加信息,例如:

    poml 复制代码
    <p speaker="human">Hello</p>

    其中 speaker 为属性名,"human" 为属性值。

  • 内容(Content):元素起止标签之间的文本或子元素,例如:

    poml 复制代码
    <p>Hello, world!</p>

    Hello, world! 即为 <p> 的内容。

转义字符(Escapes)

由于实现差异,POML 的转义语法与 HTML/XML 略有不同。以下为常用转义:

  • #quot; 表示 "
  • #apos; 表示 '
  • #amp; 表示 &
  • #lt; 表示 <
  • #gt; 表示 >
  • #hash; 表示 #
  • #lbrace; 表示 {
  • #rbrace; 表示 }

示例(在内容与属性值中使用转义):

poml 复制代码
<poml>
  <p>He said #quot;POML is cool!#quot; & smiled.</p>
  <p note="curly #lbrace;demo#rbrace; & quote #quot;ok#quot;">Escapes in attributes</p>
</poml>

提示:多数场景无需转义,但当遇到无法正常显示或被误解析的字符时,使用以上转义可避免问题。

实践建议

  • 始终以 <poml> 作为文件根元素;避免使用 Free Text 模式。
  • 保持标签闭合与缩进清晰,便于阅读与诊断。
  • 若内容中含有尖括号、引号、花括号、和号等,请使用转义。
  • 将结构(标签/组件)与内容区分,便于后续与样式/模板结合使用(见入门篇与快速上手篇)。

练习

  1. 将一段自由文本改写为标准 POML:
poml 复制代码
<!-- 原:Hello, world! -->
<poml>
  <p>Hello, world!</p>
</poml>
  1. 在属性与内容中同时使用转义,确保不会被误解析:
poml 复制代码
<poml>
  <p meta="use #lbrace;curly#rbrace; and #quot;quotes#quot;">Show <tags> as text with #lt; and #gt;</p>
</poml>
相关推荐
元Y亨H4 小时前
LangChain API 调用语言模型
langchain·llm
元Y亨H4 小时前
大模型技术 LangChain 概述
langchain·llm
元Y亨H4 小时前
大模型技术 提示词模板 概述
langchain·llm
元Y亨H9 小时前
大模型技术 模型调用结果解析 概述
google·langchain·llm
元Y亨H9 小时前
大模型技术 Ollama 概述
llm·ollama
chaors10 小时前
DeepResearchSystem 0x06:LLM as Judge
llm·agent·ai编程
武子康14 小时前
GPT-5.6 Luna 降价 80%:Agent 真正该重算的是单次成功成本
人工智能·chatgpt·llm
Michaelliu_dev20 小时前
多模态大模型推理流程解析
人工智能·llm·多模态大模型·vit·llava·rope·mllm
玉鸯20 小时前
Agent 的任务编排:从 System Prompt 到 Hierarchical Multi-Agent
python·llm·agent
土豆12501 天前
DeepSeek V4-Flash 正式版深度解读:一行 changelog 里的暗涌与野心
人工智能·llm