深度

高级提示词工程完全指南 2026:CoT、Few-Shot 与 XML 结构化技巧

面向 Claude API 开发者的高级提示词工程完整指南:Chain-of-Thought(思维链)的原理与触发方式、Few-Shot 示例选取策略、Zero-Shot CoT 触发词、XML 标签结构化输出控制(强制 JSON)、角色扮演提示的正确姿势、多步骤任务分解、Claude 专属优化技巧(正向指令 vs 禁止指令)以及提示词 A/B 测试框架。

2026/3/214分钟 阅读ClaudeEagle

初级提示词让 AI 完成任务;高级提示词让 AI 稳定地、以正确方式完成任务。 本文聚焦真正让输出质量产生质变的核心技巧,面向 Claude API 开发者。

为什么需要高级提示词工程?

同样的问题,提示词写法不同,输出质量天差地别:

  • 基础写法:「分析这段代码有什么问题」 → 结果:深度随机,可能漏掉关键问题

  • 高级写法:「按以下步骤分析:1) 列出功能假设 2) 逐行识别边界条件 3) 重点检查空指针/类型不匹配/竞态条件 4) 输出按严重程度排序的问题列表」 → 结果:系统完整,可预期,不遗漏

差距的根源是结构化思维的有无

Chain-of-Thought(思维链)

核心原理

让模型「先想后说」——在最终答案前显式写出推理步骤。 对多步逻辑推导任务效果最显著(数学/逻辑/代码分析)。

Zero-Shot CoT

无需示例,用触发短语激活思维链:

分析以下系统设计方案的可行性: [系统描述] 请一步步思考:先分析功能需求,再考虑技术约束,最后评估实现风险。

有效触发词:「一步步思考」「请先分析……然后」「Think step by step」

Few-Shot CoT:带推理过程的示例

判断以下 SQL 查询是否存在 N+1 问题: 示例 1: 查询:for user in users: db.query(Order).filter_by(user_id=user.id).all() 思考:外层循环 N 次,内层每次单独查询——共 N 次 DB 查询。 结论:有 N+1 问题。优化:改为 JOIN 或 IN 查询一次获取所有订单。 示例 2: 查询:db.query(User).options(joinedload(User.orders)).all() 思考:joinedload 一次 JOIN 查出用户和订单——只有 1 次 DB 查询。 结论:无 N+1 问题,已用 eager loading 优化。 现在判断:{user_query} 先写思考过程,再给结论。

Few-Shot 示例选取原则

  1. 覆盖正反两类情况
  2. 示例难度与真实任务相近
  3. 推理格式要和期望输出完全一致
  4. 2-4 个示例通常够用,过多反而稀释注意力

XML 标签结构化(Claude 最佳实践)

Claude 对 XML 标签有特别好的理解,用标签分隔内容能显著提升输出稳定性:

xml
<task>代码审查:检查安全漏洞</task>

<context>公网服务器上处理用户上传文件的函数</context>

<code>
def upload_file(filename, content):
    path = f'/uploads/{filename}'
    with open(path, 'wb') as f:
        f.write(content)
    return path
</code>

<requirements>
  1. 识别所有安全漏洞(路径穿越/文件类型/大小限制)
  2. 每个漏洞给出风险等级、攻击场景、修复代码
  3. 按风险从高到低排序
</requirements>

强制 JSON 输出:

分析代码复杂度,以 JSON 返回: <code>{code}</code> <output_schema> { "cyclomatic_complexity": <整数>, "issues": [{"type": "字符串", "line": <整数>, "severity": "low|medium|high"}], "refactor_recommended": <布尔值> } </output_schema> 只返回 JSON,不加任何解释。

角色扮演提示(Role Prompting)

给 Claude 一个有行为约束的专家身份,比单纯说「你是专家」有效得多:

# 有效:身份 + 行为约束 你是有 15 年经验的 PostgreSQL DBA,擅长性能调优。 回答时:先诊断根因,给出多方案并说明各自适用场景, 用 EXPLAIN ANALYZE 输出佐证优化效果。 # 无效:只有身份,没有行为约束 你是数据库专家。

任务分解

复杂任务拆分多轮 > 一次性提交:

