解锁AI潜力:如何高效运用Claude进行复杂任务处理

简介: 本文系统解读了Anthropic官方发布的提示词优化策略,旨在帮助用户充分发挥Claude等先进大语言模型的潜力。

来自 Anthropic 官方的提示词优化建议[1]:

1.Be clear and direct[2]

2.Use examples (multishot) [3]

3.Let Claude think (chain of thought)[4]

4.Use XML tags[5]

5.Prefill Claude’s response[6]

6.Chain complex prompts[7]

7.Long context tips[8]


根据个人理解做了一些提炼,读完之后最大的感受就是:

1.使用 xml 标签结构化提示词。

2.触发 Claude Thinking 和 Plan。


保持清晰直接

把 Claude 当做一个才华横溢的新同事,它没有关于团队项目的规范、风格、准则或团队偏好的工作方式等信息,因此我们越准确地解释你想要什么,Claude 的回应就越好

  • 给 Claude contextual 的信息:
  • 任务结果将用于什么;
  • 输出内容面向什么受众;
  • 任务属于什么工作流程,以及这个任务在工作流程中的位置;
  • 任务的最终目标,或者成功完成任务是什么样子;
  • 具体说明你希望 Claude 做什么: 例如,如果你只想要 Claude 输出代码而不要其他内容,就要明确说明。
  • 按顺序提供指示:使用编号列表或项目符号,以更好地确保 Claude 按照你想要的方式执行任务。

使用示例

multishot Prompting 是 few-shot Learning 在大模型上的一个具体实现方式,两者不是反义词。

通过在提示中提供一些精心设计的示例,可以显著提高 Claude 输出的准确性、一致性和质量,这种技术称为multishot,对于需要结构化输出或遵守特定格式的任务特别有效。

  • 示例需要反映真实用例;
  • 示例不要过于雷同,防止出现过拟合现象;
  • 示例可以用<example>标记,多个的话嵌套在<examples>中;

触发 Claude CoT

当面对复杂任务时,触发 Claude 思维链(CoT),鼓励 Claude 逐步分解问题,可以获得更准确、更细致的输出。

使用 XML 标签结构化提示词

当提示词涉及上下文、说明和示例等多类型时,使用 XML 标签结构化提示词,可以帮助 Claude 更准确地解析提示词,从而获得更高质量的输出。

1.保持一致性: 在整个提示词中使用相同的标签名称,并在涉及相关内容时引用这些标签名称(例如,使用<contract>标签中的合同...)。

2.嵌套标签: 对于层次结构内容,你应该嵌套标签 <outer><inner></inner></outer>。

分析这份软件许可协议的法律风险和责任。我们是一家考虑将此协议用于核心数据基础设施的跨国企业。

<agreement>{{CONTRACT}}</agreement>

这是我们的标准合同供参考:
<standard_contract>{{STANDARD_CONTRACT}}</standard_contract>

<instructions>
1. 分析以下条款:
- 赔偿
- 责任限制
- 知识产权所有权

2. 注意不寻常或令人担忧的条款。

3. 与我们的标准合同进行比较。

4. 在<findings>标签中总结调查结果。

5. 在<recommendations>标签中列出可行的建议。
</instructions>

预填充 Claude 的回复

可以在提示词中设定一个开头,让 Claude 接着您的思路继续生成,这样有几个好处

  • 跳过冗长的前言:让 Claude 直接进入核心内容,避免不必要的开场白。
  • 强制特定格式输出:如果想让 Claude 直接输出 JSON 或 XML 格式的数据,可以预先提供格式的起始符号(如 { 用于 JSON),Claude 就会从那里开始生成。
  • 在角色扮演中保持一致性:在角色扮演对话中,您可以预填充角色名称(例如 [夏洛克·福尔摩斯]),帮助 Claude 更好地保持角色特征。

只需在发送给 Claude 的 Assistant message 中包含希望 Claude 开始的文本,Claude 就会从预填充的文本之后继续生成其响应。

{
  "model": "claude-sonnet-4-20250514"",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "请帮我写一封感谢信,感谢对方在最近的项目中提供的帮助。信中要提到项目的成功和我们团队的合作。"
    },
    {
      "role": "assistant",
      "content": "Dear [Name],\n\n我希望这封邮件能找到你。"
    }
  ]
}

