Skip to content

提示词工程(Prompt Engineering)完全指南

提示词工程是有效使用 AI 模型的核心技能。本文整理自 Anthropic 官方文档,涵盖核心技巧、实用示例和最佳实践。

场景化的可复制模板(写测试、Code Review、重构、写中文技术文)见 场景实战


一、核心原则

1. 清晰直接

黄金法则:把你的提示词给一个不了解任务的同事看,如果他们能理解,AI 也能。

❌ 不够好:

帮我写个分析面板

✅ 更好:

创建一个数据分析面板。包含尽可能多的相关功能和交互。
不要只做基础版本,要做一个功能完整的实现。

2. 提供上下文

告诉 AI 为什么要做这件事,它能给出更精准的回复。

❌ 不够好:

永远不要用省略号

✅ 更好:

你的回复会被文字转语音引擎朗读,所以永远不要用省略号,
因为语音引擎无法正确发音。

3. 给 AI 一个角色

在系统提示词中设定角色,能显著影响 AI 的语气和行为。

你是一个专业的 Python 编程助手,擅长代码审查和优化。

二、实用技巧与示例

技巧 1:使用示例(Few-Shot)

提供 3-5 个相关示例,能大幅提高输出的一致性和准确性。

示例:情感分类

请将以下用户反馈分类为正面、中性或负面。

<examples>
  <example>
    <input>这个产品太好用了,超出我的预期!</input>
    <output>正面</output>
  </example>
  <example>
    <input>还行吧,没什么特别的感觉。</input>
    <output>中性</output>
  </example>
  <example>
    <input>客服态度太差了,再也不会买你们的产品。</input>
    <output>负面</output>
  </example>
</examples>

现在请分类:
<input>物流很慢,但产品质量还不错。</input>
<output>

技巧 2:使用 XML 标签组织提示词

XML 标签帮助 AI 区分不同类型的信息(指令、上下文、示例、输入)。

<instructions>
  你是一个专业的代码审查助手。请审查以下代码:
  1. 找出潜在的 bug
  2. 提出性能优化建议
  3. 检查代码风格
</instructions>

<context>
  这是一个电商平台的订单处理模块,需要高并发支持。
</context>

<code>
{用户代码}
</code>

技巧 3:长文档处理

当处理大量文档时(20k+ tokens):

  1. 长文档放在提示词顶部
  2. 用 XML 标签包装每个文档
  3. 让 AI 先引用相关段落再分析
<documents>
  <document index="1">
    <source>年度报告.pdf</source>
    <document_content>
      {年度报告内容}
    </document_content>
  </document>
  <document index="2">
    <source>竞品分析.xlsx</source>
    <document_content>
      {竞品分析内容}
    </document_content>
  </document>
</documents>

请从以上文档中引用相关段落,然后分析战略优势并推荐 Q3 重点方向。
先列出相关引用,放在 <quotes> 标签中,然后给出分析。

技巧 4:控制输出格式

告诉 AI 应该做什么,而不是不该做什么:

❌ "不要用 Markdown" ✅ "你的回复应该由流畅的段落组成"

使用 XML 标签控制格式:

将你的分析放在 <analysis> 标签中,
将建议放在 <recommendations> 标签中。

减少 Markdown 过度使用:

<avoid_excessive_markdown>
  撰写报告、文档、技术说明时,使用清晰的段落和句子。
  只在以下情况使用 Markdown:
  - 行内代码:`code`
  - 代码块:```...```
  - 简单标题:## 和 ###
  不要使用 **加粗** 和 *斜体*。
  除非用户明确要求,否则不要使用列表。
</avoid_excessive_markdown>

三、实战示例

示例 1:代码生成

你是一个全栈开发工程师。请创建一个用户注册功能。

<requirements>
  1. 前端:React 表单,包含输入验证
  2. 后端:Node.js API,包含密码哈希
  3. 数据库:PostgreSQL 用户表
  4. 错误处理:友好的错误提示
</requirements>

<constraints>
  - 使用 TypeScript
  - 遵循 RESTful API 设计
  - 包含基本的单元测试
</constraints>

请按步骤实现,先给出方案,再写代码。

示例 2:技术文档撰写

<role>你是一位资深技术写作专家</role>

<task>
  为这个 API 编写开发者文档
</task>

<api_info>
  {API 信息}
</api_info>

<output_format>
  文档应包含:
  1. 概述(一段话说明 API 用途)
  2. 认证方式
  3. 端点列表(每个端点包含:URL、方法、参数、示例请求、示例响应)
  4. 错误码说明
  5. 常见问题
</output_format>

使用清晰简洁的语言,面向有一定编程经验的开发者。

示例 3:数据分析

你是一个数据分析师。请分析以下销售数据:

<data>
  {销售数据}
</data>

<questions>
  1. 哪些产品销量最高?哪些最低?
  2. 按地区分析销售趋势
  3. 识别异常数据点
  4. 提出改进建议
</questions>

请先引用数据中的关键数字,再给出分析结论。
将数据引用放在 <quotes> 标签中,分析放在 <analysis> 标签中。

示例 4:多步骤任务

请完成以下任务,按顺序执行:

1. 分析现有代码库的结构
2. 识别需要重构的模块
3. 制定重构计划
4. 逐步实施重构
5. 运行测试确保功能正常

每个步骤完成后,简要总结你做了什么。

四、Claude Code 中的提示技巧

在 Claude Code 中使用提示

bash
# 带提示启动
claude "审查这个项目的安全性并提出改进建议"

# 管道输入
cat error.log | claude -p "分析错误原因并给出解决方案"

# 继续对话
claude -c

会话内命令

命令用途
/plan进入计划模式,先设计方案再执行
/code-review代码审查
/diff查看变更
/batch大规模并行重构

五、常见错误

错误改进
"帮我写代码"明确语言、框架、功能需求
"修复 bug"描述具体症状和预期行为
一次性给太多任务拆分步骤,逐步执行
不提供上下文说明项目背景和技术栈

六、进阶技巧

提示词链(Prompt Chaining)

将复杂任务分解为多个提示词,按顺序执行:

第一步:分析需求,输出需求文档
第二步:根据需求文档,设计架构
第三步:根据架构,编写代码
第四步:审查代码,优化性能

思考模式

让 AI 先思考再回答:

在给出最终答案之前,请先:
1. 分析问题
2. 列出你的推理过程
3. 考虑可能的替代方案
4. 最后给出结论

将思考过程放在 <thinking> 标签中。

参考资源


💡 提示词工程是一门需要实践的技能。最好的学习方法就是多写、多测试、多改进!

用代码记录成长 · RSS 订阅 · 标签