第 1 轮:分析当前架构,列出主要问题(不改代码) 第 2 轮:基于分析制定重构方案,优先级排序 第 3 轮:实现最高优先级模块

Claude 专属技巧

正向指令 > 禁止指令

  • 差:「不要多余解释,不要 Markdown,不要太长」
  • 好:「直接输出代码,不加注释,控制 20 行以内」

Claude 更擅长理解「做什么」而不是「不做什么」。

给 Claude 思考空间

在问题末尾加上开放性 XML 标签,迫使 Claude 先分析再回答:

问题:{question} 请先在 <analysis> 内分析所有方案,再在 <answer> 内给出最优答案。 <analysis>

<analysis> 开头是一个技巧——Claude 会继续填写标签内容,强制进入分析模式。

提示词 A/B 测试框架

python
import anthropic, statistics

client = anthropic.Anthropic()

def ab_test(prompt_a, prompt_b, cases, judge, rounds=5):
    sa, sb = [], []
    for case in cases:
        for _ in range(rounds):
            ra = client.messages.create(
                model='claude-sonnet-4-6', max_tokens=1024,
                messages=[{'role':'user','content': prompt_a.format(**case)}]
            ).content[0].text
            rb = client.messages.create(
                model='claude-sonnet-4-6', max_tokens=1024,
                messages=[{'role':'user','content': prompt_b.format(**case)}]
            ).content[0].text
            sa.append(judge(ra, case))
            sb.append(judge(rb, case))
    winner = 'A' if statistics.mean(sa) >= statistics.mean(sb) else 'B'
    print(f'A={statistics.mean(sa):.2f}  B={statistics.mean(sb):.2f}  Winner={winner}')

来源:Anthropic 官方文档 - docs.anthropic.com/en/docs/build-with-claude/prompt-engineering

相关文章推荐

深度提示词工程进阶:Claude 结构化输出、思维链与角色扮演高级技巧Claude 提示词工程进阶教程:结构化 JSON 输出(Pydantic 验证/预填充技巧)、思维链 CoT 与扩展思考 API(Extended Thinking)、角色扮演 System Prompt 动态切换、多轮对话管理、Few-shot 示例驱动,附进阶技巧选择矩阵。2026/3/14深度Claude API 错误码完全手册:所有错误类型、原因与解决方案Anthropic Claude API 错误码完整参考:authentication_error(401/403)、rate_limit_error(429)、invalid_request_error(400)、api_error(500)、overloaded_error(529)的详细说明,每种错误的常见触发原因、标准解决方案和代码示例(Python/Node.js),以及生产环境的错误处理最佳实践(区分可重试/不可重试错误)。2026/3/18深度Claude API 速率限制完全指南:限额说明、错误处理与优化策略Anthropic Claude API 速率限制完整说明:请求频率限制(RPM)、Token 用量限制(TPM/TPD)、不同使用层级的限额对比(免费层/Build/Scale/Enterprise)、429 错误的标准处理方式(指数退避重试)、提升限额的申请方法、Prompt Caching 和 Batch API 绕过限制的技巧,以及高并发场景的队列设计方案。2026/3/18深度Claude API 批量处理完全指南:Message Batches API 大规模数据处理实战Claude API Message Batches 完整教程:批量 API 原理、与普通 API 的区别(50% 成本折扣)、Python/Node.js 提交批次代码示例、进度追踪与结果获取、错误处理策略、并发批次管理,以及文档摘要/数据分类/批量翻译等典型大规模处理场景实战。2026/3/16深度Claude API 限流完全指南:Rate Limit 报错原因、重试策略与生产环境最佳实践Claude API Rate Limit 完整应对指南:限流类型(RPM/TPM/并发)、各套餐限额表、429 错误处理、指数退避重试实现、Prompt Caching 降低用量、请求队列设计、Tier 升级申请,以及高并发生产环境架构方案。2026/3/15深度Claude API 工具调用完全指南:Tool Use 函数调用从入门到实战Claude API Tool Use(工具调用/函数调用)完整教程:工具定义格式、单工具/多工具调用、工具结果传回、并行工具调用、流式工具调用、Python/Node.js 代码示例,以及构建 AI Agent 工具调用循环的最佳实践。2026/3/15