Skip to content

高频面试题

Prompt 提示词的基本结构包括哪些部分?

这道题看似基础,实际考你能否把散乱需求拆成模型容易遵守、程序容易校验的结构。

适合阶段:Prompt 入门核心能力:结构化表达 · 边界隔离 · 输出控制

面试官角度分析,想考什么

  • 一个完整 Prompt 应该写哪些块?
    考基础结构是否清楚。
  • 为什么要把指令、输入和示例分开?
    考你是否理解边界混淆会带来注入和格式风险。
  • 所有 Prompt 都要很完整吗?
    考取舍能力,简单任务不该模板过度。
  • 结构化 Prompt 如何服务工程落地?
    考下游解析、测试和复用意识。

可直接抄走的 30 秒参考答案

text
Prompt 的基本结构一般是角色、任务、上下文、输入、约束、输出格式、示例和失败处理。角色决定视角,任务说明目标,上下文提供资料,输入要和指令隔离,约束定义边界,输出格式方便程序解析,示例帮助模型对齐风格和格式。复杂任务建议结构化,简单任务则保持清晰简洁。

面试回答详解,知其所以然

Prompt 的基本结构不是固定八股,而是为了让模型清楚地区分“要做什么”“基于什么做”“不能做什么”“结果长什么样”。

1. 常见结构

text
# 角色/身份
# 任务
# 上下文
# 输入
# 约束
# 输出格式
# 示例
# 失败处理

不是每个任务都需要全部字段。越是复杂、高风险、需要下游解析的任务,越需要显式结构。

2. 每个部分的作用

  • 角色/身份:告诉模型回答视角和语气,但不要用空泛专家人设替代任务说明。
  • 任务目标:一句话说明最终要完成什么,最好包含验收标准。
  • 上下文:提供业务背景、术语口径、用户画像、可用资料。
  • 输入数据:把用户文本、文档、表格或代码清晰包起来,避免被误认成指令。
  • 约束条件:限定信息来源、长度、语气、禁止事项和安全边界。
  • 输出格式:指定 JSON、Markdown、表格、纯文本或字段列表。
  • 示例:用 one-shot 或 few-shot 展示期望风格和边界样例。
  • 失败处理:说明信息不足、格式无法满足或发现冲突时如何回答。

3. 一个基础模板

text
你是{角色}。

任务:{要完成的事}

背景:{必要上下文}

输入:
"""
{用户输入}
"""

要求:
- {约束 1}
- {约束 2}

输出格式:
{结构或字段}

如果信息不足:{拒答或追问方式}

4. 为什么结构化有效

结构化 Prompt 给模型提供了明显的段落边界,也让团队更容易维护。对工程系统来说,结构化还有三个好处:可以模板化复用,可以对不同字段做版本管理,可以将输出格式接到自动校验和重试逻辑。

5. 常见失败点

  • 指令和用户输入混在一起,用户输入中的句子被模型当成新指令。
  • 只写“请严格输出 JSON”,但没有给 schema、字段类型和失败处理。
  • 示例和真实要求冲突,模型更容易模仿示例而不是遵守文字说明。
  • 约束过多且优先级不清,模型不知道冲突时听哪一条。

面试官追问3个问题

追问一:输入为什么要用分隔符包起来?

  • 考察点:是否理解边界隔离和注入风险。
  • 回答方向:分隔符把用户内容从开发者指令中分离出来,降低模型把输入当指令执行的概率。

追问二:示例应该放在哪里?

  • 考察点:是否理解 few-shot 对格式和行为的影响。
  • 回答方向:通常放在真实输入前,格式要和最终任务一致,避免示例规则与文字要求冲突。

追问三:格式要求写在前面还是后面?

  • 考察点:是否有实战经验。
  • 回答方向:关键格式可以前后都强调,但不要重复矛盾;复杂格式最好给 schema 和示例,并由程序校验。

扩展知识

结构化 Prompt 的优先级

text
目标 > 信息来源 > 安全边界 > 输出格式 > 风格偏好

当规则冲突时,Prompt 里最好明确优先级,否则模型可能按最近、最具体或最像示例的规则执行。

基于 MIT 协议开源