关于 prompt-engineering
prompt-engineering 是为 LLM 和自主 Agent 设计与改进提示词的技能,涵盖推理模式、可复用模板、评估工作流、工具调用和多模态提示。
主要功能
- 01适用于不同任务的推理模式
- 02可复用提示词模板
- 03提示词测试与优化
- 04Agent 循环与工具调用提示
- 05多模态提示设计
适用场景
- 01设计结构化推理提示词
- 02构建使用工具的 Agent 工作流
- 03用指标比较提示词变体
- 04创建图文任务提示词
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ oakoss/ agent-skills --skill prompt-engineering安装后在 Claude Code 中输入/prompt-engineering确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/chain-of-thought.mdextended-thinking.mdfew-shot-learning.mdmultimodal-prompting.mdprompt-optimization.mdprompt-templates.mdreact-patterns.mdreasoning-model-optimization.mdstructured-thinking.mdsystem-prompts.mdtree-of-thoughts.md详细介绍
提示词工程
面向大模型和自主 Agent 的高级提示词设计。涵盖推理模式、模板系统、优化工作流、Agent 编排、扩展思考和工具使用提示。
适用场景:设计需要结构化推理的提示词、构建 Agent 循环、优化大模型输出质量、创建可复用的提示词模板、为复杂任务配置扩展思考,或设计包含图像和文本的多模态提示词。
不适用场景:简单的事实查询、直接查找,或适合开放式生成的创意写作。
核心原则
- 明确胜于含蓄 -- 现代模型(Claude 4.x、GPT-4.1)会严格按照字面意思遵循指令。应明确说明期望的输出、格式和行为,而不是依赖模型推断意图。
- 目标胜于指令 -- 对于推理模型(OpenAI o-series、启用扩展思考的 Claude),应说明目标,而不是规定逐步执行的方法。这些模型能够原生地进行规划。
- 结构传达意图 -- 使用 XML 标签、清晰的分隔符和一致的格式来表达提示词结构。经过结构化提示词训练的模型,比起解析纯文本,能更可靠地解析结构化提示词。
- 一个好示例胜过许多规则 -- 格式一致的少样本示例,比冗长的指令更能有效地锚定模型行为。
- 反馈循环内置其中 -- 设计提示词,让模型在定稿前验证、评估或为自己的输出评分。
- 令牌经济很重要 -- 每增加一个令牌都会增加延迟和成本。压缩上下文、删除填充内容,并将关键信息前置。
模型特定注意事项
Claude 4.x 模型能非常精确地遵循指令。它们会按字面意思理解提示词,并严格执行所要求的内容——不多不少。使用 XML 标签来组织提示词部分(<rules>、<context>、<output_format>)。以正向方式表述指令(描述要做什么,而不是要避免什么)。提供指令背后的上下文或动机,帮助 Claude 举一反三。扩展思考和交错思考提供了原生推理能力。
OpenAI o-series 模型(o3、o4-mini)会在回答前使用内部推理令牌。请使用开发者消息,而非系统消息。将函数描述写得详尽,使其成为接口约定。不要添加明确的推理提示——这些模型能够原生推理,额外的规划提示可能会降低性能。在多轮对话中传回已持久化的推理项。
GPT-4.1 和标准模型能从明确的分步指令、少样本示例和结构化输出模式中受益。这些模型没有原生推理循环,因此 CoT 提示和结构化思考协议能带来显著价值。
多模态模型(GPT-4o、支持视觉的 Claude、Gemini)可同时接收图像和文本。应说明每张图像代表什么,使用清晰的动作动词,并裁剪图像以突出相关区域。明确标注多张图像,并说明它们之间的关系。
快速参考
| 模式 | API / 技术 | 要点 |
|---|---|---|
| 零样本 CoT | "Let's think step by step" 触发词 | 无需示例即可引出推理 |
| 少样本 CoT | 明确的推理链示例 | 一个优质示例胜过许多规则 |
| 自一致性 | 多条路径 + 多数投票 | 提升复杂任务的准确性 |
| 思维树(Tree-of-Thoughts) | 生成 3 条或更多策略,淘汰最弱的策略 | 并行探索并剪枝;成本高 |
| ReAct 循环 | 思考-行动-观察循环 | Agent 将推理与行动结合起来 |
| 系统提示词 | 角色 + 专业知识 + 指南 + 格式 | 所有大模型行为的基础 |
| 提示词模板 | 使用变量槽位进行模块化组合 | 可复用、经过验证且可缓存 |
| A/B 测试 | 对提示词变体进行统计比较 | 隔离变量,衡量显著性 |
| 扩展思考 | 由预算控制的深度推理(Claude) | 让模型在回答前先思考 |
| 交错思考 | 在工具调用之间思考(Claude 4) | 在每次获得工具结果后进行推理 |
| 思考工具 | 用于结构化推理空间的空操作工具 | 为 Agent 提供在回合中途进行推理的空间 |
| 推理模型 | 针对 o3/o4-mini 的目标导向提示 | 让模型自行规划推理过程 |
| 结构化思考 | 理解-分析-执行协议 | 强制在行动前进行验证 |
| XML 结构化 | 用标签划分提示词的不同部分 | 模型能够可靠地解析结构化提示词 |
| 多模态提示 | 为视觉模型提供文本 + 图像上下文 | 提供空间上下文和明确的动作动词 |
| 置信度评分 | 模型针对每项声明自行报告确定性 | 量化输出的可靠性 |
| Token 优化 | 压缩上下文,删除填充词 | 降低延迟和成本 |
常见错误
| 错误 | 正确做法 |
|---|---|
| 在单个提示词中塞入过多指令 | 使用优先级明确的分层规则 |
| 强迫推理模型严格按步骤推理 | 使用基于目标的提示词;推理模型会原生规划 |
| 将推理模型的最大输出 token 数设得过低 | 为内部思维链分配足够的 token |
| 为复杂任务使用静态示例 | 根据语义相似度动态选择示例 |
| 少样本示例的格式不一致 | 所有示例必须遵循一致的输入输出结构 |
| 手动解析非结构化的大模型输出 | 使用 JSON 模式或结构化输出架构 |
| 忽略 token 预算分配 | 为系统提示词、示例、输入和回复预留 token |
| 优化前跳过基线测量 | 先建立指标,再一次只更改一个变量 |
| 在推理模型上使用 CoT 提示词 | 多余;这些模型无需显式触发即可原生推理 |
| 告诉模型不要做什么,而不是应该做什么 | 以正向方式表述指令:描述期望的行为 |
| 将思考块作为用户文本传回(Claude) | 仅在助手消息中原样传递思考块 |
| 反复提示推理模型“多规划一些” | 额外的规划提示词可能会降低推理模型的性能 |
提示词工程工作流
- 定义目标 -- 说明提示词应达成什么目标,以及如何衡量成功
- 选择合适的模式 -- 根据任务复杂度,为任务选择 CoT、ReAct、ToT 或简单提示
- 选择模型层级 -- 根据任务难度,将任务分配给轻量级、标准或推理模型
- 编写基线提示词 -- 从简单开始;复杂场景使用带 XML 标签的系统提示词结构
- 添加示例 -- 如果任务需要,添加 1-3 个格式一致的少样本示例
- 测试和衡量 -- 在有代表性的输入上建立基线指标(准确率、延迟、token 用量)
- 分析失败情况 -- 对错误进行分类(格式、事实、逻辑、不完整),并处理影响最大的错误
- 每次迭代一个变量 -- 每次只更改一个要素,以确定哪些改动能提升性能
- 版本管理并部署 -- 将提示词版本与性能数据一同跟踪,以便回滚
委派
- 探索提示词变体并比较模型回复:使用
Exploreagent 测试不同输入下的提示词策略 - 构建使用工具的多步骤 Agent 工作流:使用
Taskagent 实现并验证 ReAct 循环和自主链 - 为复杂系统设计分层提示词架构:使用
Planagent 构建包含验证循环的提示词系统
如果可用
expert-instruction技能,请将系统提示词设计和 Agent 角色设定委派给它。
参考资料
- 思维链 -- 分步推理、自洽性、由简到繁分解
- 少样本学习 -- 示例选择策略、基于令牌的截断、边缘情况
- 提示词模板 -- 模板架构、模块化组合、验证、缓存
- 提示词优化 -- A/B 测试、失败分析、指标、版本控制
- 系统提示词 -- 角色定义、约束规范、动态适配
- 推理模型优化 -- 针对 o3/o4-mini 的目标驱动提示词、扩展思考配置
- 思维树 -- 并行分支探索、评估、综合
- ReAct 模式 -- 思考-行动-观察循环、工具发现、错误恢复
- 结构化思考 -- 对抗式批评者协议、置信度评分、元数据标记
- 扩展思考与工具使用 -- 预算配置、交错思考、思考工具模式
- 多模态提示 -- 视觉模型技术、图像上下文、跨模态对齐