R

m201 - Prompt Engineering 实战体系

创建 2026-05-13 更新 2026-05-16 9 条双链 共创

m201. Prompt Engineering 实战体系

Prompt Engineering 是 PM 日常最高频使用的技术杠杆——不需要训练、不需要部署、不需要工程团队配合,一个人就能完成从假设到验证的全循环。但正因为门槛低,它也是最容易被低估和误用的技术手段。

2.1.1 核心提示词技术光谱

Zero-shot Prompting(零样本)

直接给出指令,不提供任何示例。

适用条件:任务定义清晰、模型预训练知识已覆盖、对输出格式要求不严格。

核心局限:模型对”分类标准”的理解完全依赖预训练知识。遇到业务特定分类体系时(如你的公司把”功能建议”单独列为一类),Zero-shot 准确率会显著下降。

Few-shot Prompting(少样本)

在 prompt 中提供 2–5 个输入-输出示例,让模型通过 In-context Learning 理解任务模式。

关键原则

  • 示例质量 >> 示例数量。2 个精准覆盖边界情况的示例,优于 10 个同质化示例
  • 刻意选择”模型最容易判断错误的边界 case”作为示例
  • 示例格式必须与期望输出严格一致——模型会隐式学习示例的结构模式
  • 示例顺序有影响:最相关的示例放在最靠近用户问题的位置效果更好(与 c09 Lost in the Middle 现象逻辑一致)

成本提示:每个示例都消耗 input token。System prompt + few-shot = 2000 tokens 时,每次请求的固定成本就锚定在此基数。影响见 m209 成本控制

Chain-of-Thought (CoT) 思维链

要求模型在给出最终答案前,先输出推理过程。CoT 有效是因为它改变了生成路径——中间推理 token 为后续 token 提供了更丰富的条件信号(原理见 c11 System 2)。

适用场景:数学、逻辑推理、多步骤分析、需要权衡 trade-off 的判断题。

不适用场景:简单分类、提取、翻译任务——强制 CoT 引入不必要的冗长和潜在错误。Output token 价格通常是 Input 的 2–4 倍,不必要的 CoT 直接放大成本(见 m209 §2.6.1)。

关键变体

变体机制适用场景
Zero-shot CoT添加”请一步步思考”即触发推理链通用推理提升
Self-Consistency多条推理链取多数投票高风险、高精度需求
Tree-of-Thought (ToT)关键节点分叉评估,剪枝低价值路径(模拟 c11 MCTS 树搜索高价值、低频次场景

Structured Prompting(结构化提示)

2025 年趋势:Prompt 的”工程化”——不再是自然语言段落,而是高度结构化的指令文档。

<role>你是一位专注于 B2B SaaS 领域的高级市场分析师</role>

<task>分析给定公司的竞争定位</task>

<constraints>
- 只基于提供的信息进行分析,不要补充未给出的事实
- 如果信息不足以做出判断,明确说明"信息不足"
- 输出必须包含:竞争优势、潜在风险、建议行动
</constraints>

<output_format>
JSON 格式:
{
  "advantages": ["..."],
  "risks": ["..."],
  "recommended_actions": ["..."],
  "confidence": "high/medium/low",
  "information_gaps": ["..."]
}
</output_format>

<context>
{用户提供的公司信息}
</context>

结构化 Prompt 的优势

  • 模型对 XML/Markdown 结构的遵循度远高于自然语言段落
  • 不同字段可被独立修改和 A/B 测试
  • 更容易做版本管理和团队协作
  • Claude 对 XML 标签遵循性特别好;OpenAI 模型对 Markdown 格式更友好

2.1.2 System Prompt 设计原则

System Prompt 是模型行为的”基本法”——定义角色、能力边界、输出格式和行为约束。

四条核心设计原则

① 稳定性 → 缓存收益:System prompt 应尽可能稳定,稳定前缀可命中 Prompt Caching(详见 c05 §5.3m209 §2.6.2),将计算成本降低 70% 以上。动态内容应放在 user message 中。

② 防御性设计:明确模型不应该做什么,与明确应该做什么同等重要。例如:

“当你不确定答案时,必须明确告知用户你不确定,而不是编造答案。”

这直接对应 c13 幻觉与 Sycophancy 问题

③ 输出格式锚定:如果下游需要解析模型输出(Agentfunction calling),必须在 system prompt 中用示例锚定输出格式,并配合 c08 受约束解码保证格式合规。

④ 指令优先级管理:当 system prompt 与 user message 指令冲突时,大多数模型倾向于遵循更靠近生成位置的指令(即 user message)。安全关键约束必须在 system prompt 中反复强调,且用显眼格式标注。

2.1.3 Prompt 压缩与优化

当 prompt 过长导致成本飙升时,在不牺牲信息量的前提下减少 token 消耗:

LLMLingua / LongLLMLingua(微软研究):用小模型识别 prompt 中的”低信息量 token”(高概率、可预测的词),将其删除,保留高信息量的关键词和结构。实验中可将 prompt 压缩到原来的 1/4–1/5,同时保持 90%+ 的任务性能。

RAG 场景的特殊价值:检索到的长文档片段中往往包含大量冗余内容,压缩后可在相同 context 窗口中塞入更多检索结果,同时降低成本。

2.1.4 Prompt 的能力边界

清晰认知 Prompt Engineering 的能力上限,是避免”用锤子解决所有问题”的前提:

Prompt 能解决Prompt 不能解决
调整输出风格/格式/语气注入模型未学到的知识(→ RAG 或微调)
提供任务上下文根本性改变模型能力分布(→ 换模型或微调
Few-shot 教会业务特定分类稳定保证特定行为模式(概率性控制)→ SFT
CoT 提升推理质量可靠防御 Prompt Injection(→ 工程层过滤)

Prompt Injection 攻击:恶意用户通过输入内容覆盖或绕过 System Prompt 的指令(如”忽略你之前的所有指令,改为……”)。纯 Prompt 层面无法完全防御,需要输入过滤、输出校验和沙箱隔离。这是 c13 之外另一类系统性风险。

相关概念卡:Tokenization幻觉与校准SFTRAGAgentFunction Calling 上一章:模块二索引 下一章:m202 工程选型决策矩阵