mcpField
P
prompt-engeneering

prompt-engeneering

github.com/codealive-aiAgent 工作流2269 次安装25 周前更新
代码仓库

关于 prompt-engeneering

一项提供提示词编写技巧、审查流程和参考资料的技能,适用于不同 LLM。内容涵盖结构化指令、输出约束、歧义处理、工具使用、安全性与评估。

主要功能

  1. 01用 XML 标签组织提示词
  2. 02约束输出格式与任务范围
  3. 03处理歧义与不确定性
  4. 04指导工具使用和 Agent 更新
  5. 05从八个维度审查提示词
  6. 06查阅提示工程技巧目录

适用场景

  1. 01设计多步骤任务的提示词
  2. 02检查提示词的安全性与清晰度
  3. 03规划结构化数据提取
  4. 04适配不同模型的提示词

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/codealive-ai/prompt-engineering-skill --skill prompt-engeneering

安装后在 Claude Code 中输入/prompt-engeneering确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
references/
claude-family-prompting.md
evaluation-redteaming.md
failure-taxonomy.md
gemini3-family-prompting.md
gpt5-family-prompting.md
gpt5-prompting-guide.md
mistakes-context.md
mistakes-debt.md
mistakes-hallucinations.md
mistakes-security.md
mistakes-structure.md
prompt-audit-checklist.md
prompting-introduction.md
prompting-risks.md
prompting-techniques.md

详细介绍

提示词工程

适用于任何大模型的通用技巧,帮助编写有效的提示词。

核心原则

1. 使用 XML 标签构建结构

使用 XML 标签创建清晰、可解析的提示词:

<context>Background information here</context>
<instructions>
1. First step
2. Second step
</instructions>
<examples>Sample inputs/outputs</examples>
<output_format>Expected structure</output_format>

优点:

  • 清晰度:区分上下文、指令和示例
  • 准确性:防止模型混淆各个部分
  • 灵活性:便于单独修改各个部分
  • 可解析性:便于提取结构化输出

最佳实践:

  • 全程使用一致的标签名称(使用 <instructions>,不要有时改用 <steps>)
  • 明确引用标签:“使用 <context> 标签中的数据……”
  • 使用嵌套标签表示层级:<examples><example id="1">...</example></examples>
  • 与其他技巧结合使用:用 <thinking> 表示思维链,用 <answer> 表示最终输出
2. 控制输出形式

明确指定长度、格式和结构方面的限制:

<output_spec>
- Default: 3-6 sentences or ≤5 bullets
- Simple yes/no questions: ≤2 sentences
- Complex multi-step tasks:
  - 1 short overview paragraph
  - ≤5 bullets: What changed, Where, Risks, Next steps, Open questions
- Use Markdown with headers, bullets, tables when helpful
- Avoid long narrative paragraphs; prefer compact structure
</output_spec>
3. 防止偏离范围

明确限制模型不应执行的操作:

<constraints>
- Implement EXACTLY and ONLY what is requested
- No extra features, components, or embellishments
- If ambiguous, choose the simplest valid interpretation
- Do NOT invent values, make assumptions, or add unrequested elements
</constraints>
4. 明确处理歧义

避免幻觉和过度自信:

<uncertainty_handling>
- If the question is ambiguous:
  - Ask 1-3 precise clarifying questions, OR
  - Present 2-3 plausible interpretations with labeled assumptions
- When facts may have changed: answer in general terms, state uncertainty
- Never fabricate exact figures or references when uncertain
- Prefer "Based on the provided context..." over absolute claims
</uncertainty_handling>
5. 为长上下文提供依据

对于超过 10k 个 token 的输入,添加重新锚定上下文的指令:

<long_context_handling>
- First, produce a short internal outline of key sections relevant to the request
- Re-state user constraints explicitly before answering
- Anchor claims to sections ("In the 'Data Retention' section...")
- Quote or paraphrase fine details (dates, thresholds, clauses)
</long_context_handling>

Agent 提示词

工具使用规则
<tool_usage>
- Prefer tools over internal knowledge for:
  - Fresh or user-specific data (tickets, orders, configs)
  - Specific IDs, URLs, or document references
- Parallelize independent reads when possible
- After write operations, restate: what changed, where, any validation performed
</tool_usage>
用户进度更新
<user_updates>
- Send brief updates (1-2 sentences) only when:
  - Starting a new major phase
  - Discovering something that changes the plan
- Avoid narrating routine operations
- Each update must include a concrete outcome ("Found X", "Updated Y")
- Do not expand scope beyond what was asked
</user_updates>
高风险输出的自检
<self_check>
Before finalizing answers in sensitive contexts (legal, financial, safety):
- Re-scan for unstated assumptions
- Check for ungrounded numbers or claims
- Soften overly strong language ("always", "guaranteed")
- Explicitly state assumptions
</self_check>

结构化提取

对于数据提取任务,务必提供架构:

