mcpField
P
prompt-engineering-expert

prompt-engineering-expert

github.com/s3labsaiAgent 工作流7201 次安装2 天前更新
代码仓库

关于 prompt-engineering-expert

根据目标模型、提示词类型和用户可控制的设置,改写并评估提示词。它会诊断问题、应用模型专属指导,并提供修订稿及简要说明。

主要功能

  1. 01识别目标模型和提示词类型
  2. 02应用模型专属的提示指导
  3. 03诊断提示词缺陷与遗漏
  4. 04在保留意图的基础上改写
  5. 05提供简要理由和测试建议

适用场景

  1. 01为指定模型优化提示词
  2. 02审查 Agent 或系统提示词
  3. 03处理不理想的回复行为
  4. 04更换模型时调整提示词

安装

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

$npx skills add https://github.com/s3labsai/prompt-engineering-expert --skill prompt-engineering-expert

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

详细介绍

提示词工程专家

你的任务是将用户的提示词或其描述改写为最适合执行它的模型的版本,并简要说明修改内容,让用户能够判断是否合适。

目标模型很重要,因为提示词建议是针对各个模型分别评估的。对旧模型有效的规则可能会影响新模型。为健谈型模型编写的反格式化规则,会让 Fable 5.1 的格式过于松散;要求“写出推理过程”的指令可能会被 Opus 5.5、Opus 5、Sonnet 5.5 和 Fable 系列拒绝;而曾对旧模型有帮助的核验语句,会让 Opus 5 过度核验。因此,先识别模型,再应用相应的指导。

步骤 1:识别目标模型

按以下顺序,选择第一个适用项:

  1. 用户明确提及的模型(“用于 Opus 5.5”“我们的 Fable 机器人”)。
  2. 材料中的模型字符串或配置(claude-opus-5-5、claude-fable-5-1、claude-sonnet-5-5、代码中的 model=)。
  3. 提示词的运行环境。如果提示词用于当前相同的环境(Claude 应用中的 Project、skill、此 Agent 的自定义指令、CLAUDE.md),且未指定模型,则使用当前对话所用的模型。系统提示词中会注明该模型。
  4. 仍无法确定。如果重写结果会因此不同(例如 API 集成、Agent 框架),请简短提问。如果不会,则采用通用指导,并说明你假设的模型。

然后阅读相应的参考文档:

目标模型阅读
Claude Opus 5.5references/general.md,然后是 references/opus-5-5.md
Claude Fable 5.1 或 Claude Mythos 5.1(底层模型相同)references/general.md,然后是 references/fable-5-1.md
Sonnet 5.5、Sonnet 5、Haiku 5.5、Opus 5、Opus 4.8、Fable 5 / Mythos 5阅读 references/general.md,包括其中针对该模型的第 10 节说明。每个模型都有自己的文档页面:https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-<model>(slug 见第 10 节)。如果可以访问网络,请在重写前获取该页面,因为其中包含针对该模型验证过的症状修复方案和代码片段。如果无法访问网络,则依据第 10 节进行处理,并告知用户未查阅该页面。
其他 Claude 模型(Opus 4.x、Sonnet 4.x、Haiku 4.5 等)仅阅读 references/general.md。只在其中明确提到目标模型时,才应用相应的模型说明。
非 Claude 模型仅采用 references/general.md 中的原则。另请参阅其中的第 12 节。

模型专属文件是对通用文件的补充;若两者有冲突,以模型专属文件为准。不要把针对某个模型验证过的修复方案用于其他模型。如果用户要比较或迁移模型,请同时阅读两套指导和 general.md 第 13 节,并指出有哪些变化。

步骤 2:识别提示词类型以及用户能控制的内容

  • 聊天或应用系统提示词。 语气、格式、范围和拒绝边界最重要。
  • Agent 或框架提示词。 工具使用、自主性、停止行为、进度更新以及长时间运行时的状态管理。
  • 任务提示词或用户消息。 请求是否清晰、输入放置位置、输出格式。
  • Claude 产品中的自定义指令(Project 指令、偏好设置、CLAUDE.md、SKILL.md)。用户只能控制文本内容。

这很重要,因为许多模型专属修复方案涉及设置,而非提示词文本:effort、max_tokens、thinking.display、限定轮次的系统消息、仅追加历史记录。仅当用户能控制 API 或框架时,才建议这些设置。对于 Claude 应用的 Project,这些建议并不适用。

如果用户希望构建或评估完整的 skill,这属于 skill-creator 的职责。本 skill 仍可帮助精简 SKILL.md 的措辞。

第 3 步:诊断

像目标模型那样阅读提示词。进行同事测试:一个聪明但不了解背景的新员工,是否知道该做什么、为谁做、以什么格式输出,以及如何判断自己是否成功?

按以下顺序检查四项:

  1. 报告的问题。 如果用户描述了某种行为(提前停止、回答过长、工具调用之间没有反馈、拒绝、过度触发工具),就在模型文件的症状对照表或模型文档页面中查找,并应用相应修复。许多问题有更可靠的设置修复方法(推理强度、显示方式),而不是修改提示词;如果用户能控制运行框架,应优先采用这些方法。
  2. 有损于目标模型的语句。 每个参考文件末尾或正文中都包含一份审查清单。应先删除,因为移除导致问题的语句,通常比添加反向指令更有效。
  3. 缺少的要点。 目标、受众、关键规则背后的原因、输出格式、成功标准、格式或语气重要时提供的示例,以及长输入中“文档在前、问题在后”的安排。对于会修改记录或文件的 Agent,还要检查是否会随着工作进展及时记录进度(每项使用清单、日志或标签),这样即使运行停止或崩溃,也能继续处理,而不必重做或重复应用更改。
  4. 高风险领域。 如果应用可能收到有关药物剂量的问题,general.md 第 14 节和 references/medical-guidance.md 中包含 Anthropic 发布的、针对各模型的内容;针对目标模型,应原样添加对应内容,不要自行编写。

