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>
相关推荐
Bug收容所44 分钟前
学习LangChain day1
学习·langchain·llm·agent
老A的AI实验室1 小时前
Cyber Weekly #84
人工智能·ai·llm·agi·genai
流浪0012 小时前
大模型技术全景(十一):智能体通信协议 MCP、A2A 与 ANP
llm·agent·通信协议·mcp·a2a·anp
stereohomology2 小时前
免费额度大的:qoder,workbuddy.ai,zcode还是有区别的
llm·薅羊毛
熊猫钓鱼>_>3 小时前
越顺,越空:当 AI 把学习 “优化“ 到消失
人工智能·学习·ai·llm·agent·ai编程·metaai
每天都要写算法(努力版)4 小时前
【行业前沿报告】给智能体写工具:从接口能调用,到任务能完成
llm·agent
A1Book5 小时前
# 从 0 部署 Qwen3.8-27B:量化档位怎么选,终端配置怎么配
llm·测试
Together_CZ6 小时前
LLM-as-a-Verifier: A General-Purpose Verification Framework——一种通用验证框架
llm·framework·agent·verification·verifier·一种通用验证框架·llm-as-a-
桃西西呀8 小时前
LangChain 之八:流式与透传
人工智能·langchain·llm
桃西西呀8 小时前
LangChain 之九:一个能检索又会调工具的流式问答助手
人工智能·langchain·llm