WayToClawEarn
进阶阅读约 30 分钟2026年7月19日

Claude Code提示工程:写出更好AI编程输出的完整指南

如果你一直在用Claude Code但结果时好时坏,问题几乎肯定出在你的提示词上。本指南教你10种经过验证的提示工程模式——从系统级CLAUDE.md优化到任务级思维链提示。学习如何结构化任务、管理上下文窗口、协调多文件修改,以及避免4种最常见反模式。包含Bug修复、功能实现和代码审查的直接可用模板。从今天起,你的Claude Code输出质量将大幅提升。

Edisen Lu · WayToClawEarn发布 2026年7月19日更新 2026年8月8日

基于公开来源复核 · AI 辅助整理,编辑把关。 内容方法

编辑部原创

由 WayToClawEarn 编辑部原创分析;可作为本站一级解读引用。

我们如何审核内容

核心结论

如果你在搜索「如何为 Claude Code 写出更好的提示词」,简短答案是:CLAUDE.md 是你的系统级提示词,任务描述是你的精度工具,上下文管理是你的超能力。本指南覆盖了 10 种经过验证的提示工程模式——从系统级 CLAUDE.md 优化到任务级思维链提示——让你的 Claude Code 产出更好的代码、捕获更多 Bug、浪费更少的 Token。


核心洞察

Claude Code 不只是代码自动补全工具——它是一个对话式 AI 编程智能体,能读取你的整个代码仓库、理解项目规范、并执行多步骤的编码任务。它的输出质量与你的提示词质量直接成正比。

大多数开发者对 Claude Code 的提示工程投入不足。他们抛出模糊的指令如「修复这个 Bug」或「添加身份认证」,然后困惑为什么输出不符合预期。Claude Code 3 分体验和 9 分体验之间的差距,几乎完全来自提示工程。

本指南是 Claude Code 知识中心 的一部分——你作为 AI 开发者掌握 Claude Code 的核心资源。


1. CLAUDE.md:项目级系统提示词

CLAUDE.md 是 Claude Code 中最具影响力的提示工程杠杆。它是一份放在项目根目录的 Markdown 文件,会被预置到每次 Claude Code 会话中。

CLAUDE.md 应该包含什么

把 CLAUDE.md 看作你入职新代码库时最想拥有的那份文档。它应该包含:

  1. 项目概览:这个项目做什么?为谁而做?
  2. 技术栈:框架、库、工具的精确版本号
  3. 代码规范:命名模式、文件组织、Lint 规则
  4. 架构决策:为什么选择某些模式而非替代方案
  5. 常用命令:构建、测试、Lint、部署命令
  6. 约束条件:什么绝对不能做(如「永远不要直接修改数据库 Schema」)

CLAUDE.md 示例

markdown

# 项目:FastAPI SaaS 后端

## 技术栈
- Python 3.12, FastAPI 0.115, SQLAlchemy 2.0, PostgreSQL 16
- Pydantic v2 用于验证, Alembic 用于数据迁移
- Pytest + pytest-asyncio 用于测试

## 代码规范
- 所有路由返回 Pydantic 模型,绝不返回原始字典
- 数据库查询使用异步 SQLAlchemy 会话
- 环境变量通过 pydantic-settings 从 .env 加载
- 所有函数签名必须带类型标注

## 架构
- 整洁架构:routes → services → repositories → models
- Services 包含业务逻辑,绝不在 routes 层
- Repositories 是唯一接触 SQLAlchemy 的层

## 命令
- 运行:`uvicorn app.main:app --reload`
- 测试:`pytest -xvs`
- Lint:`ruff check . && mypy app/`
- 迁移:`alembic upgrade head`

## 禁止
- 永远不要使用原生 SQL——始终通过 Repository 层
- 永远不要手动修改 Alembic 迁移文件
- 永远不要提交 .env 文件

CLAUDE.md 最佳实践

实践示例
具体而非通用「所有路由处理器使用 async def」而非「写好的代码」
包含版本号「FastAPI 0.115」而非「最新版 FastAPI」
明确写出禁止事项「永远不要用 print()——使用 logger.info()」
保持在 200 行以内太长 = Claude 会忽略部分内容
规范变更时及时更新过期的 CLAUDE.md 比没有 CLAUDE.md 更糟糕