Prompt Chaining 提示链

当一次性将复杂任务完全交给模型处理时,模型很可能会遗漏许多关键内容,在这种情况下提示链就能发挥作用。它的核心思想是:将一个复杂的任务拆解成一系列更小、更简单的子任务。随后引导模型逐步完成,其中上一个子任务的输出将作为下一个子任务的输入,从而确保每个环节都能得到模型的充分关注。

如何实施:

1.分解任务:将复杂任务拆分成清晰、有顺序的子任务。

2.明确目标:确保每个子任务只有一个明确、单一的目标。

3.使用 XML 标签:利用 XML 标签来清晰地标记和传递每个子任务的输出,作为下一个子任务的输入。

4.迭代优化:根据 Claude 的表现,不断调整和优化每个子任务的指令。

比如我们希望重构一个项目代码,可以按照以下步骤和模型交互

第一步:分析现有代码并识别重构点

发给 Claude 第一个提示词:

我有一个 Python 应用,其中包含一个名为 `payment_processor.py` 的文件,负责处理支付逻辑。我需要对其中的 `process_payment` 函数进行重构。
你可以通过以下路径访问该文件的内容:`/app/src/payment_processor.py`

请分析该文件内容,并列出所有你可以识别的重构点。对于每个重构点,请简要说明为什么需要重构,以及你计划如何改进。

请使用 XML 标签 `<refactoring_points>` 和 `<point>` 来结构化你的输出。

Claude 会返回一个类似这样的响应:

<refactoring_points>
  <point>
    <description>函数职责单一原则违反</description>
    <reason>当前的 `process_payment` 函数承担了过多的职责,包括输入验证、支付网关通信、交易记录等。这导致函数过长、难以理解和测试。</reason>
    <improvement>将这些职责拆分到独立的、专注的函数中,例如 `validate_payment_data`、`communicate_with_gateway`、`record_transaction` 等。</improvement>
  </point>
  <point>
    <description>硬编码的验证逻辑</description>
    <reason>支付类型、货币、卡号长度等验证逻辑直接嵌入函数内部,不易扩展和维护。</reason>
    <improvement>将验证规则外部化,可能通过配置文件或独立的数据结构管理,并引入更健壮的验证库。</improvement>
  </point>
  </refactoring_points>

第二步:生成重构后的代码结构和函数签名

在收到 Claude 的第一步输出后,发送的第二个提示词:

根据你之前识别的重构点(例如:函数职责单一原则、硬编码验证等),为 `payment_processor.py` 文件设计一个新的、更模块化的代码结构。

请为每个新函数或修改后的现有函数提供函数签名(包括参数和返回类型建议),并简要说明其职责。不需要提供完整的函数实现。

请使用 XML 标签 `<new_structure>` 和 `<function_signature>` 来结构化你的输出。

Claude 会返回一个类似这样的响应:

<new_structure>
  <function_signature>
    <name>validate_payment_data</name>
    <parameters>amount: float, currency: str, card_number: str, expiry_date: str, cvv: str</parameters>
    <returns>tuple[bool, str]</returns>
    <responsibility>负责所有支付相关输入的验证。如果验证失败,返回 False 和错误信息。</responsibility>
  </function_signature>
  <function_signature>
    <name>_call_payment_gateway</name>
    <parameters>amount: float, currency: str, card_number: str</parameters>
    <returns>dict</returns>
    <responsibility>模拟与第三方支付网关的通信,返回网关的原始响应。</responsibility>
  </function_signature>
  <function_signature>
    <name>_process_gateway_response</name>
    <parameters>gateway_response: dict</parameters>
    <returns>dict</returns>
    <responsibility>解析支付网关的响应,并标准化处理结果(成功/失败)。</responsibility>
  </function_signature>
  <function_signature>
    <name>record_transaction</name>
    <parameters>customer_id: str, transaction_id: Optional[str], amount: float, currency: str, status: str, transaction_type: str, error_message: Optional[str] = None</parameters>
    <returns>None</returns>
    <responsibility>负责将支付交易记录到持久化存储(如数据库)。</responsibility>
  </function_signature>
  <function_signature>
    <name>process_payment</name>
    <parameters>amount: float, currency: str, card_number: str, expiry_date: str, cvv: str, customer_id: str, transaction_type: str = 'sale'</parameters>
    <returns>dict</returns>
    <responsibility>作为支付流程的入口点,协调调用其他模块化函数完成整个支付流程。</responsibility>
  </function_signature>
</new_structure>

第三步:逐步实现重构后的功能

在收到 Claude 的第二步输出后,发送的第三个提示词:

现在,请你为 `validate_payment_data` 函数提供具体的 Python 实现。
这个函数应该接收 `amount, currency, card_number, expiry_date, cvv` 作为输入,并返回一个元组,如果所有验证通过则包含 `(True, "")`,否则包含 `(False, "错误信息")`。

请提供完整的函数实现,包括必要的导入。

Claude 就会开始改代码了。

长提示词技巧

Claude 4 有 200k 的 context,当提示词是长文本时有几个技巧

  • 将长格式数据放在顶部:建议将长篇数据放在提示的顶部,以帮助模型更好地理解和处理信息。
  • 使用 XML 标签:使用多个文档时将每个文档包装在 <document> 标签中,并带有 <document_content><source>子标签。
<documents>
  <document index="1">
    <source>annual_report_2023.pdf</source>
    <document_content>
      {{ANNUAL_REPORT}}
    </document_content>
  </document>
  <document index="2">
    <source>competitor_analysis_q2.xlsx</source>
    <document_content>
      {{COMPETITOR_ANALYSIS}}
    </document_content>
  </document>
</documents>

分析年度报告和竞争对手分析。识别战略优势并推荐第三季度重点关注领域。
  • 让模型先提炼再执行:在处理包含大量信息的长文档时,要求 Claude 模型首先从文档中提取并引用相关部分,减少噪音信息,然后再执行其主要任务。
您是一位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>标签中。

extended thinking 技巧

extended thinking[9] 为 Claude 提供了增强的推理能力,用于处理复杂任务,同时在提供最终答案之前,以不同程度的透明度展示其逐步思考过程。

启用 extended thinking

response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[{
        "role": "user",
        "content": "Are there an infinite number of prime numbers such that n mod 4 == 3?"
    }]
)

API 响应将包含thinking内容块,随后是text内容块。

{
  "content": [
    {
      "type": "thinking",
      "thinking": "让我逐步分析一下...",
      "signature": "...."
    },
    {
      "type": "text",
      "text": "基于我的分析..."
    }
  ]
}

使用高层次指令

Claude 通常在高层次指令下表现更好,只需要深入思考任务,而不是提供规定性的逐步指导。模型在解决问题时的创造力可能超过人类规定最佳思考过程的能力。

mutishot

mutishot 与 extended thingking 配合良好,可以 Prompt 中通过 XML 标签包含少量示例,如<thinking><scratchpad>

我将向你展示如何解决一个数学问题,然后我希望你解决一个类似的问题。

问题1:80的15%是多少?

<thinking>
要找到 80 的 15%:
1. 将 15% 转换为小数:15% = 0.15
2. 相乘:0.15 × 80 = 12
</thinking>

答案是12。

现在解决这个问题:
问题2:240 的 35% 是多少?

充分利用长输出和长形式思考

对于非常长的输出,可以要求提供详细的大纲,包括段落级别的字数,然后要求 Claude 将其段落索引到大纲中并保持指定的字数。

让 Claude 自省

