Claude Code Prompt Engineering 实战手册:7 个让模型输出质量飞升的技巧
系统整理 Claude Code 提示词最佳实践,附可复用的提示词模板。
核心理念
Claude Code 的提示词工程和通用 LLM 提示词有所不同:它运行在代码库上下文中,需要精确的文件引用和可验证的输出。
本文覆盖:
- 触发深度推理的关键词
- 文件引用最佳实践
- 验证机制设计
- 任务分解策略
- 数据传输最优方式
技巧 1:ultrathink 触发扩展推理
用法
在提示词开头加入 ultrathink 关键词:
ultrathink: 分析 @src/services/payment.ts 的并发安全性,
找出潜在的竞态条件,并给出修复方案
原理
ultrathink 触发 Claude 的 Extended Thinking 模式,模型会在生成输出前进行更长时间的内部推理,适合需要深度分析的场景。
适用场景 vs 不适用场景
✅ 适用:
- 复杂 bug 根因分析
- 架构设计决策
- 安全漏洞审查
- 性能瓶颈分析
❌ 不适用:
- 简单代码格式化
- 直接的 CRUD 实现
- 文档生成
- 简单的重命名操作
替代关键词
think ultra-hard → 同等效果
think deeply → 稍弱,但仍比默认更深入
技巧 2:文件引用语法
@ 前缀引用(推荐)
# 引用单个文件
参考 @src/utils/auth.ts 的写法实现权限检查
# 引用目录
重构 @src/components/ 目录下所有组件的错误处理逻辑
# 引用多个文件
对比 @src/old/api.ts 和 @src/new/api.ts,解释改动的原因
为什么 @ 引用比文字描述好
| 对比维度 | 文字描述 | @ 引用 |
|---|---|---|
| 准确性 | Claude 需要猜测路径 | 直接读取文件 |
| Token 消耗 | 高(描述文字 + 读取文件) | 低(直接引用) |
| 出错率 | 路径可能找不到 | 精确定位 |
技巧 3:内置验证机制
模板
[任务描述]
验证要求:
1. 运行 npm test,确保所有测试通过
2. 运行 npm run lint,确保无 lint 错误
3. 检查 [具体业务逻辑] 是否符合预期
完整示例
重构 @src/api/user.ts 中的 getUserById 函数:
1. 改用 async/await 替换 Promise 链式调用
2. 添加错误边界处理
3. 加上 JSDoc 注释
验证要求:
- 运行 npm test 确保 user.test.ts 所有测试通过
- 运行 npm run build 确保类型检查无错误
效果
内置验证将 Claude 的工作流从"执行"变成"执行→验证→修复"的闭环,显著提升代码质量。
技巧 4:面试式需求澄清
使用场景
需求模糊、功能复杂、涉及多模块时使用。
提示词模板
我需要实现 [功能描述]。
在开始写代码之前,请:
1. 向我提问,把所有不明确的需求问清楚(最多 10 个问题)
2. 基于我的回答整理成 SPEC.md
3. 我确认 SPEC.md 后再开始实现
Claude 通常会问的问题类型
技术选型类:
- 用什么认证方式?JWT / Session / OAuth?
- 数据存在哪里?数据库类型?
业务逻辑类:
- 边界条件怎么处理?
- 错误情况的用户体验是什么?
集成相关:
- 需要和哪些现有模块交互?
- API 格式有约束吗?
技巧 5:数据传输最佳实践
管道传输 vs 复制粘贴
# ❌ 复制粘贴(容易截断、格式丢失)
# 手动复制错误日志,可能丢失关键堆栈信息
# ✅ 管道传输(完整、准确)
cat error.log | claude "分析这个错误"
npm test 2>&1 | claude "哪些测试失败了,可能原因是什么"
git diff HEAD~1 | claude "写这次改动的 commit message,遵循 Conventional Commits"
docker logs container_name 2>&1 | tail -100 | claude "分析这些日志中的异常"
结构化数据传输
# 传递 JSON 数据
cat api_response.json | claude "这个 API 响应里有什么异常字段"
# 传递数据库查询结果
psql -c "SELECT * FROM users LIMIT 10" | claude "这个表结构合理吗"
技巧 6:任务分解提示词
对于复杂功能
我需要实现 [复杂功能]。
请先:
1. 将这个功能分解成独立的子任务
2. 标明每个子任务的预计复杂度(低/中/高)
3. 标明子任务之间的依赖关系
4. 按推荐的实现顺序排列
列出分解结果后等待我确认,再开始执行第一个子任务。
对于大规模重构
我需要重构 @src/ 目录下的认证模块。
分解原则:
- 每个子任务应该可以独立测试
- 每个子任务完成后系统仍然可以正常运行
- 优先处理基础层(工具函数、类型定义)
请给出分解方案。
技巧 7:延迟执行模式
当你想先审查方案再执行时:
分析 @src/database/connection.ts 的性能瓶颈。
给出:
1. 问题诊断
2. 优化方案(至少 2 个方案,说明各自的 trade-off)
3. 推荐方案及理由
先不要修改任何代码,等我选定方案后再执行。
可复用提示词模板库
Bug 修复模板
[症状描述]
错误信息:
[粘贴或管道传入错误]
复现步骤:
1.
2.
相关文件:@[file1] @[file2]
请:
1. 分析根因
2. 给出修复方案
3. 修复后运行 [测试命令] 验证
Code Review 模板
请对 @[file] 进行代码审查,关注:
1. 潜在的 bug 和边界条件
2. 安全漏洞(SQL 注入、XSS、CSRF 等)
3. 性能问题
4. 代码可读性
每个问题标注严重程度:[Critical / Warning / Suggestion]
重构模板
重构 @[file],目标:
- [重构目标 1]
- [重构目标 2]
约束:
- 保持对外接口不变
- 所有现有测试仍然通过
- 不引入新的依赖
完成后运行 [测试命令] 验证。
API 配置参考
以 ccaihub.com 为例(兼容官方 API):
# 环境变量配置
export ANTHROPIC_BASE_URL="https://ccaihub.com/v1"
export ANTHROPIC_API_KEY="your-key"
# 或者写入 .env 文件
echo 'ANTHROPIC_BASE_URL=https://ccaihub.com/v1' >> .env
echo 'ANTHROPIC_API_KEY=your-key' >> .env
# Python SDK
from anthropic import Anthropic
client = Anthropic(
base_url="https://ccaihub.com/v1",
api_key="your-key"
)
参考资源
- Anthropic Prompt Engineering Guide
- ccaihub.com - Claude API 中转站
点赞收藏,下次需要时直接查模板。有好的提示词模板欢迎评论区分享。