目录

Claude Code交互式提示词:让AI听懂你的10个技巧 🎯

📅 更新于:2026年5月 | ✍️ 原创文章,转载请注明出处


📌 目录

  1. 交互式提示词 vs 普通提示词
  2. 技巧1:明确目标,不要模糊指令
  3. 技巧2:提供上下文,但要精简
  4. 技巧3:分步指令,不要一次性说完
  5. 技巧4:明确约束条件
  6. 技巧5:指定输出格式
  7. 技巧6:使用"做/不做"对比
  8. 技巧7:引用具体文件和代码
  9. 技巧8:利用Claude Code的特殊语法
  10. 技巧9:处理复杂任务的拆解策略
  11. 技巧10:反馈与修正的艺术
  12. 实战案例对比
  13. 总结

1. 交互式提示词 vs 普通提示词

1.1 核心区别

维度 ChatGPT/Claude网页版 Claude Code
上下文 对话历史 项目文件 + 对话历史
执行能力 只能生成代码 能直接执行、修改文件
反馈循环 人工复制执行 自动执行并返回结果
提示词重点 描述任务 描述任务 + 约束范围

1.2 Claude Code的独特优势

# Claude Code可以:
✅ 直接读取你的项目文件
✅ 执行命令并查看结果
✅ 修改代码并自动保存
✅ 运行测试并报告问题

# 所以你的提示词可以更"信任"它:
"帮我重构UserService" → 它会自己读代码、理解结构、执行修改

1.3 交互式提示词的核心原则

🎯 原则1:说"做什么",而不是"怎么做"
🎯 原则2:相信Claude能读代码,不用手动贴
🎯 原则3:用自然语言,像跟同事说话
🎯 原则4:及时反馈,让它调整方向

2. 技巧1:明确目标,不要模糊指令

❌ 模糊指令的问题

# ❌ 太模糊
"帮我优化一下代码"

# Claude会困惑:
# - 优化什么?性能?可读性?结构?
# - 哪个文件?整个项目?
# - 优化到什么程度?
# ❌ 更模糊
"写得好一点"

# 什么算"好"?

✅ 明确指令示例

# ✅ 明确目标
"优化UserService的getUserById方法的性能,目前查询太慢了"

# Claude知道:
# - 目标:性能优化
# - 范围:UserService.getUserById
# - 问题:查询慢
# ✅ 更明确
"重构src/utils/format.ts里的函数,提取公共逻辑,减少重复代码"

# Claude知道:
# - 动作:重构
# - 位置:src/utils/format.ts
# - 方法:提取公共逻辑
# - 目标:减少重复

📋 目标明确化清单

要素 问题 示例
做什么 动作是什么? 重构 / 优化 / 修复 / 添加
范围 改动哪里? 某个文件 / 某个方法 / 整个模块
问题 解决什么? 性能差 / 有bug / 代码重复
标准 什么算完成? 测试通过 / 时间减少50%

3. 技巧2:提供上下文,但要精简

❌ 上下文过多

# ❌ 信息过载
"我在做一个电商平台,有用户模块、商品模块、订单模块、支付模块、
物流模块、营销模块、数据分析模块,用的是React + TypeScript + 
Vite + Ant Design + Zustand + React Query,后端是Java + Spring Boot,
数据库是MySQL和Redis,还用了Kafka做消息队列,现在要修改用户模块的
登录功能..."

# Claude已经晕了

✅ 精简上下文

# ✅ 只说相关的
"修改用户登录功能,目前的密码验证逻辑有bug,密码错误时没有正确提示"

# Claude知道:
# - 功能:用户登录
# - 问题:密码验证bug
# - 现象:错误提示缺失
# ✅ 更好的方式:让Claude自己看
"看一下src/api/auth.ts里的login函数,帮我修复密码验证的bug"

# Claude会自己读代码,不用你解释

🎯 上下文精简原则

1. 只说相关的,不要背景介绍
2. 相信Claude能读代码,不用贴大段代码
3. 如果需要背景,放在CLAUDE.md里,不用每次重复
4. 复杂背景用"看一下xxx文件"代替手动描述

4. 技巧3:分步指令,不要一次性说完

❌ 一次性说完的问题

# ❌ 任务太大
"帮我做一个完整的用户管理系统,包括登录、注册、密码重置、
用户列表、用户详情、用户编辑、用户删除、权限管理、角色管理,
还要有单元测试和集成测试"

# Claude可能会:
# - 漏掉某些功能
# - 实现顺序不对
# - 中途出错无法继续

