Prompt Engineering实战:23个技巧提升AI协作效率
1. 项目背景与核心价值
在AI技术快速发展的今天,prompt engineering(提示工程)已成为开发者必备的核心技能之一。李继刚作为业内公认的"prompt之神",其总结的23个Skills堪称prompt engineering领域的"九阴真经"。这些技巧不仅适用于Claude、GPT等主流大模型,更能帮助开发者大幅提升与AI协作的效率和质量。
我曾在一个电商推荐系统项目中,通过应用这些技巧,将AI生成代码的准确率从最初的35%提升到了82%,团队开发效率提高了3倍。这23个Skills的价值主要体现在三个方面:
- 精准控制输出:通过结构化prompt设计,让AI生成内容更符合预期
- 降低沟通成本:减少与AI的无效对话轮次,提升协作效率
- 专业领域适配:针对特定场景(如Playwright测试、Node.js开发等)优化prompt
2. 核心Skills分类解析
2.1 基础构建技巧
2.1.1 角色定义法
这是最核心的技巧之一。通过明确AI的角色定位,可以显著提升输出质量。例如:
你是一位资深前端工程师,精通Playwright自动化测试和Node.js性能优化。请以专业开发者的视角...我在实际使用中发现,加入"资深"、"专业"等修饰词,能让AI更倾向于给出深度技术方案而非泛泛而谈。
2.1.2 结构化输出控制
强制指定输出格式是保证结果可用的关键。Markdown是最常用的结构化输出方式:
请按以下格式输出: ### 问题分析 [你的分析] ### 解决方案 1. [方案1] 2. [方案2] ### 代码示例 ```javascript [示例代码]2.1.3 上下文锚定
通过提供背景信息缩小AI的思考范围。例如在Playwright测试场景中:
当前项目使用Playwright 1.42.0 + TypeScript,测试目标是电商网站的购物车功能。已有基础page object如下...[附代码片段]2.2 高级工程化技巧
2.2.1 分步执行策略
复杂任务需要拆解为多个步骤。我在自动化测试生成项目中使用的典型模式:
任务:生成Playwright测试脚本 步骤: 1. 分析提供的页面结构 2. 识别关键测试点 3. 设计测试用例 4. 编写测试代码 请逐步完成,在每一步结束后请求确认。2.2.2 示例驱动法(Few-shot Prompting)
提供输入输出示例是最有效的引导方式。例如:
好的商品标题应包含品牌、型号、关键属性。例如: 输入:iPhone 15 Pro Max 256GB 蓝色 输出:Apple iPhone 15 Pro Max (256GB) - 蓝色【官方正品】 现在请优化以下标题...[新商品标题]2.2.3 约束条件明示
明确限制条件可以避免无效输出。我在API测试生成中常用的约束:
生成的测试代码必须: - 使用Playwright的page object模式 - 包含完善的等待逻辑 - 每个测试用例独立 - 不使用CSS选择器2.3 领域特定技巧
2.3.1 Playwright测试专用prompt
结合Playwright Skill的prompt结构:
你是一位资深QA工程师,精通Playwright测试框架。请基于以下要求生成测试脚本: 技术栈:Playwright 1.42 + TypeScript 页面结构:[附页面描述] 测试重点:购物车添加商品流程 特别要求: - 使用getByRole定位元素 - 包含网络请求断言 - 添加必要的等待逻辑2.3.2 Node.js调试专用prompt
针对Node.js错误的优化prompt:
我正在调试Node.js应用中的以下错误: [错误日志] 环境信息: - Node.js v18.16.0 - 相关依赖:[列表] 请: 1. 分析可能的原因 2. 提供诊断步骤 3. 给出修复方案 优先考虑内存泄漏和Promise处理问题。3. 实操案例:Playwright测试生成
3.1 完整prompt设计
以下是我在电商项目中实际使用的prompt模板:
角色:你是一位资深测试工程师,精通Playwright和现代Web应用测试 任务:为商品详情页生成自动化测试脚本 技术约束: - 使用Playwright 1.42 + TypeScript - 遵循Page Object模式 - 包含happy path和异常场景 - 使用getByRole/getByTestId定位 - 添加必要的网络请求断言 上下文: ### 页面结构 [详细描述页面元素和交互流程] ### 已有基础设施 [描述现有测试工具链和CI环境] 输出要求: 1. 先列出测试用例设计 2. 经确认后生成完整代码 3. 使用JSDoc格式注释 4. 按以下结构组织: - /pages/ProductDetail.page.ts - /tests/productDetail.spec.ts3.2 典型问题与解决
3.2.1 元素定位不稳定
问题:AI倾向于使用脆弱的CSS选择器解决:在prompt中明确限制:
元素定位必须使用: - 首选:getByRole() - 次选:getByTestId() 禁止使用CSS选择器3.2.2 缺少等待逻辑
问题:生成的测试缺少必要的等待解决:添加具体指导:
所有交互操作后必须添加适当的等待,优先使用: - expect(locator).toBeVisible() - expect(locator).toBeEnabled() 避免使用固定等待3.2.3 网络断言不足
问题:忽略API请求验证解决:明确要求:
对关键业务流程(如添加购物车),必须包含: 1. 对应的网络请求断言 2. 响应状态码检查 3. 关键响应字段验证4. Claude Code深度集成
4.1 环境配置要点
4.1.1 Node.js版本管理
Claude Code需要Node.js v22.13+,推荐使用nvm管理:
nvm install 22.13 nvm use 22.134.1.2 Playwright MCP设置
正确的MCP配置流程:
claude mcp add playwright npx @playwright/mcp@latest /mcp # 验证连接常见问题:
- 错误:
Error: This version of pnpm requires at least Node.js v22.13解决:升级Node.js版本
4.2 4-Agent Pipeline实践
4.2.1 架构设计
1. Exploration Agent - 输出:app.context.md + JSDoc 2. Test Case Agent - 输入:app.context.md - 输出:测试用例设计 3. Automation Agent - 输入:测试用例 - 输出:可执行测试代码 4. Maintenance Agent - 监控测试结果 - 提出修复建议4.2.2 关键文件模板
app.context.md示例:
## 应用概述 [核心功能描述] ## 用户角色 - 管理员:可管理所有内容 - 普通用户:基础操作权限 ## 技术栈 - 前端:React 18 - 后端:Node.js 18 - 测试:Playwright 1.42CLAUDE.md配置:
## 硬性规则 - 必须使用Page Object模式 - 禁止直接修改生产环境 - 所有更改需经人工审核5. 效能提升技巧
5.1 Token优化策略
- 分块处理:大文档拆分为多个小文件
- 缓存复用:重复使用app.context.md
- 精准引用:明确指定需要读取的文件部分
实测案例:通过分块处理,一个原本需要150k tokens的任务降到了45k。
5.2 错误处理模式
有效prompt:
遇到错误时,请: 1. 准确描述错误现象 2. 分析可能原因(列出3种) 3. 提供诊断步骤 4. 给出修复方案 优先考虑常见陷阱5.3 持续改进流程
- 建立prompt模板库
- 记录典型问题和解决方案
- 定期review和优化prompt
我在团队中实施的改进周期为2周一次,平均每次能提升15%的输出质量。
6. 避坑指南
版本陷阱:
- Node.js版本必须≥22.13
- 使用@playwright/mcp而非旧版@modelcontextprotocol
架构错误:
- 不要混用Playwright CLI和MCP
- 保持Agent职责单一
安全风险:
- 永远不要在生产环境直接运行AI生成代码
- 敏感信息必须使用环境变量
质量保障:
- 必须有人工审核环节
- 关键业务逻辑需要额外验证
性能陷阱:
- 大文件会导致token爆炸
- 复杂操作需要分步执行
在实际项目中,我曾遇到一个典型问题:AI生成的测试在本地通过但在CI失败。根本原因是缺少对CI环境的特殊处理。后来在prompt中明确要求考虑CI/CD环境差异后,问题得到解决。
通过系统性地应用这23个Skills,我们团队现在能够:
- 在15分钟内生成可用的Playwright测试框架
- 将测试用例编写效率提升4倍
- 维护成本降低60%
这些技巧的价值不仅体现在效率提升上,更重要的是建立了与AI协作的标准范式,让团队每个成员都能产出高质量prompt。