纲要
- 普通自然语言提示词
- 角色与背景定义
- 目标与诉求描述
- 输出格式约束
- Markdown 格式提示词
- 标题层级与粗体标记
- 段落化组织方式
- 大模型的结构化偏好
- 优雅风格化提示词
- 方括号标记法
- 编号与列表规范
- 可维护性与团队协作
- XML/HTML 标签格式提示词
- 起始标签与结束标签
- 标签嵌套机制
- 自定义语义标签
- 四种提示词范式的横向对比
- 参考文档
- 总结
引言
在与大语言模型(Large Language Model, LLM)交互的过程中,提示词(Prompt)的结构化程度与信息组织方式直接影响模型对意图的解析准确度及输出内容的可用性。提示词并非简单的问题描述,而是一个可被工程化设计的指令集合。不同的编写范式在信息传递效率、模型解析友好度以及人工可维护性方面存在显著差异。本文系统梳理四类主流提示词编写范式,分别阐释其结构特征、适用场景与优劣势,帮助开发者根据实际需求选择或组合使用合适的提示词结构。
普通自然语言提示词
普通自然语言提示词指直接使用人类日常交流的自然语言形式向大模型描述任务需求。该类提示词不依赖任何标记语法或特殊符号,完全依赖自然语义传递信息,是使用门槛最低、应用范围最广的一类提示词。
一个结构清晰的普通自然语言提示词通常包含以下逻辑要素:
- 角色定义:明确大模型需扮演的身份或所处的上下文环境。例如,"你是一位拥有三十年临床经验的中医医师"或"你是一位米其林三星餐厅的主厨"。精准的角色定义能够引导模型调用对应领域的知识表征,提升输出内容的专业性与针对性。
- 任务目标:清晰陈述模型需完成的具体任务,包括输入素材、处理逻辑与期望产出。例如,"请根据以下食材清单设计一道创意菜肴"。
- 输出格式约束:明确模型返回结果的组织结构,例如要求包含标题、列表、分段等具体呈现形式。
该范式与用户在 ChatGPT、Claude、豆包等对话式 AI 产品中的日常交互体验完全一致,学习成本接近于零,适用于绝大多数通用场景。但当任务复杂度提升或需要长期维护时,纯自然语言提示词的结构模糊性可能导致信息遗漏或解析歧义。
Markdown 格式提示词
Markdown 是一种轻量级标记语言,通过简洁的符号标记实现文本的结构化排版。在提示词工程中,Markdown 格式因其清晰的层级结构与良好的可读性,成为大模型解析效率较高的一种输入形式。
典型的 Markdown 格式提示词使用以下标记语法:
- 一级标题(
#)与二级标题(##)用于划分提示词的逻辑区块,如"角色设定""食材清单""制作要求""输出格式"等。 - 粗体标记(
**文本**)用于突出关键词或核心指令,增强语义权重。 - 无序列表(
-)与有序列表(1.)用于枚举多个并列项。 - 三级标题(
###)用于进一步细化子区块,例如在"输出格式"下分别定义子结构。
在大模型的预训练语料中,Markdown 格式文本占据可观比例,模型对该格式具有天然的解析优势。部分 AI Agent 框架(如 Claude 的 Skills 系统)将 Markdown 作为首选或唯一支持的提示词输入格式。然而,手动编写与维护复杂的 Markdown 提示词存在一定的语法记忆成本,开发者需熟悉各级标题的层次对应关系及常见标记用法。
优雅风格化提示词
优雅风格化提示词介于自然语言与严格标记语言之间,通过方括号([])或花括号({})等符号对语义单元进行视觉分隔,配合空行、数字编号与横杠列表形成规整的排版风格。该类范式在平衡可读性与结构化程度方面表现突出。
典型结构如下:
- 使用方括号或花括号包裹段落主题,如
[角色设定]、[任务目标]、[输出格式]等,作为每个逻辑块的主题标识。 - 各逻辑块之间以空行分隔,确保视觉层次清晰。
- 块内使用数字列表(
1.、2.)或横杠列表(-、*)枚举具体指令或约束条件。 - 列表标记后须跟随一个空格,以符合通用文本排版规范。
该范式在提示词数量积累至数百甚至上千条时,能够显著降低后续检索、修改与版本管理的难度。在团队协作场景中,统一的风格化模板有助于新成员快速理解既有提示词的逻辑构成,减少沟通成本。相较于纯 Markdown,该范式不需要记忆标题层级符号,上手更为直观。
XML/HTML 标签格式提示词
XML/HTML 标签格式提示词借鉴了标记语言的设计思想,使用尖括号标签对内容进行语义化标注。其基本形式为起始标签 <tagname> 与结束标签 </tagname> 配对使用,标签所包裹的文本即为该语义单元的具体内容。
例如:
xml
<role>你是一位专业厨师</role>
开发者可根据任务需要自定义标签名称,如 <background>、<ingredients>、<instructions>、<constraints> 等,以精确对应不同信息维度。
标签格式支持任意层级的嵌套,适用于需要表达复杂层次关系(如多级指令、分步骤操作、条件分支逻辑)的场景。示例如下:
xml
<instructions>
<step order="1">清洗并处理食材</step>
<step order="2">按序烹饪</step>
<step order="3">装盘并点缀</step>
</instructions>
该格式在 Claude 的 Artifacts 生成等高级功能中被广泛采用,与标准 HTML/XML 语法完全兼容。尽管在日常对话式交互中使用频率较低,但当开发者需要构建高度结构化的复杂任务流程时,XML 标签提供的语义精确性与扩展能力具有独特优势。
四种提示词范式的横向对比
| 范式 | 核心标记 | 学习成本 | 模型解析友好度 | 人工可维护性 | 适用场景 |
|---|---|---|---|---|---|
| 普通自然语言 | 无 | 极低 | 一般 | 较低 | 日常对话、快速原型验证 |
| Markdown 格式 | #、**、- |
低 | 较高 | 较好 | Skill 定义、框架集成 |
| 优雅风格化 | []、{}、编号 |
低 | 较好 | 好 | 大规模提示词管理、团队协作 |
| XML/HTML 标签 | <tag>、</tag> |
中等 | 高 | 好 | 复杂任务编排、多层级指令 |
四种范式在各项指标上各有侧重,且并非互斥关系。在实际项目中,开发者可根据业务需求进行组合运用------例如以自然语言作为交互主体,同时嵌入 Markdown 标题结构提升可读性,再以 XML 标签进行局部精细控制。
#mermaid-svg-qqzYgPFfuRmfJ9GX{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-qqzYgPFfuRmfJ9GX .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-qqzYgPFfuRmfJ9GX .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-qqzYgPFfuRmfJ9GX .error-icon{fill:#552222;}#mermaid-svg-qqzYgPFfuRmfJ9GX .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-qqzYgPFfuRmfJ9GX .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-qqzYgPFfuRmfJ9GX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-qqzYgPFfuRmfJ9GX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-qqzYgPFfuRmfJ9GX .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-qqzYgPFfuRmfJ9GX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-qqzYgPFfuRmfJ9GX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-qqzYgPFfuRmfJ9GX .marker{fill:#333333;stroke:#333333;}#mermaid-svg-qqzYgPFfuRmfJ9GX .marker.cross{stroke:#333333;}#mermaid-svg-qqzYgPFfuRmfJ9GX svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-qqzYgPFfuRmfJ9GX p{margin:0;}#mermaid-svg-qqzYgPFfuRmfJ9GX .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-qqzYgPFfuRmfJ9GX .cluster-label text{fill:#333;}#mermaid-svg-qqzYgPFfuRmfJ9GX .cluster-label span{color:#333;}#mermaid-svg-qqzYgPFfuRmfJ9GX .cluster-label span p{background-color:transparent;}#mermaid-svg-qqzYgPFfuRmfJ9GX .label text,#mermaid-svg-qqzYgPFfuRmfJ9GX span{fill:#333;color:#333;}#mermaid-svg-qqzYgPFfuRmfJ9GX .node rect,#mermaid-svg-qqzYgPFfuRmfJ9GX .node circle,#mermaid-svg-qqzYgPFfuRmfJ9GX .node ellipse,#mermaid-svg-qqzYgPFfuRmfJ9GX .node polygon,#mermaid-svg-qqzYgPFfuRmfJ9GX .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-qqzYgPFfuRmfJ9GX .rough-node .label text,#mermaid-svg-qqzYgPFfuRmfJ9GX .node .label text,#mermaid-svg-qqzYgPFfuRmfJ9GX .image-shape .label,#mermaid-svg-qqzYgPFfuRmfJ9GX .icon-shape .label{text-anchor:middle;}#mermaid-svg-qqzYgPFfuRmfJ9GX .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-qqzYgPFfuRmfJ9GX .rough-node .label,#mermaid-svg-qqzYgPFfuRmfJ9GX .node .label,#mermaid-svg-qqzYgPFfuRmfJ9GX .image-shape .label,#mermaid-svg-qqzYgPFfuRmfJ9GX .icon-shape .label{text-align:center;}#mermaid-svg-qqzYgPFfuRmfJ9GX .node.clickable{cursor:pointer;}#mermaid-svg-qqzYgPFfuRmfJ9GX .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-qqzYgPFfuRmfJ9GX .arrowheadPath{fill:#333333;}#mermaid-svg-qqzYgPFfuRmfJ9GX .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-qqzYgPFfuRmfJ9GX .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-qqzYgPFfuRmfJ9GX .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-qqzYgPFfuRmfJ9GX .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-qqzYgPFfuRmfJ9GX .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-qqzYgPFfuRmfJ9GX .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-qqzYgPFfuRmfJ9GX .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-qqzYgPFfuRmfJ9GX .cluster text{fill:#333;}#mermaid-svg-qqzYgPFfuRmfJ9GX .cluster span{color:#333;}#mermaid-svg-qqzYgPFfuRmfJ9GX div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-qqzYgPFfuRmfJ9GX .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-qqzYgPFfuRmfJ9GX rect.text{fill:none;stroke-width:0;}#mermaid-svg-qqzYgPFfuRmfJ9GX .icon-shape,#mermaid-svg-qqzYgPFfuRmfJ9GX .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-qqzYgPFfuRmfJ9GX .icon-shape p,#mermaid-svg-qqzYgPFfuRmfJ9GX .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-qqzYgPFfuRmfJ9GX .icon-shape .label rect,#mermaid-svg-qqzYgPFfuRmfJ9GX .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-qqzYgPFfuRmfJ9GX .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-qqzYgPFfuRmfJ9GX .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-qqzYgPFfuRmfJ9GX :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 提示词编写范式
普通自然语言
Markdown 格式
优雅风格化
XML/HTML 标签
无标记语法
角色 + 目标 + 格式
学习成本极低
标题层级
**粗体** 强调
- 列表枚举
模型解析友好
方括号/花括号标记
空行分段
编号 / 横杠列表
可维护性突出
起始/结束标签
任意层级嵌套
自定义语义标签
复杂任务编排
参考文档
官方文档
参考链接
- DeepLearning.AI - ChatGPT Prompt Engineering for Developers
- Prompt Engineering Guide (GitHub)
- Learn Prompting
总结
提示词的结构化设计是提升大模型交互效率与输出质量的关键工程环节。
本文系统梳理了四类主流的提示词编写范式:普通自然语言提示词以最低的学习成本覆盖了最广泛的日常使用场景;Markdown 格式提示词通过轻量级标记语言提升模型解析效率,被众多 AI Agent 框架采纳为标准输入格式;优雅风格化提示词在视觉整洁性与人工可维护性之间取得良好平衡,适用于大规模提示词资产管理;XML/HTML 标签格式提示词则提供了最强的语义扩展能力与嵌套表达能力,适用于复杂任务编排。
在实际项目实践中,四类范式可灵活组合使用。理解并掌握这四种提示词范式,是构建高效、可靠的人机协作系统的必要基础。