✅ 分步执行

# ✅ 第一步:先做登录
"先实现用户登录功能,包括:
1. 登录表单组件
2. 登录API请求
3. Token存储
4. 登录状态管理"

# 等第一步完成后...

# ✅ 第二步:再做注册
"接下来实现注册功能,复用登录的表单组件"

# 逐步推进

📋 分步策略

策略 适用场景 示例
按功能分 多功能需求 登录 → 注册 → 密码重置
按层分 全栈开发 数据库 → API → 前端
按难度分 复杂任务 简单功能 → 复杂逻辑 → 优化
按依赖分 有依赖关系 基础组件 → 业务组件 → 页面

💡 分步指令模板

# 模板
"第一步:实现[功能A],包括[子任务1]、[子任务2]"
"第二步:基于[功能A],实现[功能B]"
"第三步:为[功能A和B]添加测试"

5. 技巧4:明确约束条件

❌ 缺乏约束

# ❌ 没有约束
"帮我写一个用户列表组件"

# Claude可能会:
# - 用class组件而不是函数组件
# - 用Redux而不是Zustand
# - 用CSS而不是Tailwind
# - 没有分页
# - 没有加载状态

✅ 明确约束

# ✅ 技术约束
"用函数组件 + TypeScript + Tailwind CSS写用户列表组件"

# ✅ 功能约束
"用户列表需要支持:分页、搜索、批量删除"

# ✅ 格式约束
"代码要符合项目的ESLint规范,参考src/components/UserCard.tsx的风格"

# ✅ 完整约束
"用函数组件 + TypeScript + Tailwind CSS写用户列表组件,
需要支持分页和搜索,参考src/components/UserCard.tsx的代码风格"

🎯 常见约束类型

约束类型 示例
技术栈 “用React,不要Vue”
版本 “用React 18的新特性”
风格 “用函数组件,不要class”
“用Zustand,不要Redux”
规范 “遵循项目的命名规范”
性能 “要支持虚拟滚动”
兼容 “要兼容IE11”

6. 技巧5:指定输出格式

❌ 不指定格式

# ❌ 不指定格式
"帮我写个文档"

# Claude可能会:
# - 写Markdown
# - 写纯文本
# - 写Word格式
# - 格式混乱

✅ 指定格式

# ✅ 指定Markdown格式
"用Markdown格式写API文档,包含:标题、请求方式、URL、参数表格、响应示例"

# ✅ 指定代码格式
"生成TypeScript接口定义,使用export导出"

# ✅ 指定测试格式
"用Jest + React Testing Library写单元测试,包含describe和it块"

📋 常用格式指定

# 代码格式
"生成TypeScript代码"
"用ES6语法"
"使用async/await"

# 文档格式
"用Markdown格式"
"包含代码示例"
"用中文注释"

# 测试格式
"用Jest格式"
"包含beforeEach和afterEach"
"测试用例用中文描述"

7. 技巧6:使用"做/不做"对比

为什么对比更有效?

❌ 只说"不要做什么":
"不要用var"
→ Claude可能会用let或const,但不知道用哪个

✅ 说"做什么" + "不做什么":
"用const声明常量,用let声明变量,不要用var"
→ Claude明确知道用const和let

📋 对比模板

# 组件写法
"用函数组件 + Hooks,不要用class组件"

# 状态管理
"用Zustand管理全局状态,用useState管理局部状态,不要用Redux"

# 样式方案
"用Tailwind CSS写样式,不要写CSS文件,不要用内联样式"

# 错误处理
"用try-catch处理异步错误,用ErrorBoundary处理渲染错误,不要吞掉错误"

🎯 常见对比场景

场景 不做
组件 函数组件 + Hooks class组件
状态 Zustand / useState Redux
样式 Tailwind CSS CSS文件 / 内联
异步 async/await .then()链式
类型 TypeScript JavaScript
测试 Jest + RTL 无测试

8. 技巧7:引用具体文件和代码

❌ 不引用具体代码

# ❌ 描述太抽象
"帮我改一下登录的bug"

# Claude不知道:
# - 哪个文件?
# - 哪个函数?
# - 什么bug?

✅ 引用具体文件

# ✅ 指定文件
"看一下src/api/auth.ts里的login函数"

# ✅ 指定代码行
"在src/components/LoginForm.tsx的第45行,表单验证逻辑有问题"

# ✅ 指定错误
"运行npm test失败了,错误信息是xxx"

