链载Ai

标题: Claude 官方的 Prompt Engineer 建议 [打印本页]

作者: 链载Ai    时间: 4 天前
标题: Claude 官方的 Prompt Engineer 建议


ingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;font-size: 16px;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;">随着大语言模型(LLM)参数的增加和指令遵从性的提升。加上最近的 Agent 开发都越来越多的依赖于 ReAct 这类 node,使得 Prompt 的优化变得比以前更加的重要了。
机缘巧合下看到了Claude 官方文档中对于 Prompt 的一系列建议与最佳实践,适合拿来改进 prompt。或者对于 AI 生成的 Prompt 自己也可以试着用下面的规则来引导优化

ingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;font-size: 16px;margin: 1.5em 8px;color: #3f3f3f;">ingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;font-size: 16px;display: block;max-width: 100%;margin: 0.1em auto 0.5em;border-radius: 8px;box-shadow: 0 4px 8px rgba(0,0,0,0.1);" title="null"/>

ingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;font-size: 20.8px;display: table;padding: 0.3em 1em;margin: 4em auto 2em;color: #fff;background: #009874;font-weight: bold;border-radius: 8px;box-shadow: 0 4px 6px rgba(0,0,0,0.1);">核心原则概览

ingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;font-size: 16px;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;">从 Anthropic 文档中总结的几个核心原则,包括但不限于:

    ingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;font-size: 16px;padding-left: 1.5em;margin-left: 0;color: #3f3f3f;" class="list-paddingleft-1">
  1. ingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;font-size: 16px;display: block;margin: 0.5em 8px;color: #3f3f3f;">
    1.ingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;font-size: inherit;color: #009874;font-weight: bold;">Prompting vs. Fine-tuning
    使用 prompt(和 prompt engineering)比起对模型进行 fine-tuning,通常在资源、时间、透明度、灵活性和适应新领域等方面具有优势。
  2. ingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;font-size: 16px;display: block;margin: 0.5em 8px;color: #3f3f3f;">
    2.ingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;font-size: inherit;color: #009874;font-weight: bold;">“Be clear, direct, and detailed”
    像对待一个新同事一样,Claude 需要清晰的背景、角色说明、任务目标、风格指引等;越明确,越容易让模型按期望执行。
  3. 3.Use examples / multishot prompting
    给出多个示例(few-shot / multishot)可以大幅提升一致性、结构性和输出质量,尤其是任务复杂或格式要求严格的时候。
  4. 4.Use XML tags to structure prompt
    使用标签(像<instructions><example><formatting><document>等)把 prompt 中不同部分区分开来,比如背景说明、要遵守的规则、要输出格式、示例等。这样 Claude 不易混淆这些部分。
  5. 5.Chain complex prompts
    对于复杂任务,把任务拆成多个子任务 / 步骤,并通过 prompt chain(多个 prompt 连起来)处理。这样每一步 Claude 的注意力更集中,也便于调试和追踪问题。
  6. 6.Long-context prompting tips
    当输入/上下文很长(很多文档或非常多 token)时,有技巧可以让性能更好,比如把长文本放在 prompt 顶部,用标签组织文档和元数据,请求引用相关片段等。

各项技巧与具体示例

下面把每个技巧展开,并配上官方 example(或接近官方示例)以帮助理解。


一、Be Clear, Direct, and Detailed

要点

官方示例

❌ 模糊 Prompt:
请删除以下客户反馈中的个人身份信息:
{{客户反馈数据}}

✅ 清晰 Prompt:
任务:对客户反馈进行匿名化处理。
规则:
1. 姓名替换为 CUSTOMER_[ID]。
2. 邮箱替换为 EMAIL_[ID]@example.com。
3. 电话替换为 PHONE_[ID]。
4. 产品名保留。
5. 没有发现个人信息则保持原文。
6. 输出用“---”分隔。

输入:
"你好,我是小王(wang@example.com)。我很喜欢你们的产品,但我的手机(555-123-4567)坏了。"

输出:
"你好,我是 CUSTOMER_1(EMAIL_1@example.com)。我很喜欢你们的产品,但我的手机(PHONE_1)坏了。"

二、Multishot Prompting / Use Examples

要点

官方示例

❌ 模糊 Prompt:
分析此客户反馈并对问题进行归类。请使用以下类别:UI/UX(用户界面/体验)、性能、功能请求、集成、定价,以及其他。同时评估其情绪(积极/中性/消极)和优先级(高/中/低)。

反馈内容如下:{{FEEDBACK}}

