Claude Code Prompt Engineering 实战手册:7 个让模型输出质量飞升的技巧

16 阅读5分钟

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"
)

参考资源


点赞收藏,下次需要时直接查模板。有好的提示词模板欢迎评论区分享。