💡 引用技巧

# 让Claude自己读
"帮我看看src/utils/format.ts里的formatDate函数,有没有更好的写法"

# 引用错误信息
"报错了:TypeError: Cannot read property 'name' of undefined,帮我修复"

# 引用测试结果
"测试失败了,看一下test/user.test.ts的输出"

📋 引用格式

引用类型 格式 示例
文件 “看一下[路径]” “看一下src/api/auth.ts”
方法 “[文件]里的[方法]” “auth.ts里的login方法”
行号 “第N行” “第45行”
错误 “报错了:[错误信息]” “报错了:TypeError…”
测试 “测试失败了” “npm test失败了”

9. 技巧8:利用Claude Code的特殊语法

9.1 斜杠命令

# 查看帮助
/help

# 查看当前状态
/status

# 清除对话历史
/clear

# 退出
/exit

9.2 文件引用语法

# 引用文件
@src/api/auth.ts

# 引用多个文件
@src/api/auth.ts @src/components/Login.tsx

# 引用目录
@src/utils/

9.3 任务描述语法

# 简单任务
"修复这个bug"

# 复杂任务
"任务:
1. 读取src/api/user.ts
2. 找到getUserById方法
3. 添加错误处理
4. 运行测试验证"

💡 特殊语法示例

# 结合文件引用
"看一下@src/api/auth.ts里的login函数,帮我添加错误处理"

# 结合斜杠命令
/status
"看一下当前项目状态,然后帮我修复测试失败的问题"

# 多文件引用
"对比@src/components/UserCard.tsx和@src/components/OrderCard.tsx,提取公共组件"

10. 技巧9:处理复杂任务的拆解策略

10.1 复杂任务的特征

复杂任务通常有:
- 多个子任务
- 子任务之间有依赖
- 需要多次迭代
- 可能有意外情况

10.2 拆解策略

策略1:按功能拆解
# 原始需求
"做一个用户管理系统"

# 拆解后
"第一步:实现用户登录"
"第二步:实现用户注册"
"第三步:实现用户列表"
"第四步:实现用户编辑"
"第五步:实现用户删除"
策略2:按层拆解
# 原始需求
"做一个完整的用户模块"

# 拆解后
"第一步:设计数据库表结构"
"第二步:实现后端API"
"第三步:实现前端页面"
"第四步:添加单元测试"
策略3:按难度拆解
# 原始需求
"优化整个项目的性能"

# 拆解后
"第一步:找出性能瓶颈"
"第二步:优化数据库查询"
"第三步:优化前端渲染"
"第四步:添加缓存策略"

📋 拆解模板

# 模板
"我要实现[大目标],分步骤来:
1. [第一步]:[小目标1]
2. [第二步]:[小目标2](依赖第一步)
3. [第三步]:[小目标3](依赖第二步)

先从第一步开始。"

💡 复杂任务示例

# 示例:实现购物车功能
"实现购物车功能,分步骤来:
1. 设计购物车的数据结构(Cart类型定义)
2. 实现购物车的Zustand store
3. 实现购物车页面组件
4. 实现添加到购物车的功能
5. 实现修改数量的功能
6. 实现删除商品的功能
7. 实现计算总价的功能
8. 添加单元测试

先从第一步开始,设计数据结构。"

11. 技巧10:反馈与修正的艺术

11.1 正确的反馈方式

# ❌ 错误的反馈
"不对"
"重新写"
"太差了"

# Claude不知道哪里不对,怎么改
# ✅ 正确的反馈
"这个方法返回的类型应该是UserDTO,不是User"
"分页逻辑不对,应该是从第0页开始,不是第1页"
"样式要参考UserCard组件的写法"

11.2 反馈的结构

好的反馈包含:
1. 问题是什么(明确指出)
2. 为什么是问题(原因)
3. 应该怎么改(方向)

📋 反馈模板

# 类型问题
"返回类型不对,应该是[正确类型],不是[当前类型]"

# 逻辑问题
"逻辑有问题,[具体问题],应该改为[正确逻辑]"

# 风格问题
"代码风格要参考[文件名]的写法"

# 功能问题
"功能不完整,缺少[功能],请补充"

💡 反馈示例

# 示例1:类型问题
"getUserById返回的类型不对,应该是UserDTO,里面包含id、name、email三个字段,
现在返回的是User实体,包含了密码等敏感信息"

# 示例2:逻辑问题
"分页逻辑有问题,前端传的page参数是从1开始的,但后端查询应该是从0开始,
需要做一下转换:offset = (page - 1) * pageSize"