✅ 清晰 Prompt:
角色:请分析客户反馈。
类别:界面体验 (UI/UX)、性能问题、功能请求、系统集成、价格相关、其他
对每条反馈输出:类别、情感(正面/负面/中性)、优先级(高/中/低)。

<example>
输入:"我上传照片时应用一直崩溃。"
输出:
类别:性能问题
情感:负面
优先级:高
</example>

<example>
输入:"我希望应用能支持深色模式。"
输出:
类别:功能请求
情感:中性
优先级:中
</example>

现在分析:
输入:"界面很好看,但订阅价格太贵了。"

三、Use XML Tags

要点

官方示例

❌ 模糊 Prompt:
你是AcmeCorp的一名财务分析师。请为我们的投资者生成一份Q2财务报告。报告需包含收入增长、利润率和现金流等部分,参照去年的示例:{{Q1_REPORT}}。请使用此电子表格中的数据点:{{SPREADSHEET_DATA}}。报告应极其简洁、切中要害、专业,并以列表格式呈现。报告应同时突出优势和改进领域。

(注:{{Q1_REPORT}} 和 {{SPREADSHEET_DATA}} 为模板变量,在实际使用时会替换为具体内容)

✅ 清晰 Prompt:
分析下面的合同。
重点关注:风险分配、责任限制、知识产权。
在输出中,请将发现写在 <findings>,建议写在 <recommendations>。
</instructions>

<agreement>
本协议由甲方(Alpha 公司)与乙方(Beta 公司)签订……
</agreement>

<standard_contract>
标准合同条款示例:……
</standard_contract>

预期输出:
<findings>
- 缺少责任上限条款
- 未明确知识产权归属
</findings>

<recommendations

四、Chain Complex Prompts(任务拆链)

要点

官方示例

请总结以下研究论文。
重点包括:研究方法、研究结果、临床意义。
<strategy>
{{STRATEGY}}
</strategy>
请审阅以下摘要,从准确性、清晰度、完整性三个方面打分(1-5分),并给出反馈。
<analysis>
{{ANALYSIS}}
</analysis>
请根据反馈改进摘要。
Include an executivesummary, detailed analysis, and recommendations.

五、Long-Context Prompting Tips

当 prompt 输入中包含非常长的内容(多个文档、大量文本)时,这些技巧尤为重要。以下是官方建议并配示例。

要点

示例

<documents>
<documentindex="1">
<source>annual_report_2023.pdf</source>
<document_content>
{{ANNUAL_REPORT}}
</document_content>
</document>
<documentindex="2">
<source>competitor_analysis_q2.xlsx</source>
<document_content>
{{COMPETITOR_ANALYSIS}}
</document_content>
</document>
</documents>

分析这些报告,识别战略优势并推荐 Q3 的重点领域。
您是 AI 医生助手。任务:帮助医生诊断患者疾病。

<documents>
<document index="1">
<source>patient_symptoms.txt</source>
<document_content>
{{PATIENT_SYMPTOMS}}
</document_content>
</document>
<document index="2">
<source>patient_records.txt</source>
<document_content>
{{PATIENT_RECORDS}}
</document_content>
</document>
<document index="3">
<source>patient01_appt_history.txt</source>
<document_content>
{{PATIENT01_APPOINTMENT_HISTORY}}
</document_content>
</document>
</documents>

要求:
- 在 `<quotes>` 标签内放出与诊断最相关的文档片段
- 然后基于这些引用片段列出诊断信息,在 `<info>` 标签中输出。

使用顺序建议 &调试方法

除了具体技巧,Anthropic 的文档里也建议一个大致的调优流程/顺序,以及调试方法:


常见问题 &坑

结合官方提示,这里也整理一些可能的误区/坑,以及如何回避:

问题
原因
对应官方建议
指令不够明确,模型自由发挥太多
prompt 中未明确结构、格式、要求
使用“Be clear, direct”风格,分点说明,示例;使用 XML tags 来标明结构
输出格式/顺序错乱/漏写
没有示例/没有拆任务/过长的 prompt 混合多个任务
引入 multishot 示例;拆链(chain prompts)使每一步明确;long context 工具来组织内容
模型忽视某些内容 / 被上下文噪声干扰
长文本中重要内容被掩盖 / query 排在顶部使得模型焦点不对
将长文本置顶,把 query 放在末尾;请求模型引用相关段落;用 XML 标签结构组织文档与元数据
当任务特别复杂但 prompt 写在一个块里
cognitive load 太大,模型容易漏步骤或混淆
用 prompt chaining,把任务分子任务处理;先结构 → 草稿 → 校对 → 最终稿

总结







欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5