解锁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


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

作者  |  谦行

相关文章
|
1月前
|
人工智能
Claude code AI 技能神器:Anthropic Skills!
Anthropic推出Claude AI技能神器Skills,将复杂任务打包成即插即用的“外挂”,让AI秒懂流程,告别重复提示。支持团队共享,提升效率数倍,三步搞定专业报告,堪称AI办公革命!
544 4
|
1月前
|
人工智能 监控 算法
人群计数、行人检测数据集(9000张图片已划分、已标注) | AI训练适用于目标检测任务
本数据集包含9000张已标注、已划分的行人图像,适用于人群计数与目标检测任务。支持YOLO等主流框架,涵盖街道、商场等多种场景,标注精准,结构清晰,助力AI开发者快速训练高精度模型,应用于智慧安防、人流统计等场景。
人群计数、行人检测数据集(9000张图片已划分、已标注) | AI训练适用于目标检测任务
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
AI Compass前沿速览:ChatGPT Atlas、Claude Code、Haiku 4.5、Veo 3.1、nanochat、DeepSeek-OCR
AI Compass前沿速览:ChatGPT Atlas、Claude Code、Haiku 4.5、Veo 3.1、nanochat、DeepSeek-OCR
249 37
AI Compass前沿速览:ChatGPT Atlas、Claude Code、Haiku 4.5、Veo 3.1、nanochat、DeepSeek-OCR
|
1月前
|
存储 人工智能 JSON
揭秘 Claude Code:AI 编程入门、原理和实现,以及免费替代 iFlow CLI
本文面向对 AI Coding 感兴趣的朋友介绍 Claude Code。通过此次分享,可以让没有体验过的快速体验,体验过的稍微理解其原理,以便后续更好地使用。
783 18
揭秘 Claude Code:AI 编程入门、原理和实现,以及免费替代 iFlow CLI
|
1月前
|
机器学习/深度学习 人工智能 算法
用于实验室智能识别的目标检测数据集(2500张图片已划分、已标注) | AI训练适用于目标检测任务
本数据集包含2500张已标注实验室设备图片,涵盖空调、灭火器、显示器等10类常见设备,适用于YOLO等目标检测模型训练。数据多样、标注规范,支持智能巡检、设备管理与科研教学,助力AI赋能智慧实验室建设。
用于实验室智能识别的目标检测数据集(2500张图片已划分、已标注) | AI训练适用于目标检测任务
|
1月前
|
机器学习/深度学习 人工智能 监控
面向智慧牧场的牛行为识别数据集(5000张图片已划分、已标注) | AI训练适用于目标检测任务
本数据集包含5000张已标注牛行为图片,涵盖卧、站立、行走三类,适用于YOLO等目标检测模型训练。数据划分清晰,标注规范,场景多样,助力智慧牧场、健康监测与AI科研。
面向智慧牧场的牛行为识别数据集(5000张图片已划分、已标注) | AI训练适用于目标检测任务
|
1月前
|
人工智能 JSON 安全
Claude Code插件系统:重塑AI辅助编程的工作流
Anthropic为Claude Code推出插件系统与市场,支持斜杠命令、子代理、MCP服务器等功能模块,实现工作流自动化与团队协作标准化。开发者可封装常用工具或知识为插件,一键共享复用,构建个性化AI编程环境,推动AI助手从工具迈向生态化平台。
349 1
|
3月前
|
人工智能 分布式计算 自然语言处理
多智能体系统设计:5种编排模式解决复杂AI任务
本文探讨了多AI智能体协作中的关键问题——编排。文章指出,随着系统从单体模型向多智能体架构演进,如何设计智能体之间的通信协议、工作流程和决策机制,成为实现高效协作的核心。文章详细分析了五种主流的智能体编排模式:顺序编排、MapReduce、共识模式、分层编排和制作者-检查者模式,并分别介绍了它们的应用场景、优势与挑战。最后指出,尽管大模型如GPT-5提升了单体能力,但在复杂任务中,合理的智能体编排仍不可或缺。选择适合的编排方式,有助于在系统复杂度与实际效果之间取得平衡。
677 10
多智能体系统设计:5种编排模式解决复杂AI任务

热门文章

最新文章

下一篇
oss云网关配置