用途
Prompt Engineering Patterns 是一套用于设计和优化大语言模型(LLM)提示的高级技能,目标是提升 LLM 的性能、可靠性与可控性。它适合需要为生产级 LLM 应用构建提示、优化提示一致性与效果、实现结构化推理、构建少样本学习系统、创建可复用模板、调试不稳定输出,以及为专用 AI 助手编写系统提示的场景。
主要能力
-
少样本学习(Few-Shot Learning):示例选择策略(语义相似度、多样性采样)、在示例数量与上下文窗口限制之间取得平衡、用输入-输出对构建有效示范、从知识库动态检索示例、通过策略性示例选择处理边缘情况。
-
思维链提示(Chain-of-Thought Prompting):逐步推理引导、零样本 CoT(“Let's think step by step”)、带推理轨迹的少样本 CoT、自洽性技术(采样多条推理路径)、验证与校验步骤。
-
提示优化(Prompt Optimization):迭代式改进工作流、提示变体的 A/B 测试、衡量提示性能指标(准确率、一致性、延迟)、在保持质量的同时减少令牌用量、处理边缘情况与失败模式。
-
模板系统(Template Systems):变量插值与格式化、条件提示段落、多轮对话模板、基于角色的提示组合、模块化提示组件。
-
系统提示设计(System Prompt Design):设定模型行为与约束、定义输出格式与结构、确立角色与专业领域、安全准则与内容政策、上下文设定与背景信息。
使用方式
技能提供快速开始示例,使用 PromptTemplate 与 FewShotSelector 构建结构化提示:
from prompt_optimizer import PromptTemplate, FewShotSelector
# Define a structured prompt template
template = PromptTemplate(
system="You are an expert SQL developer. Generate efficient, secure SQL queries.",
instruction="Convert the following natural language query to SQL:\n{query}",
few_shot_examples=True,
output_format="SQL code block with explanatory comments"
)
# Configure few-shot learning
selector = FewShotSelector(
examples_db="sql_examples.jsonl",
selection_strategy="semantic_similarity",
max_examples=3
)
# Generate optimized prompt
prompt = template.render(
query="Find all users who registered in the last 30 days",
examples=selector.select(query="user registration date filter")
)
关键模式包括:
-
渐进式披露(Progressive Disclosure):从简单提示开始,仅在需要时增加复杂度。Level 1 直接指令(“Summarize this article”);Level 2 增加约束(“Summarize this article in 3 bullet points, focusing on key findings”);Level 3 增加推理(“Read this article, identify the main findings, then summarize in 3 bullet points”);Level 4 增加示例(包含 2-3 个带输入-输出对的示例摘要)。
-
指令层级(Instruction Hierarchy):[System Context] → [Task Instruction] → [Examples] → [Input Data] → [Output Format]。
-
错误恢复(Error Recovery):构建能优雅处理失败的提示,包括回退指令、请求置信度分数、在不确定时请求替代解释、指定如何标示缺失信息。
与 RAG 系统集成示例:
prompt = f"""Given the following context:
{retrieved_context}
{few_shot_examples}
Question: {user_question}
Provide a detailed answer based solely on the context above. If the context doesn't contain enough information, explicitly state what's missing."""
与验证集成示例:
prompt = f"""{main_task_prompt}
After generating your response, verify it meets these criteria:
1. Answers the question directly
2. Uses only information from provided context
3. Cites specific sources
4. Acknowledges any uncertainty
If verification fails, revise your response."""
适用场景
- 为生产级 LLM 应用设计复杂提示
- 优化提示性能与一致性
- 实现结构化推理模式(思维链、思维树)
- 构建带动态示例选择的少样本学习系统
- 创建带变量插值的可复用提示模板
- 调试与改进产生不一致输出的提示
- 为专用 AI 助手实现系统提示
最佳实践与常见陷阱
最佳实践:具体明确(模糊提示会产生不一致结果);展示而非描述(示例比描述更有效);广泛测试(在多样且有代表性的输入上评估);快速迭代(小改动可能带来大影响);监控性能(在生产中跟踪指标);版本控制(将提示视为代码并妥善版本化);记录意图(解释提示为何如此组织)。
常见陷阱:过度工程(在尝试简单提示前就使用复杂提示);示例污染(使用与目标任务不匹配的示例);上下文溢出(过多示例超出令牌限制);指令含糊(留下多种解释空间);忽视边缘情况(未在异常或边界输入上测试)。
性能优化
令牌效率:删除冗余词句;首次定义后一致使用缩写;合并相似指令;将稳定内容移至系统提示。
延迟降低:在不牺牲质量的前提下最小化提示长度;对长文本输出使用流式;缓存常见提示前缀;尽可能批量处理相似请求。
资源与成功指标
资源包括:references/few-shot-learning.md(示例选择与构建深入讲解)、references/chain-of-thought.md(高级推理引导技术)、references/prompt-optimization.md(系统化改进工作流)、references/prompt-templates.md(可复用模板模式)、references/system-prompts.md(系统级提示设计)、assets/prompt-template-library.md(经过实战检验的提示模板)、assets/few-shot-examples.json(精选示例数据集)、scripts/optimize-prompt.py(自动化提示优化工具)。
成功指标(KPI):准确率(输出正确性)、一致性(相似输入的可复现性)、延迟(响应时间 P50、P95、P99)、令牌用量(每请求平均令牌数)、成功率(有效输出百分比)、用户满意度(评分与反馈)。
限制
仅当任务明确匹配上述范围时使用本技能。不要将输出视为环境特定验证、测试或专家评审的替代品。如果缺少必需输入、权限、安全边界或成功标准,应停止并请求澄清。