提示词工程 (Prompt Engineering)
提示词工程 (Prompt Engineering)
提示词工程指在不更新模型权重的情况下,如何与大模型交互、引导其行为从而获取所需结果的方法。它是 Agent 工程四层演进(Prompt → Context → Harness → Loop)的第一层。
提问核心技巧
- 详细描述:说清背景、目标、约束条件
- 角色扮演:让模型扮演特定角色(“你是一个资深 Go 后端工程师”)
- 使用分隔符:用
###、---、XML 标签等区分输入的不同部分 - 明确步骤:对复杂任务,拆解为 1→2→3 的顺序步骤
- 提供示例:给出输入→输出的范文(Few-shot)
优化策略
模型层面
| 策略 | 说明 |
|---|---|
| Zero-shot | 零样本,依赖模型预训练阶段学到的属性/语义关联去迁移到未知的新类别 |
| Few-shot | 少样本,提供少量示例让模型快速泛化、对齐输出格式 |
提示词层面
| 策略 | 说明 |
|---|---|
| Zero-shot Prompt | 仅用自然语言描述任务,依赖模型预训练知识直接回答 |
| Few-shot Prompt | 在 prompt 中给模型 2~5 个示例,引导模型对齐示例的输出格式与风格 |
| Chain-of-Thought (CoT) | 在 prompt 中加入 “Let’s think step by step”,诱导模型显式输出推理链 |
| 结构化输出 | 要求模型输出 JSON/XML/Markdown 等可解析格式,便于下游程序处理 |
使用 JSON 数据格式
要求模型以 JSON 格式输出,可显著提高下游解析的健壮性:
请以 JSON 格式返回结果:
{
"summary": "一句话总结",
"key_points": ["要点1", "要点2"],
"action_items": [{"task": "...", "priority": "high"}]
}常见陷阱
🚨 JSON 输出的可靠性因模型而异。对于关键任务,应做格式校验 + 重试机制。