# 示例3:风格问题
"代码风格要参考src/components/UserCard.tsx的写法:
- 使用const声明组件
- 使用interface定义Props
- 使用Tailwind CSS写样式"

12. 实战案例对比

12.1 案例1:创建组件

❌ 不好的提示词
"帮我写个按钮组件"

问题

  • 用什么技术?
  • 什么样式?
  • 什么功能?
  • 什么规范?
✅ 好的提示词
"创建一个通用的Button组件,要求:
1. 使用React + TypeScript + Tailwind CSS
2. 支持variant属性:primary、secondary、danger
3. 支持size属性:small、medium、large
4. 支持loading状态
5. 支持disabled状态
6. 代码风格参考src/components/Input.tsx"

优点

  • 技术栈明确
  • 功能完整
  • 有参考示例

12.2 案例2:修复Bug

❌ 不好的提示词
"登录有bug,帮我修一下"

问题

  • 什么bug?
  • 哪个文件?
  • 什么现象?
✅ 好的提示词
"登录功能有bug:
- 现象:输入正确密码后,提示'密码错误'
- 位置:src/api/auth.ts的login函数
- 预期:应该返回token并跳转到首页
帮我看看是什么问题"

优点

  • 现象清楚
  • 位置明确
  • 预期明确

12.3 案例3:重构代码

❌ 不好的提示词
"帮我重构一下用户模块"

问题

  • 重构什么?
  • 为什么重构?
  • 重构到什么程度?
✅ 好的提示词
"重构src/services/user.ts里的代码:
- 问题:getUserById和getUserByEmail有大量重复逻辑
- 目标:提取公共的queryUser方法
- 要求:保持原有的错误处理和日志记录"

优点

  • 问题明确
  • 目标清晰
  • 有约束条件

12.4 案例4:添加功能

❌ 不好的提示词
"给用户列表加个搜索功能"

问题

  • 什么搜索?
  • 搜什么字段?
  • 什么交互?
✅ 好的提示词
"给用户列表添加搜索功能:
- 搜索字段:用户名、邮箱、手机号
- 交互:输入框 + 防抖(300ms)+ 回车搜索
- UI:参考OrderList页面的搜索栏样式
- 位置:src/pages/users/UserList.tsx"

优点

  • 功能完整
  • 交互明确
  • 有参考示例

13. 总结

13.1 10个技巧速查表

序号 技巧 核心要点
1 明确目标 说做什么,不要模糊指令
2 精简上下文 只说相关的,相信Claude能读代码
3 分步指令 大任务拆成小步骤
4 明确约束 技术栈、风格、功能都要说清楚
5 指定格式 代码、文档、测试的格式要明确
6 做/不做对比 用对比让指令更清晰
7 引用具体代码 让Claude自己读,不用手动贴
8 特殊语法 利用@引用和斜杠命令
9 任务拆解 复杂任务按功能/层/难度拆
10 反馈修正 指出问题 + 原因 + 方向

13.2 万能提示词模板

# 模板
"[动作] [目标],要求:
1. 技术栈:[技术约束]
2. 功能:[功能要求]
3. 风格:[代码风格]
4. 参考:[参考文件]"

# 示例
"创建用户卡片组件,要求:
1. 技术栈:React + TypeScript + Tailwind CSS
2. 功能:显示用户头像、姓名、邮箱
3. 风格:参考src/components/ProductCard.tsx
4. 参考:使用函数组件 + const声明"

13.3 常见错误速查

错误 正确做法
❌ “帮我优化代码” ✅ “优化getUserById的查询性能”
❌ “写得好一点” ✅ “参考UserCard的写法重构”
❌ “有bug” ✅ “第45行报TypeError…”
❌ “做个功能” ✅ “实现搜索功能,支持用户名和邮箱”

13.4 下篇预告

📌 下一篇:我们将深入探讨Claude Code自定义命令——如何用.claude/commands/打造你的专属提示词库,实现团队共享和一键复用。


📚 参考资料

  1. Anthropic官方文档 - Claude Code Prompting - 2026年5月
  2. Claude Code最佳实践 - 官方指南
  3. Prompt Engineering Guide - 提示词工程通用指南

💬 你在使用Claude Code时有什么提示词技巧?欢迎在评论区分享!

📌 如果这篇文章对你有帮助,别忘了点赞收藏,关注我获取更多Claude Code实战技巧!

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