标签#提示词#Prompt工程#效率提升#最佳实践会说话的人AI 事半功倍不会说话的人AI 反复绕路。Claude Code 虽然聪明但它的理解质量高度依赖你的表达方式。掌握提示词的核心技巧你就能从“让它试试”升级到“让它精准完成”。1. 为什么提示词如此重要Claude Code 拥有强大的 Agent 能力——自动读文件、执行命令、跨文件重构。但它不是读心术师。如果你的指令模糊、缺少约束、没有成功标准AI 可能会误解目标做了多余的事遗漏关键步骤导致任务不完整过度修改引入不必要的变更在错误的方向上浪费轮次消耗 token一个好的提示词就像一个清晰的任务简报告诉 AI“你现在在哪里”“要去哪里”“怎样算到了”。三个核心要素缺一不可上下文AI 需要知道哪些背景信息预期行动你希望 AI 做什么范围是什么成功标准如何判断任务完成2. 核心要素一上下文Context上下文帮助 AI 理解当前状况、约束条件、相关代码的位置。2.1 显式提供上下文不推荐帮我修复那个 bug。推荐在 src/controllers/authController.js 中登录接口 /api/login 返回 500 错误。错误日志显示TypeError: Cannot read property password of undefined。请分析原因并修复。AI 现在知道具体文件、路由、错误类型、错误消息。它可以直接定位。2.2 利用 file 引用文件你可以在提示词中使用file:路径来让 AI 优先读取某个文件file:README.md file:CLAUDE.md 根据项目规范为 utils/string.js 添加一个 capitalize 函数。AI 会先读取这两个文件了解项目规范比如是否要求 TypeScript、JSDoc 格式等再生成代码。2.3 引用行号范围如果你已经知道问题所在的具体行号可以精确指定在 src/checkout.js 的第 112-118 行变量 total 计算错误。请检查购物车商品价格累加逻辑。这可以减少 AI 的搜索成本。2.4 提供环境信息在CLAUDE.md中持久化项目级上下文技术栈、常用命令、目录结构每次对话 AI 都会自动加载。这是最高效的上下文提供方式。3. 核心要素二预期行动Expected Action明确告诉 AI 你希望它做什么、不做什么、边界在哪里。3.1 使用动词开头模糊指令清晰指令“这个函数性能好像不太好”“分析 src/utils/sort.js 中的 quickSort 函数指出时间复杂度并给出优化建议不需要修改代码”“把 console.log 去掉”“删除 src/ 下所有 .js 文件中的 console.log 语句但保留 console.error 和 console.warn”“写个测试”“为 src/helpers/validateEmail.js 编写单元测试使用 Jest覆盖空字符串、无效格式、有效邮箱三种情况”3.2 明确范围限定限制修改范围只修改 src/components/ 目录下的文件不要动 pages/ 或 utils/。限制操作类型只生成代码不要运行命令或修改配置文件。限制变更幅度保持原有的函数签名不变只修改内部实现。3.3 指定优先顺序按优先级处理 1. 先修复 login 接口的崩溃问题 2. 然后优化数据库查询如果时间允许 3. 最后更新 API 文档AI 会先确保第一项完成再考虑后续。4. 核心要素三成功标准Success Criteria告诉 AI “怎样算完成”。这能避免 AI 过早停止或者做了无用功。4.1 可验证的标准不推荐让程序运行起来。推荐完成以下所有项才算成功 - npm run build 无错误 - npm test 全部通过 - 访问 http://localhost:3000/health 返回 200 - 代码通过 ESLint无警告4.2 提供验收样例帮我实现一个 sum 函数接收数组并返回总和。验证标准 输入 [1,2,3] → 输出 6 输入 [] → 输出 0 输入 [5] → 输出 5AI 可以在生成代码后用这些样例自我验证。4.3 明确“完成”的信号任务完成后请输出 - 修改了哪些文件的列表 - 每个修改的简要说明 - 运行测试的结果通过/失败这样你一眼就能知道 AI 做了多少工作、是否达到预期。5. 提示词模板从优秀到卓越5.1 通用模板[背景/上下文] 在 {文件或模块} 中{当前状况描述} [要执行的任务] 请 {具体行动}要求 {约束条件} [成功标准] 完成后需要满足{可验证的条件} [输出要求] 可选请输出 {格式/内容}5.2 调试类任务模板**错误信息**{粘贴完整错误栈} **相关文件**{文件路径} **预期行为**正常情况下应该 {描述} **已完成尝试**我已经试过 {方法}但无效 **成功标准**重新运行 {命令} 后无错误且 {某个功能} 正常5.3 代码生成类任务模板**技术栈**{React/Node/Python 等} **文件位置**{目标路径} **功能描述**{输入} → {输出} → {副作用如有} **代码规范**参考 {现有文件} 的风格 **额外要求**添加 JSDoc 注释导出为默认 export **验收**用 {样例输入} 测试应返回 {期望输出}5.4 重构类任务模板**目标文件/目录**{路径} **当前模式**{描述现状} **期望模式**{描述目标架构} **不改变**对外 API 签名、返回值类型、现有测试的行为 **验证方式**运行 {测试命令} 全部通过且 {性能/可读性指标} 有改善 **风险控制**请在 Plan 模式下先输出计划我批准后再执行6. 实战案例对比好坏提示词案例 1添加日志糟糕的提示词加日志AI 可能到处加console.log格式混乱甚至泄露敏感信息。优秀的提示词在 src/services/payment.js 的 processPayment 函数内部在每个关键步骤验证、扣款、保存记录后添加结构化的日志 使用 logger.info格式为 [Payment] step: {stepName}, userId: {userId}, amount: {amount}。 不要记录信用卡号等敏感信息。 成功标准运行一次支付流程日志文件应包含三条顺序正确的记录。案例 2修复样式问题糟糕的提示词按钮颜色不对改成蓝色AI 可能不知道是哪个按钮改成什么蓝色改在哪里CSS 文件还是行内样式。优秀的提示词在 src/components/LoginButton.module.css 中将 .login-btn 的 background-color 从 #ccc 改为 #007bff品牌主色调并确保 hover 状态变为 #0056b3。 只修改这一个文件不影响其他按钮。 完成后在浏览器中按钮应显示为蓝色鼠标悬停时加深。案例 3生成 API 客户端糟糕的提示词写个请求用户信息的函数优秀的提示词在 src/api/user.js 中生成 fetchUserById 函数 - 接收参数 userId (number) - 使用 axios 发送 GET 请求到 /api/users/${userId} - 返回 PromiseUserUser 类型定义在 src/types/User.ts - 错误时抛出包含状态码的 AppError - 参考同文件中的 fetchPosts 函数的写法风格 - 成功标准调用 fetchUserById(1) 应返回与后端 fixtures 一致的用户对象且错误处理符合项目规范7. 高级技巧让 Claude Code 帮你优化提示词如果你不确定怎么写好提示词可以直接让 AI 帮你我想让 Claude Code 帮我完成以下任务{用非常口语描述你的需求} 请帮我重写成适合给 AI 编程助手用的清晰提示词包含上下文、行动、成功标准。AI 会输出一个结构化版本你可以直接复制使用。8. 常见错误与纠正错误后果纠正方法上下文缺失AI 需要额外读文件或猜测浪费 token提供文件路径、错误信息、相关代码片段行动模糊AI 做了多余的事或遗漏关键步骤用动词明确分析/修改/删除/生成/运行没有成功标准AI 可能中途停止或自我感觉良好但实际未完成添加可验证的验收条件测试、命令输出、文件变化范围过大AI 一次修改太多文件难以回滚限定目录或文件数量分阶段执行隐含假设AI 不了解项目特定约定如日期格式、命名规则在 CLAUDE.md 中写清楚或在提示词中明确一次性扔太多任务AI 可能漏掉中间步骤或混淆优先级拆分成多个独立的对话或子任务9. 与 CLAUDE.md 的协同CLAUDE.md中的内容相当于项目级的系统提示词每个会话都会自动加载。你可以把那些“每次都要说的背景信息”固化到CLAUDE.md中这样你的日常提示词就可以非常简短。示例CLAUDE.md片段## 项目规范 - 使用 TypeScript 严格模式 - 函数必须有 JSDoc 注释 - 禁止使用 any 类型 - API 错误统一使用 AppError 类 ## 常用命令 - 测试npm run test:unit - 构建npm run build - 开发服务器npm run dev ## 约定 - 日期格式化使用 date-fns时区为 UTC - 环境变量存储在 .env.local不提交 Git然后你的提示词可以简化为在 src/utils/date.ts 中添加 formatUTCDate 函数输入 Date 对象返回 YYYY-MM-DD 格式。参考项目规范。AI 会从CLAUDE.md中自动获取 JSDoc 要求、TypeScript 配置、日期库偏好等。10. 下篇预告提示词是“内功心法”而接下来的篇章将教你“外功招式”——构建高效Prompt的5条铁律从“帮我写段代码”到“精确施工”让你的指令像代码一样严谨。下一篇构建高效Prompt的5条铁律从“帮我写段代码”到“精确施工”思考题自测理解假设你要让 Claude Code 给一个 React 组件增加数据加载的 loading 状态。请写出一个包含“上下文、预期行动、成功标准”的提示词。回顾你最近使用 Claude Code 时的一个失败指令它缺少了三个要素中的哪一个如何改写为什么在提示词中写明“不做什么”如“不要修改配置文件”比只写“要做什么”更重要提示词是你和 AI 之间的契约。写清楚省下来的时间是自己的。下一章我们把契约变成铁律。
第十三篇:提示词(Prompt)核心技巧:上下文、预期行动、成功标准,缺一不可
标签#提示词#Prompt工程#效率提升#最佳实践会说话的人AI 事半功倍不会说话的人AI 反复绕路。Claude Code 虽然聪明但它的理解质量高度依赖你的表达方式。掌握提示词的核心技巧你就能从“让它试试”升级到“让它精准完成”。1. 为什么提示词如此重要Claude Code 拥有强大的 Agent 能力——自动读文件、执行命令、跨文件重构。但它不是读心术师。如果你的指令模糊、缺少约束、没有成功标准AI 可能会误解目标做了多余的事遗漏关键步骤导致任务不完整过度修改引入不必要的变更在错误的方向上浪费轮次消耗 token一个好的提示词就像一个清晰的任务简报告诉 AI“你现在在哪里”“要去哪里”“怎样算到了”。三个核心要素缺一不可上下文AI 需要知道哪些背景信息预期行动你希望 AI 做什么范围是什么成功标准如何判断任务完成2. 核心要素一上下文Context上下文帮助 AI 理解当前状况、约束条件、相关代码的位置。2.1 显式提供上下文不推荐帮我修复那个 bug。推荐在 src/controllers/authController.js 中登录接口 /api/login 返回 500 错误。错误日志显示TypeError: Cannot read property password of undefined。请分析原因并修复。AI 现在知道具体文件、路由、错误类型、错误消息。它可以直接定位。2.2 利用 file 引用文件你可以在提示词中使用file:路径来让 AI 优先读取某个文件file:README.md file:CLAUDE.md 根据项目规范为 utils/string.js 添加一个 capitalize 函数。AI 会先读取这两个文件了解项目规范比如是否要求 TypeScript、JSDoc 格式等再生成代码。2.3 引用行号范围如果你已经知道问题所在的具体行号可以精确指定在 src/checkout.js 的第 112-118 行变量 total 计算错误。请检查购物车商品价格累加逻辑。这可以减少 AI 的搜索成本。2.4 提供环境信息在CLAUDE.md中持久化项目级上下文技术栈、常用命令、目录结构每次对话 AI 都会自动加载。这是最高效的上下文提供方式。3. 核心要素二预期行动Expected Action明确告诉 AI 你希望它做什么、不做什么、边界在哪里。3.1 使用动词开头模糊指令清晰指令“这个函数性能好像不太好”“分析 src/utils/sort.js 中的 quickSort 函数指出时间复杂度并给出优化建议不需要修改代码”“把 console.log 去掉”“删除 src/ 下所有 .js 文件中的 console.log 语句但保留 console.error 和 console.warn”“写个测试”“为 src/helpers/validateEmail.js 编写单元测试使用 Jest覆盖空字符串、无效格式、有效邮箱三种情况”3.2 明确范围限定限制修改范围只修改 src/components/ 目录下的文件不要动 pages/ 或 utils/。限制操作类型只生成代码不要运行命令或修改配置文件。限制变更幅度保持原有的函数签名不变只修改内部实现。3.3 指定优先顺序按优先级处理 1. 先修复 login 接口的崩溃问题 2. 然后优化数据库查询如果时间允许 3. 最后更新 API 文档AI 会先确保第一项完成再考虑后续。4. 核心要素三成功标准Success Criteria告诉 AI “怎样算完成”。这能避免 AI 过早停止或者做了无用功。4.1 可验证的标准不推荐让程序运行起来。推荐完成以下所有项才算成功 - npm run build 无错误 - npm test 全部通过 - 访问 http://localhost:3000/health 返回 200 - 代码通过 ESLint无警告4.2 提供验收样例帮我实现一个 sum 函数接收数组并返回总和。验证标准 输入 [1,2,3] → 输出 6 输入 [] → 输出 0 输入 [5] → 输出 5AI 可以在生成代码后用这些样例自我验证。4.3 明确“完成”的信号任务完成后请输出 - 修改了哪些文件的列表 - 每个修改的简要说明 - 运行测试的结果通过/失败这样你一眼就能知道 AI 做了多少工作、是否达到预期。5. 提示词模板从优秀到卓越5.1 通用模板[背景/上下文] 在 {文件或模块} 中{当前状况描述} [要执行的任务] 请 {具体行动}要求 {约束条件} [成功标准] 完成后需要满足{可验证的条件} [输出要求] 可选请输出 {格式/内容}5.2 调试类任务模板**错误信息**{粘贴完整错误栈} **相关文件**{文件路径} **预期行为**正常情况下应该 {描述} **已完成尝试**我已经试过 {方法}但无效 **成功标准**重新运行 {命令} 后无错误且 {某个功能} 正常5.3 代码生成类任务模板**技术栈**{React/Node/Python 等} **文件位置**{目标路径} **功能描述**{输入} → {输出} → {副作用如有} **代码规范**参考 {现有文件} 的风格 **额外要求**添加 JSDoc 注释导出为默认 export **验收**用 {样例输入} 测试应返回 {期望输出}5.4 重构类任务模板**目标文件/目录**{路径} **当前模式**{描述现状} **期望模式**{描述目标架构} **不改变**对外 API 签名、返回值类型、现有测试的行为 **验证方式**运行 {测试命令} 全部通过且 {性能/可读性指标} 有改善 **风险控制**请在 Plan 模式下先输出计划我批准后再执行6. 实战案例对比好坏提示词案例 1添加日志糟糕的提示词加日志AI 可能到处加console.log格式混乱甚至泄露敏感信息。优秀的提示词在 src/services/payment.js 的 processPayment 函数内部在每个关键步骤验证、扣款、保存记录后添加结构化的日志 使用 logger.info格式为 [Payment] step: {stepName}, userId: {userId}, amount: {amount}。 不要记录信用卡号等敏感信息。 成功标准运行一次支付流程日志文件应包含三条顺序正确的记录。案例 2修复样式问题糟糕的提示词按钮颜色不对改成蓝色AI 可能不知道是哪个按钮改成什么蓝色改在哪里CSS 文件还是行内样式。优秀的提示词在 src/components/LoginButton.module.css 中将 .login-btn 的 background-color 从 #ccc 改为 #007bff品牌主色调并确保 hover 状态变为 #0056b3。 只修改这一个文件不影响其他按钮。 完成后在浏览器中按钮应显示为蓝色鼠标悬停时加深。案例 3生成 API 客户端糟糕的提示词写个请求用户信息的函数优秀的提示词在 src/api/user.js 中生成 fetchUserById 函数 - 接收参数 userId (number) - 使用 axios 发送 GET 请求到 /api/users/${userId} - 返回 PromiseUserUser 类型定义在 src/types/User.ts - 错误时抛出包含状态码的 AppError - 参考同文件中的 fetchPosts 函数的写法风格 - 成功标准调用 fetchUserById(1) 应返回与后端 fixtures 一致的用户对象且错误处理符合项目规范7. 高级技巧让 Claude Code 帮你优化提示词如果你不确定怎么写好提示词可以直接让 AI 帮你我想让 Claude Code 帮我完成以下任务{用非常口语描述你的需求} 请帮我重写成适合给 AI 编程助手用的清晰提示词包含上下文、行动、成功标准。AI 会输出一个结构化版本你可以直接复制使用。8. 常见错误与纠正错误后果纠正方法上下文缺失AI 需要额外读文件或猜测浪费 token提供文件路径、错误信息、相关代码片段行动模糊AI 做了多余的事或遗漏关键步骤用动词明确分析/修改/删除/生成/运行没有成功标准AI 可能中途停止或自我感觉良好但实际未完成添加可验证的验收条件测试、命令输出、文件变化范围过大AI 一次修改太多文件难以回滚限定目录或文件数量分阶段执行隐含假设AI 不了解项目特定约定如日期格式、命名规则在 CLAUDE.md 中写清楚或在提示词中明确一次性扔太多任务AI 可能漏掉中间步骤或混淆优先级拆分成多个独立的对话或子任务9. 与 CLAUDE.md 的协同CLAUDE.md中的内容相当于项目级的系统提示词每个会话都会自动加载。你可以把那些“每次都要说的背景信息”固化到CLAUDE.md中这样你的日常提示词就可以非常简短。示例CLAUDE.md片段## 项目规范 - 使用 TypeScript 严格模式 - 函数必须有 JSDoc 注释 - 禁止使用 any 类型 - API 错误统一使用 AppError 类 ## 常用命令 - 测试npm run test:unit - 构建npm run build - 开发服务器npm run dev ## 约定 - 日期格式化使用 date-fns时区为 UTC - 环境变量存储在 .env.local不提交 Git然后你的提示词可以简化为在 src/utils/date.ts 中添加 formatUTCDate 函数输入 Date 对象返回 YYYY-MM-DD 格式。参考项目规范。AI 会从CLAUDE.md中自动获取 JSDoc 要求、TypeScript 配置、日期库偏好等。10. 下篇预告提示词是“内功心法”而接下来的篇章将教你“外功招式”——构建高效Prompt的5条铁律从“帮我写段代码”到“精确施工”让你的指令像代码一样严谨。下一篇构建高效Prompt的5条铁律从“帮我写段代码”到“精确施工”思考题自测理解假设你要让 Claude Code 给一个 React 组件增加数据加载的 loading 状态。请写出一个包含“上下文、预期行动、成功标准”的提示词。回顾你最近使用 Claude Code 时的一个失败指令它缺少了三个要素中的哪一个如何改写为什么在提示词中写明“不做什么”如“不要修改配置文件”比只写“要做什么”更重要提示词是你和 AI 之间的契约。写清楚省下来的时间是自己的。下一章我们把契约变成铁律。