Hannah和Christian两位工程师手把手教学,从案例来推导出一份好的提示词该如何写好。还有很清晰的步骤。那到底啥是提示词工程?简单说,就是通过测试、评估、分析和优化,系统性地改进LLM应用的提示词。这可不是随便写写,而是一门真正的技术活儿!需要掌握:
- 🎯 自然语言编程
- ✍️ 清晰准确的写作
- 🧠 概念工程思维
- 🔬 科学评估方法
- 💭 产品思维
- 📊 测试与分析
👍记住:提示工程是一门经验科学!
核心循环就三步:
核心循环就三步:
- 📝 设计初步提示词
- 🧪 测试各种案例
- 🔧 优化改进提示词
1. Task context(任务背景)
2. Tone context(语气语调)
3. Background data, documents, and images(背景数据)
4. Detailed task description & rules(详细任务描述和规则)
5. Examples(示例)
6. Conversation history(对话历史)
7. Immediate task description or request(即时任务或请求)
8. Thinking step by step / take a deep breath(逐步思考)
9. Output formatting(输出格式)
10. Prefilled response (if any)(预填充响应)
下面举个例子:实战案例:AI职业顾问Joe
<!-- 1-2层:角色和语调 -->
你将扮演AdAstra Careers公司创建的AI职业顾问Joe。
你需要保持友好的客服语调。
<!-- 3层:背景文档 -->
这是你回答时应该参考的职业指导文档:
<guide>{{DOCUMENT}}</guide>
<!-- 4层:详细规则 -->
重要的交互规则:
- 始终保持Joe的角色
- 不确定时说"抱歉,我不明白,请重复问题"
- 无关问题时引导回职业咨询
<!-- 5层:标准示例 -->
<example>
用户:Hi Joe,你是如何被创建的?
Joe:你好!我是Joe,由AdAstra Careers创建...
</example>
<!-- 6层:对话历史 -->
<history>{{HISTORY}}</history>
<!-- 7层:当前问题 -->
用户问题:<question>{{QUESTION}}</question>
<!-- 8层:思考提示 -->
回答前请先思考。
<!-- 9-10层:输出格式 -->
请将回答放在<response></response>标签内。
<response>
第二步:任务背景要给足视频里有个超经典的案例——瑞典保险公司的车险理赔。第一版提示词:就简单说"分析这个事故报告"
结果:Claude以为是滑雪事故... 😂第二版提示词:明确说明这是"瑞典保险公司的AI系统,帮助理赔员审核交通事故报告"
结果:Claude立马知道是车祸,分析准确率直接起飞!关键语气设定:
- 要实事求是,保持自信
- 不确定就不要瞎猜
- 只有充分把握时才下判断
你是旅行助手,用户想去某个地方几天,有什么偏好,帮他制定行程...
✅ 结构化写法:<location>{{LOCATION}}</location>
<num_days>{{NUM_DAYS}}</num_days>
<user_preferences>{{USER_PREFERENCES}}</user_preferences>
请在<itinerary>标签内输出行程:
为什么偏爱XML标签?
官方给出了明确理由:
右边的圣托里尼行程输出,格式完美、内容丰富,这就是结构化的威力!
官方给出了明确理由:
- 📍 边界清晰:Claude能精确知道信息的开始和结束
- 💰 Token高效:比其他分隔符更节省Token
- 🎯 语义明确:标签名本身就说明了内容类型
右边的圣托里尼行程输出,格式完美、内容丰富,这就是结构化的威力!
<itinerary>
Adventure-Packed 3-Day Itinerary for Santorini, Greece
Day 1: Exploring the Caldera
Morning:
• Start with challenging hike from Fira to Oia (3-4 hours)
• Enjoy breakfast at local café in Oia...
</itinerary>
第四步:系统提示词要用好把不变的信息放进系统提示:- 表格格式说明(比如瑞典车险表17个选项的含义)
- 评判标准
- 输出格式要求
瑞典车险事故报告表格说明:
- 表格标题:xxx
- 两列分别代表车辆A和B
- 第1行:xxx情况
- 第2行:xxx情况
...
友情提醒:系统提示里的信息可以用提示缓存,省钱又高效!更牛的是这些1、Few-Shot示例的威力——比千言万语更有效官方明确指出:与其用文字描述,不如直接给Claude看1-2个例子!为什么示例这么牛?
- 🎯 具体模板:Claude能直接复制你的格式
- 📝 一致性保证:特别适合需要统一格式的任务
- 💡 行业标准:遵循特定术语或规范
- 相关性:示例要贴近实际场景
- 多样性:至少3-5个不同类型的例子
- 数量适中:通常1-2个就够了,别太多
<!-- ❌ 纯文字描述 -->
请创建专业的旅行行程,要包含景点、餐饮、住宿建议,
格式要整齐,内容要丰富...
<!-- ✅ 直接给示例 -->
<example>
Day 1: Exploring the Caldera
Morning:
• Start with challenging hike from Fira to Oia (3-4 hours)
• Enjoy breakfast at local café in Oia...
</example>
2、长提示词的终极技巧第5点"重复关键指令"是针对超长提示词的神技!当你的提示词超过几千字时,Claude可能会"忘记"前面的重要指令。解决方案:<!-- 开头定义任务 -->
你需要创建旅行行程...
<!-- 中间一大堆内容 -->
各种规则、示例、数据...
<!-- 结尾再次强调 -->
记住:基于位置、天数和偏好创建行程,
请在<itinerary>标签内输出结果!
3、变量占位符的产品思维<location>{{LOCATION_🏝️}}</location>
<num_days>{{NUM_DAYS_📅}}</num_days>
<user_preferences>{{USER_PREFERENCES_💭}}</user_preferences>
这不仅是技术实现,更是产品设计!让提示词变成可复用的"模板"。4、"Take a deep breath"的科学依据看到第8层的"Thinking step by step / take a deep breath"了吗?这不是开玩笑!研究表明,让AI"深呼吸"能显著提升推理能力:回答前请先思考你的回答。
Put your response in <response></response> tags.
Extended Thinking vs 传统提示工程什么时候用Extended Thinking?- 🧠 给Claude更多思考时间:复杂推理任务的第一选择
- 🔍 调试AI思路:通过思考痕迹了解Claude的推理过程
- 🎯 优化系统提示:根据思考轨迹改进提示词
- 💰 Token消耗更大:需要"重新发明轮子",成本更高
- 🎲 一致性较差:temperature=1,结果可能不够稳定
<!-- 开发阶段:用Extended Thinking调试 -->
启用扩展思考,分析推理过程
<!-- 生产环境:用优化后的提示词 -->
基于分析结果,写出精准的step-by-step指令
这就是为什么提示工程如此重要——它能把Extended Thinking的洞察固化成高效、稳定的生产级提示词!5、预填充响应的神奇技巧第10层"Prefilled response"是个高级技巧:<response>
就这样!让Claude从这里开始输出,能:- 强制按格式输出
- 节省tokens
- 提高响应一致性
<history>{{之前的对话内容}}</history>
用户问题:<question>{{当前问题}}</question>
这样Claude就有"记忆"了!防止Claude"胡编乱造"的终极秘籍生产环境最怕的就是AI"一本正经地胡说八道"!Anthropic给出了4个防幻觉的核心技巧:🚫 技巧1:让Claude承认"不知道"
如果你不确定答案,请直接说"我不知道",
不要猜测或编造信息。
🎯 技巧2:要求高置信度回答只有在你非常确信答案正确时才回答,
不确定的内容请明确标注。
🤔 技巧3:让Claude先思考再回答请先仔细思考这个问题,然后再给出答案。
在<thinking></thinking>标签中展示你的思考过程。
📝 技巧4:引用式回答(适合长文档)请先从文档中找到相关的具体引用,
然后基于这些引用来回答问题。
引用格式:
<quote>"原文内容"</quote>
基于以上引用,我的答案是...
一些小技巧- 温度设置为0:需要精确分析时用这个
- Max tokens设大点:别让Claude发挥受限
- 善用Claude 4:新模型理解力更强
- XML标签更高效:比Markdown、JSON等更节省Token
- 示例胜过千言:1个好例子比100行描述更有效
- 防幻觉是关键:生产环境必须加入防护机制
- 多模态很香:图片+文字一起分析
- Extended Thinking:开发调试神器,生产环境需谨慎
- ✅ XML标签:<tag>content</tag> (推荐)
- ⚠️ Markdown:## 标题 (可用但不如XML)
- ❌ 大括号:{content} (Claude容易混淆)
- ❌ 长分隔符:======== (浪费Token)
- 🎯 最佳数量:1-2个精品示例
- ⚠️ 避免过多:超过5个示例会稀释注意力
- 💡 质量>数量:相关性和多样性更重要
- 任务背景:明确角色和场景
- 语气语调:定义AI的"人设"
- 背景数据:提供必要的文档和图片
- 详细规则:step-by-step操作指南
- 标准示例:few-shot学习的威力
- 对话历史:让AI有"记忆"
- 即时请求:当前具体要做什么
- 思考提示:让AI"深呼吸"
- 输出格式:结构化响应控制
- 预填充:引导AI按格式开始
- 让Claude承认"不知道"
- 要求高置信度回答
- 先思考再回答
- 基于引用回复
- 测试 → 优化 → 迭代循环
- XML标签结构化组织
- 示例胜过千言万语
- Extended Thinking调试,提示工程生产
- 理解LLM的工作原理
- 聚合分析失败案例并找到解决方案
- 让LLM适应更广泛的输入场景
- 用科学思维创建评估体系
- 防止AI幻觉,确保输出可靠性
0 件のコメント:
コメントを投稿