进阶技巧:在新仓库中让 Claude Code 自己生成初始 CLAUDE.md,运行:「通读整个代码库,写一份 CLAUDE.md 来记录你观察到的所有规范和模式。」然后人工审查和完善。


2. 任务提示模式

CLAUDE.md 稳固后,下一层是如何构建单个任务。以下是被验证有效的模式:

模式 A:规格优先提示

不要写「添加用户认证」,而是写一份规格说明:

code
任务:添加基于 JWT 的用户认证

要求:
1. POST /auth/register — 接收邮箱+密码,返回 JWT
2. POST /auth/login — 接收邮箱+密码,返回 JWT
3. GET /auth/me — 受保护路由,返回当前用户信息
4. 使用 bcrypt 进行密码哈希(cost factor 12)
5. JWT Token 24 小时后过期
6. 添加中间件,拒绝 /api/* 路由上缺少有效 Token 的请求

不要做:
- 使用基于 Session 的认证
- 存储明文密码
- 修改现有路由

实现完成后,更新 docs/api.md 中的 API 文档。

这个模式给 Claude Code 提供了它需要的全部信息:构建什么、技术约束、明确边界、后续行动。

模式 B:思维链请求

对复杂调试或架构决策,让 Claude Code 先思考再编码:

code
在做出任何修改之前,请分析以下内容:

1. 阅读 src/billing/ 中的支付处理流程
2. 识别为什么订阅续费会产生重复扣款
3. 列出 3-5 个可能的根因,按可能性排序
4. 对每个根因,描述修复方案

分析完成后,等待我确认再开始实现修复。

这防止了 Claude Code 对复杂系统做出草率的修改,让你能了解它的推理过程。

模式 C:示例驱动提示

通过提供参考示例,向 Claude Code 展示好的输出长什么样:

code
我需要为 src/services/ 中的所有方法添加错误处理。
以下是我希望你为每个方法遵循的模式:

参考 — getUser 方法在你的修改后应该长这样:
```python
async def get_user(user_id: str) -> UserResponse:
    try:
        user = await self.user_repo.find_by_id(user_id)
        if not user:
            raise UserNotFoundError(user_id)
        return UserResponse.model_validate(user)
    except UserNotFoundError:
        raise  # 让异常处理器处理
    except Exception as e:
        logger.error(f"get_user 意外错误: {e}", exc_info=True)
        raise ServiceError("获取用户失败") from e

将此模式应用于 src/services/ 中的所有其他方法。 使用相同的 try/except 结构、相同的日志格式、相同的错误类型。

code

### 模式 D:迭代优化循环

最好的结果往往来自对话,而非一次性提示:

1. **提示 1**:「写一个数据导出函数,将查询结果转换为 CSV。」
2. Claude Code 生成基础版本。
3. **提示 2**:「很好。现在添加:(a) 大数据集的流式处理,(b) 进度回调,(c) 可配置的列选择。」
4. Claude Code 优化实现。
5. **提示 3**:「再优化一下:处理边界情况——空结果集、含逗号的列、Unicode 字符。」

每次迭代都建立在前一次的基础上,Claude Code 保持对话的完整上下文。

---

## 3. 上下文窗口管理

Claude Code 在拥有合适上下文时表现最佳——不多(会迷惑)不少(会猜测)。

### Claude Code 默认看到什么

在项目中调用 Claude Code 时:

- **CLAUDE.md**(始终包含)
- **相关文件**(根据你的提示自动检测)
- **Git 状态**(知道什么被修改了)
- **对话历史**(当前会话内)

### 显式添加上下文

使用 `/add` 显式包含文件:

/add src/models/user.py src/services/auth.py src/config/settings.py

code

然后发出你的提示。这比指望 Claude Code 自动发现正确文件更可靠。

### 何时开启新会话

上下文窗口会填满。以下信号说明应该 `/clear` 或开新会话:

- Claude Code 开始引用 10 个提示前的文件(已不再相关)
- 回复质量下降(对文件内容的幻觉增加)
- 每次回复的 Token 消耗莫名其妙地激增

**经验法则**:每个主要功能或 Bug 修复开一个新会话。不要让一个会话横跨多个不相关的任务。

---

## 4. 高级提示技术

### 多文件协调

当修改跨越多个文件时,描述完整的依赖链:

任务:为所有 API 端点添加速率限制

需修改的文件:

  1. src/middleware/rate_limiter.py — 使用 slowapi 创建新中间件
  2. src/main.py — 注册中间件(在所有路由 include 之前)
  3. src/config/settings.py — 添加 RATE_LIMIT_REQUESTS 和 RATE_LIMIT_WINDOW 配置项
  4. tests/test_rate_limiter.py — 添加测试,验证超限后返回 429

依赖关系:settings 的修改必须在中间件创建之前完成。

code

显式命名所有文件可以防止 Claude Code 遗漏关键部分。

### 测试优先提示

让 Claude Code 在实现之前先写测试:

第 1 步:为以下 API 端点规格编写 pytest 测试:

  • POST /api/products,JSON body {name, price, category}
  • 成功时应返回 201 和产品 ID
  • name 为空时应返回 422
  • price 为负数时应返回 422

测试审核通过后,我会要求你实现端点。 第 2 步(审核后):现在实现端点,让这些测试通过。

code

这利用了 Claude Code 在测试生成方面的优势,并确保实现由规格驱动。

### 带安全网的重构

重构大型代码库时:

任务:重构 src/services/order_service.py — 将 800 行的文件拆分为:

  • src/services/order/create.py
  • src/services/order/update.py
  • src/services/order/cancel.py

安全要求:

  1. 在做任何修改之前,运行现有测试套件并确认全部通过
  2. 每次文件拆分后,再次运行测试
  3. 如果任何测试在任何时候失败,立即停止并报告失败
  4. 不要更改任何函数签名——只移动代码
  5. 更新整个项目中所有指向旧位置的 import
code

「修改前后运行测试」模式至关重要——它能立即捕获回归。

---

## 5. 需要避免的反模式

### 反模式 1:一锅端提示

❌ 「构建一个完整的电商平台,包含用户认证、商品目录、购物车、结账、支付处理、 订单管理、邮件通知、管理后台、数据分析和 REST API。前端用 React。」

code

太大了。Claude Code 会在所有领域生成肤浅、有 Bug 的代码。拆分为聚焦的、顺序执行的任务——一次一个功能。

### 反模式 2:假设已知信息

❌ 「修复分页的 Bug。」

code

什么分页?在哪个文件里?Bug 表现是什么?始终包含:
- 文件路径或组件名
- 期望行为 vs 实际行为
- 错误消息或堆栈跟踪(如果有)

### 反模式 3:矛盾的约束

❌ 「优化这个函数的速度,但不要改算法,还要保持在 10 行以内。」

code

这些约束相互冲突。明确优先级:什么最重要?如果速度重要,算法可能需要改变。明确说明权衡取舍。

### 反模式 4:过早的实现细节

❌ 「添加用户注册。用 bcrypt cost factor 12,存到 PostgreSQL 用 asyncpg 连接池, 返回 RS256 算法的 JWT,用 SendGrid 模板 47 处理邮件验证。」

code

除非有具体的硬性约束,让 Claude Code 自己做技术选择。它通常会选择比过度指定的指令更好的模式。把超具体的约束保留给真正重要的事情(安全、合规、团队规范)。

---

## 6. 可直接使用的提示模板

### Bug 修复模板

Bug:[一句话描述]

复现步骤:

  1. [步骤 1]
  2. [步骤 2]
  3. [实际行为]

期望行为:[应该发生什么] 实际行为:[实际发生了什么]

相关文件:[逗号分隔的路径] 错误日志(如有):[粘贴堆栈跟踪]

修复前,请先解释根因。

code

### 功能实现模板

功能:[功能名称]

验收标准:

  • [标准 1]
  • [标准 2]
  • [标准 3]

技术约束:

  • [约束 1]
  • [约束 2]

需创建/修改的文件:

  • [文件列表及每个文件的修改说明]

实现完成后,运行 [测试命令] 并确认全部测试通过。

code

### 代码审查模板

审查以下文件,检查:

  1. 安全漏洞(注入、XSS、认证绕过)
  2. 性能问题(N+1 查询、阻塞 I/O)
  3. 错误处理缺口(未处理的异常、缺少重试)
  4. 项目规范遵守情况(检查 CLAUDE.md)

文件:[逗号分隔的路径]

对发现的每个问题,提供:

  • 文件和行号
  • 严重程度(致命/高/中/低)
  • 问题描述
  • 建议修复(含代码)
code

---

## 7. 特定任务提示工程

### 数据库迁移

我需要向 users 表添加 last_login_at 列(带时区的时间戳,可为空)。

要求:

  1. 生成 Alembic 迁移文件
  2. 列设为可空,默认 NULL
  3. 迁移必须可逆(downgrade 应删除此列)
  4. 生成后运行 alembic upgrade head 并验证成功
  5. 如果迁移失败,回滚并解释错误
code

### API 开发

创建新的 API 端点:GET /api/users/{user_id}/orders

查询参数:

  • status(可选):按订单状态筛选
  • limit(可选,默认 20,最大 100):分页限制
  • offset(可选,默认 0):分页偏移

响应格式:

json
{
  "items": [...],
  "total": 42,
  "limit": 20,
  "offset": 0
}

要求:

  • 添加正确的输入验证(Pydantic 模型)
  • 添加 OpenAPI 文档
  • 用户不存在时处理 404
  • 添加适当的日志记录
code

### 测试

为 src/services/payment_service.py 编写全面测试

覆盖要求:

  1. 正常路径:成功的支付处理
  2. 边界情况:零金额、负金额、最大金额
  3. 错误情况:支付网关超时、余额不足、无效卡片
  4. Mock 外部依赖(Stripe API)
  5. 使用 pytest fixtures 做通用设置

测试文件:tests/test_payment_service.py

code

---

## 8. 衡量提示词质量

如何知道你的提示词质量好坏?追踪以下指标:

### 客观信号
- **首次成功率**:Claude Code 一次就搞定,还是需要 3 次以上修改?
- **Token 效率**:好的提示词产出精准、简洁的代码修改,而非大范围改动
- **Bug 率**:好提示词生成的代码在审查中发现的 Bug 更少

### 主观信号
- **惊喜程度**:你是否经常被 Claude Code 理解意图的准确度惊艳到?
- **迭代次数**:通常需要 1-2 次还是 5-7 次迭代?

### 快速自检

每次 Claude Code 会话结束后,问自己:
1. 我描述的是**构建什么**,而非**怎么构建**吗?(除非「怎么构建」很重要)
2. 我命名了具体的文件和约束吗?
3. 我包含了上下文吗(CLAUDE.md、相关文件、对话历史)?
4. 我把大任务拆成了可管理的块吗?

如果对以上任何一个回答「否」,你的提示词可以更强。

---

## 相关资源

- [Claude Code 知识中心](/tutorials/claude-code-hub) — Claude Code 完整知识库
- [Claude Code FAQ](/tutorials/claude-code-faq-common-questions-2026) — 50+ 常见问题解答
- [Claude Code 工作流模式](/tutorials/claude-code-workflow-patterns-daily-ai-coding-2026) — 日常编码工作流优化
- [Claude Code 完全指南](/tutorials/claude-code-complete-guide-setup-pricing-workflows-2026) — 安装、定价与工作流
- [Claude Code vs Copilot vs Cursor 对比](/tutorials/claude-code-vs-copilot-vs-cursor-indie-hacker-comparison-2026) — 独立开发者视角对比

---
*最后更新:2026 年 7 月。基于数百次跨生产环境的 Claude Code 会话经验总结。*
仅供学习参考:案例基于公开来源整理,并可能经 AI 辅助起草、由编辑复核。不构成投资或收益建议,亦不保证结果。

相关推荐