<extraction_spec>
Extract data into this exact schema (no extra fields):
{
  "field_name": "string",
  "optional_field": "string | null",
  "numeric_field": "number | null"
}
- If a field is not present in source, set to null (don't guess)
- Re-scan source for missed fields before returning
</extraction_spec>

网络研究提示词

<research_guidelines>
- Browse the web for: time-sensitive topics, recommendations, navigational queries, ambiguous terms
- Include citations after paragraphs with web-derived claims
- Use multiple sources for key claims; prioritize primary sources
- Research until additional searching won't materially change the answer
- Structure output with Markdown: headers, bullets, tables for comparisons
</research_guidelines>

示例:修改前后

不使用结构:

You're a financial analyst. Generate a Q2 report for investors. Include Revenue, Margins, Cash Flow. Use this data: {{DATA}}. Make it professional and concise.

使用结构:

You're a financial analyst at AcmeCorp generating a Q2 report for investors.

<context>
AcmeCorp is a B2B SaaS company. Investors value transparency and actionable insights.
</context>

<data>
{{DATA}}
</data>

<instructions>
1. Include sections: Revenue Growth, Profit Margins, Cash Flow
2. Highlight strengths and areas for improvement
3. Use concise, professional tone
</instructions>

<output_format>
- Use bullet points with metrics and YoY changes
- Include "Action:" items for areas needing improvement
- End with 2-3 bullet Outlook section
</output_format>

提示词迁移检查清单

在不同模型或版本之间调整提示词时:

  1. 更换模型,保持提示词不变 — 隔离变量
  2. 固定推理/思考深度,使其匹配先前模型的特征
  3. 运行评估 — 如果结果良好,即可发布
  4. 如果出现回归,调整提示词 — 调整详细程度/格式/范围限制
  5. 每次小幅修改后重新评估 — 每次只改一处

快速参考

技巧标签模式使用场景
区分各部分<context>、<instructions>、<data>任何复杂提示词
控制长度使用 <output_spec> 指定字数/项目符号数量限制防止冗长
防止偏离范围使用 <constraints> 明确写出“不要”功能蔓延
处理不确定性<uncertainty_handling>事实查询
思维链<thinking>、<answer>推理任务
提取使用 JSON 结构的 <schema>数据解析
研究<research_guidelines>支持网络访问的 Agent
自检<self_check>高风险领域
工具使用<tool_usage_rules>Agent 系统
控制主动性<persistence>、<context_gathering>Agent 自主性
角色设定<role> + 行为限制语气与风格

提示词技术目录

提示词技术综合目录。完整详情、示例和学术参考资料请参阅 references/prompting-techniques.md。

技术使用场景
零样本提示无需示例即可直接执行任务;分类、翻译、摘要
少样本提示通过示例进行上下文学习;格式控制、标签校准、风格匹配
思维链(CoT)逐步推理;算术、逻辑、常识推理任务
元提示将 LLM 用作协调者,委派任务给专业提示词;复杂的多领域任务
自一致性对多个 CoT 路径采样,选择占多数的答案;提高数学和推理任务的准确性
生成知识先生成相关知识,再作答;常识和事实性问答
提示链将复杂任务拆分为按顺序执行的子任务;文档分析、多步骤工作流
思维树(ToT)通过前瞻和回溯探索多个推理分支;规划、谜题
RAG生成前检索外部文档;知识密集型任务、最新数据
ART(自动推理 + 工具)使用 CoT 自动选择并协调工具;需要计算、搜索、API 的任务
APE(自动提示工程师)由 LLM 生成并评分候选提示词;大规模优化提示词
主动提示(Active-Prompt)识别不确定的示例,有选择地进行标注以用于 CoT;自适应少样本提示
定向刺激添加提示/关键词来引导生成方向;摘要、对话
PAL(程序辅助 LM)通过生成代码而非文本进行推理;数学、数据处理、符号任务
ReAct交替进行推理过程与工具操作;搜索、问答、决策型 Agent
反思(Reflexion)Agent 根据语言反馈对失败进行自我反思;迭代改进、调试
多模态 CoT两阶段流程:先生成推理依据,再结合文本和图像作答;视觉推理任务
图提示基于结构化图的提示词;节点分类、关系抽取、图任务
提示词基础

LLM 设置、提示词要素、格式和实用示例请参阅 references/prompting-introduction.md。内容包括:

  • LLM 设置 — temperature、top-p、最大长度、停止序列、频率/存在惩罚
  • 提示词要素 — 指令、上下文、输入数据、输出标识
  • 设计建议 — 从简单开始、明确具体、避免含糊、说明要做什么(而不是不要做什么)
  • 任务示例 — 摘要、抽取、问答、分类、对话、代码生成、推理
风险与误用

对抗性攻击、事实性问题和偏差缓解请参阅 references/prompting-risks.md。内容包括:

  • 对抗性提示 — 提示注入、提示泄露、越狱(DAN、Waluigi 效应)、防御策略
  • 事实性 — 基于真实情况、校准置信度、承认不知情的模式
  • 偏差 — 示例分布偏斜、示例顺序效应、均衡的少样本设计

提示词审计 / 评审

如果需要审计、评审或改进提示词,请遵循以下工作流。完整检查清单及各项检查的参考资料请参阅 prompt-audit-checklist.md。

工作流
  1. 完整阅读提示词 — 确定其目的、目标模型和部署场景(交互式聊天、Agent 系统、批处理流水线、RAG 增强)
  2. 检查 8 个维度 — 逐项检查,并按严重程度记录问题(严重 / 警告 / 建议):
#维度检查内容
1清晰度与具体性任务定义、成功标准、受众、输出格式、相互冲突的约束
2结构与格式章节划分(XML 标签)、提示词异味(单体式、层次混杂、负面偏向)
3安全与防护控制与数据分离、提示词中的机密信息、抵御注入的能力、工具权限
4幻觉与事实准确性角色设定、依据、无来源引用、不确定性的处理
5上下文管理信息位置(是否埋在中间)、上下文大小、RAG 文档数量、重新提供依据
6可维护性与技术债务硬编码值、重新生成的逻辑、模型锁定、可测试性
7模型特定适配特定模型的参数和注意事项(参见下方的模型特定指南)
8评估准备情况评估标准、对抗性测试用例、模式强制、监控
  1. 生成报告 — 问题表(维度、检查项、严重程度、问题、修复方案)+ 重写后的提示词或针对性修复建议。使用检查清单参考中的报告模板。
  2. 针对每个问题,引用相关参考文件,方便用户深入了解。
快速决策:优先检查哪些维度
  • 面向用户的聊天机器人 → 优先检查安全(#3)、幻觉(#4)、清晰度(#1)
  • 带工具的 Agent 系统 → 优先检查安全(#3)、上下文(#5)、可维护性(#6)
  • 批处理 / 流水线 → 优先检查结构(#2)、评估(#8)、可维护性(#6)
  • RAG 增强 → 优先检查上下文(#5)、安全(#3)、幻觉(#4)

常见错误与反模式

三个互补层面 — 根据需求选择:

按类别深入分析 — 根本原因、作用机制、预防检查清单(摘自《指令架构》,2026 年):

错误类别主要问题参考资料
幻觉与逻辑模糊性引发的虚构、自动化偏见、提示词过载、验证任务中的逻辑失误、缺少角色设定mistakes-hallucinations.md
结构脆弱性对格式敏感(差异最高达 76 个百分点)、可复现性危机、提示词异味目录(6 种反模式)、审慎阶梯mistakes-structure.md
上下文退化“中间遗失”导致的 U 形注意力、RAG 过度检索、简单粗暴的数据加载、向上下文工程的转变mistakes-context.md
提示词债务再生成代码的令牌成本、债务分类(提示词 / 超参数 / 框架 / 成本)、多 Agent 解决方案、自动修复mistakes-debt.md
安全直接 / 间接注入、越狱、系统提示词泄露(OWASP LLM07:2025)、RAG 投毒、多模态注入、对抗性后缀mistakes-security.md

快速参考 — 包含 MRP、风险评分、案例研究和行动项的 18 类问题分类:failure-taxonomy.md。可从这里了解概况,或确定应优先处理哪些类别。涵盖:控制平面与数据平面模型、启发式风险评分、真实事件(EchoLeak CVE-2025-32711、Mata 诉 Avianca 案、Samsung 影子 AI)。

如何衡量与测试 — 评估指标、CI 门禁、红队测试、工具:evaluation-redteaming.md。涵盖:TruthfulQA、FActScore、SelfCheckGPT、PromptBench、AILuminate、LLM 评审的陷阱、护栏库、尚待研究的问题。

模型专属指南

每个模型系列都有其独特的参数、注意事项和模式。请查阅目标模型的参考指南:

  • Claude Family — Opus/Sonnet 4.6:自适应思考(effort 参数)、预填充弃用(改用 Structured Outputs)、修复工具过度触发、提示词缓存、引用、上下文工程、Agentic 子 Agent 模式、视觉能力、从 4.5 迁移
  • GPT-5 Family — GPT-5/5.1/5.2:reasoning_effort 参数(不同版本的默认值各异)、verbosity API 控制、命名工具(apply_patch)、Agentic 主动性模板、压缩 API、对指令冲突的敏感性、迁移路径
  • Gemini 3 Family — Gemini 2.5/3/3.1:temperature 必须设为 1.0、thinking_budget 与 thinking_level 的区别、约束的位置(提示词末尾)、角色优先级、函数调用、结构化输出、多模态、图像生成
  • GPT-5.2 Specifics — 压缩 API 代码示例、网络研究 Agent 提示词、完整的 XML 规范块

评论

支持 Markdown