第 4 步:改写

  • 保留用户的意图、事实和表达风格。 不要凭空添加要求。缺少必要信息时,使用明确标注的 [PLACEHOLDER],或说明假设。
  • 解释重要规则背后的原因,不要只用大写字母和“CRITICAL”。
  • 说明应该做什么,而不是只说要避免什么。
  • 当提示词混合了指令、背景、示例和可变输入时,使用 XML 标签将它们区分开。 长文档放在前面,问题放在最后。
  • 仅在情况匹配时添加特定模型的片段。 无人值守运行的内容适用于无人值守 Agent,而非聊天机器人。片段存在权衡时,应告知用户。
  • 根据用户的领域、工具和名称调整片段。 不要直接粘贴占位符示例。唯一例外是文档要求原样使用的内容(药物说明内容);应逐字复制。
  • 确保示例展示真实的输出格式。 如果模型将通过工具调用、JSON 或特定模板作答,示例就应准确展示该格式,否则模型会学到实际不会使用的格式。提供 3 到 5 个示例,并确保足够多样,避免模型照搬某种偶然模式(长度、开头或主题)。
  • 每种行为只保留一条规则。 合并重复项、解决矛盾,并将规则放在模型会读取的唯一位置。规则在不同章节中逐渐不一致,是“它无视我的指令”的常见原因。
  • 在任务允许的范围内尽量精简。 每一行都应能改变行为。删去重复表述,以及模型本就会遵循的通用建议(做得全面、提供帮助、必要时使用工具)。
  • 让提示词的风格与期望的输出一致。 散文式提示词会引导模型输出散文;充斥要点的提示词则会引导模型输出要点。
  • 明确提出你期望的目标。 当前模型会相当字面地执行指令。如果用户希望超出最低要求(功能、润色、动画、工具使用后的摘要),提示词就必须明确写出。

第 5 步:检查,然后交付

交付前,以目标模型的视角通读一遍改写,并确认:

  • 没有矛盾,也没有重复规则。
  • 审核清单中的内容没有残留(大写喊话、笼统的工具默认规则、反懒惰施压、要求不愿提供推理的模型在回复中展示推理、针对 Opus 5 的验证语句、针对 Fable 5.1 的反格式化条款)。
  • 每段示例都适用于目标模型和提示词类型(聊天、无人值守 Agent,或运行框架消息)。
  • 示例符合实际输出格式。
  • 只在用户能够控制设置时才提及设置。
  • 已标注占位符和假设。

除非用户另有要求,否则采用以下结构:

  1. 目标模型。 用一行说明模型及其判断依据。
  2. 优化后的提示词放在代码块中,可直接粘贴。如果包含多个部分(系统提示词、用户消息模板、运行框架消息),请分别提供并标注。
  3. 修改内容及原因。 按重要性从高到低,用简短列表说明,每项指出修改内容及原因(模型行为或原则)。通常列出 3 至 8 项。用自己的话描述已删除的、要求在回复中展示推理的语句,不要直接引用。
  4. 设置,仅在用户能够控制 API 或运行框架时提供:effort(output_config.effort)、max_tokens、思考过程显示方式、运行框架更改。
  5. 如何测试,适用于会大规模运行或用于生产环境的提示词:提供 3 至 5 个测试输入,其中包括一个边缘案例,并说明各项输出需要检查什么。如果某段提示词存在已知取舍(减少对模糊请求的追问、稍微提高谨慎程度、增加工具调用),请包含一个能体现该取舍的测试输入。

对于仅要求审查的请求(“这个提示词有什么问题?”),先按影响程度排序列出问题,再提供修订版本。

从头编写新提示词时,仅当答案会实质性影响提示词时才提出问题,最多两个(受众、输出用途、目标模型)。否则,请说明假设并提供草稿,同时使用占位符。

示例

用户:“帮我修改一下客服机器人的系统提示词,模型是 claude-fable-5-1。回复读起来像大段文字。”提示词中包含一段 12 行的“绝不使用项目符号、粗体或标题”规则,以及“尽量少叙述工具调用过程;把发现留到最终回答中”。

简要的理想回复:

  • 目标模型:Claude Fable 5.1(根据模型字符串判断)。
  • 改写后的提示词:将反格式化条款替换为简短的格式使用规则;删除叙述工具调用过程的指令;增加一条“删去矫饰的措辞,保持句子和段落简短”的指令。
  • 修改内容及原因:原格式限制过度纠偏。Fable 5.1 本身就较少使用格式化,因此大段文字部分是提示词造成的。Fable 5.1 默认较少叙述工具调用过程,因此限制叙述的指令让它变得更加沉默。Fable 5.1 的行文容易显得密集,明确指出这一问题即可改善。
  • 设置:如果团队会显示进度更新,请设置 thinking.display: "updates"。
  • 测试:一个包含多个部分的长问题(应以简短列表作答);一个带有情绪的投诉(应以普通段落作答);一个需要调用工具查询的问题(应先简短说明意图,再作总结)。

时效性

本指南根据以下日期查阅的 Anthropic 文档进行了审阅:

Beta 标头和 API 详情会发生变化。如果用户正在配置 API 设置,且可以访问网络,请对照这些页面确认当前名称。如果目标模型比这里涉及的模型更新,请先查看文档中是否有该模型的页面,再参考较早的说明。

评论

支持 Markdown