SuperAPI AI 工具集

prompt-engineering-patterns

智能体与模型

查看项目

更新于 10-15 15:28

技能介绍

用途

Prompt Engineering Patterns 是一套用于设计和优化大语言模型(LLM)提示的高级技能,目标是提升 LLM 的性能、可靠性与可控性。它适合需要为生产级 LLM 应用构建提示、优化提示一致性与效果、实现结构化推理、构建少样本学习系统、创建可复用模板、调试不稳定输出,以及为专用 AI 助手编写系统提示的场景。

主要能力

  1. 少样本学习(Few-Shot Learning):示例选择策略(语义相似度、多样性采样)、在示例数量与上下文窗口限制之间取得平衡、用输入-输出对构建有效示范、从知识库动态检索示例、通过策略性示例选择处理边缘情况。

  2. 思维链提示(Chain-of-Thought Prompting):逐步推理引导、零样本 CoT(“Let's think step by step”)、带推理轨迹的少样本 CoT、自洽性技术(采样多条推理路径)、验证与校验步骤。

  3. 提示优化(Prompt Optimization):迭代式改进工作流、提示变体的 A/B 测试、衡量提示性能指标(准确率、一致性、延迟)、在保持质量的同时减少令牌用量、处理边缘情况与失败模式。

  4. 模板系统(Template Systems):变量插值与格式化、条件提示段落、多轮对话模板、基于角色的提示组合、模块化提示组件。

  5. 系统提示设计(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)、令牌用量(每请求平均令牌数)、成功率(有效输出百分比)、用户满意度(评分与反馈)。

限制

仅当任务明确匹配上述范围时使用本技能。不要将输出视为环境特定验证、测试或专家评审的替代品。如果缺少必需输入、权限、安全边界或成功标准,应停止并请求澄清。