可以使用简单的自然语言提示 Claude 来提高一致性并减少错误:

1.在宣布任务完成之前,要求 Claude 通过简单的测试验证其工作;

2.指导模型分析其前一步骤是否达到了预期结果;

3.对于编码任务,要求 Claude 在其 extended thinking 中运行测试用例;

编写一个计算数字阶乘的函数。
在完成之前,请使用以下测试用例验证你的解决方案:
- n=0
- n=1
- n=5
- n=10
并修复你发现的任何问题。

参考链接:

[1]https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview

[2]https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/be-clear-and-direct

[3]https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/multishot-prompting

[4]https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/chain-of-thought

[5]https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/use-xml-tags

[6]https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/prefill-claudes-response

[7]https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/chain-prompts

[8]https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/long-context-tips

[9]https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking


来源  |  阿里云开发者公众号

作者  |  谦行

相关文章
|
5月前
|
人工智能 缓存 自然语言处理
全球首款开源通用型AI智能体上线!Suna:自动处理Excel/爬数据/写报告等复杂任务一句话搞定
Suna是由Kortix推出的开源通用型AI智能体项目,通过自然语言交互实现浏览器自动化、文件管理、数据分析等复杂任务处理,支持自托管部署,为研究分析和日常工作提供智能辅助。
1269 55
全球首款开源通用型AI智能体上线!Suna:自动处理Excel/爬数据/写报告等复杂任务一句话搞定
|
2月前
|
人工智能 程序员 API
Anthropic Cookbook:开发者可以参考的Claude AI高效开发指南
作为配套资源的Anthropic Cookbook开源项目,更是凭借其丰富的代码示例和实用指南,在GitHub上获得了18k+颗星的高度认可。
101 7
Anthropic Cookbook:开发者可以参考的Claude AI高效开发指南
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
AI Compass前沿速览:Claude Opus 4.1、MiniMax-Speech 2.5、Qwen-Flash
AI Compass前沿速览:Claude Opus 4.1、MiniMax-Speech 2.5、Qwen-Flash
AI Compass前沿速览:Claude Opus 4.1、MiniMax-Speech 2.5、Qwen-Flash
|
2月前
|
机器学习/深度学习 人工智能 文字识别
浏览器AI模型插件下载,支持chatgpt、claude、grok、gemini、DeepSeek等顶尖AI模型!
极客侧边栏是一款浏览器插件,集成ChatGPT、Claude、Grok、Gemini等全球顶尖AI模型,支持网页提问、文档分析、图片生成、智能截图、内容总结等功能。无需切换页面,办公写作效率倍增。内置书签云同步与智能整理功能,管理更高效。跨平台使用,安全便捷,是AI时代必备工具!
189 8
|
2月前
|
人工智能 JavaScript 开发工具
ModelGate 支持 Claude Code ,一键设置 AI 编程助手,开发效率极速提升!
ModelGate 新增支持 Claude Code,开发者可一键部署 AI 编程助手,大幅提升开发效率。通过简单几步即可安装配置,轻松使用 AI 编程工具,快速完成复杂任务,让高效智能编程触手可及。
|
2月前
|
机器学习/深度学习 人工智能 算法
面向工业4.0的AI Agent多任务协作与调度系统设计
随着人工智能(AI)技术的飞速发展,智能制造成为现代工业的核心驱动力。传统制造系统在面对多任务、高频次和动态变化的调度需求时,往往效率低下。而基于AI Agent的多任务协作与调度机制为解决这一问题提供了全新思路。本文聚焦于面向智能制造场景中,如何通过AI Agent实现多任务协作调度,并引入强化学习方法进行算法优化。
|
2月前
|
人工智能 JavaScript 开发工具
ModelGate 支持 Claude Code,一键设置AI编程助手,开发效率极速提升!
ModelGate 新版支持 Claude Code,一键运行AI编程助手,开发效率飙升!三步配置,快速上手,代码生成准确高效,助你畅享智能编程新体验。

热门文章

最新文章