本文旨在提供一套在软件开发项目中有效运用 AI 的实用方法和提示词工程技巧。本文为研讨会文字版本,查看录屏回放访问:https://www.bilibili.com/video/BV1GRnZzWEcb

一、创造 AI 友好的工作环境

为了让 AI 发挥最大效能,我们需要为其创造良好的工作条件:

  • 结构化的业务输入:提供足够清晰、有效的业务信息作为工作前提。
  • 明确的规则(Rules):在特定工作场景下,通过规则约束 AI 的行为,避免产生幻觉。
  • MCP 集成:通过模型上下文协议(MCP)打通 AI 与外部工具(如 Figma、数据库)的连接。
  • 友好的开发框架:确保 AI 能够理解整个项目结构,并有效隔离不同模块的上下文。
  • 清晰的工作流程:为开发的每个阶段定义 AI 可识别的输入和输出物。
  • 有效的反馈机制:AI 的所有输出都应经过人工验证和迭代优化。

二、核心提示词(Prompt)技巧

1. 基础原则:明确、具体、有上下文

语言是线性的,而代码是多维的。为了弥合差距,一个好的提示词应遵循以下原则:

  • 明确目标:清晰说明任务目的、受众、场景,避免使用“好用一点”、“性能好”等模糊词汇。
  • 提供上下文:补充项目背景、技术栈、用户规模等关键信息。
  • 指定角色:赋予 AI 一个身份,如“你是一名资深的后端架构师”。
  • 减少歧义:使用精准词汇,对可能产生多种理解的表达进行限定。
  • 结构化指令:使用列表、步骤、XML 标签等形式组织任务,并指定输出结构。

对比示例:

❌ 不好的提示词:

帮我设计一个用户管理的API,要好用一点,性能要好。

✅ 好的提示词:

请使用 Design Rule 为电商平台设计用户管理API。

【项目背景】
- 现有系统:Spring Boot + MySQL,单体架构
- 用户规模:预计10万注册用户,日活5000
- 技术栈:RESTful API,JWT认证

【具体需求】
1. 用户注册:支持邮箱/手机号注册,需邮箱验证。
2. 用户登录:支持多端登录,并管理会话。
3. 用户信息:查询、更新个人资料,支持头像上传。
4. 权限管理:分为普通用户、VIP用户、管理员三级。

【技术约束】
- 响应时间:核心API < 200ms。
- 安全要求:密码必须加密,敏感信息需要脱敏。
- 数据库:需考虑索引优化。
- 兼容性:需向后兼容现有移动端版本。

【预期输出】
1. API 端点清单(HTTP方法、路径、参数)。
2. 请求/响应数据结构(JSON Schema)。
3. 错误码定义和处理策略。
4. 数据库表结构变更建议。
5. 安全和性能考量要点。

请注意:本次任务只输出设计规范,不要实现具体代码。

2. 使用分隔符,实现结构化输入

使用三重引号、XML 标签(如 <template>)、Markdown 标题等分隔符,可以将提示词的不同部分清晰地划分开,帮助 AI 更好地区分指令、上下文和示例。

示例:

根据下面提供的 SQL 模版和订单表字段,生成订单表的 DDL。

<sql-template>
CREATE TABLE table_name (
    id INT PRIMARY KEY AUTO_INCREMENT,
    column_name1 VARCHAR(255) NOT NULL,
    column_name2 INT DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
</sql-template>

订单字段:
<fields>
    订单ID
    用户ID
    订单状态(如:待支付、已支付、已发货、已完成、已取消)
    总金额
    支付方式(如:微信、支付宝、信用卡)
    支付状态(如:未支付、已支付、退款中)
    收货地址
    创建时间
    更新时间
</fields>

3. 少样本学习(Few-shot Learning):给 AI 看“标准答案”

Few-shot learning 的核心思想是:通过提供少量示例(shots),让已经具备通用知识的 AI 快速理解并模仿你想要的输出格式和风格。

示例:

你是一名资深后端系统设计师。
你的任务是根据给定的系统需求,生成详细的 API 规格说明,并严格遵循下面示例中的格式和风格。

=== 示例 1: 用户认证 ===
需求:一个用户可以通过邮箱和密码注册、登录的系统。

API 规格:
1. POST /api/register
   - 描述:创建一个新的用户账户。
   - 请求体:{ "email": "string", "password": "string" }
   - 响应 (201 Created):{ "user_id": "string", "email": "string" }

2. POST /api/login
   - 描述:使用邮箱和密码进行用户身份验证。
   - 请求体:{ "email": "string", "password": "string" }
   - 响应 (200 OK):{ "token": "string", "expires_in": "integer" }

=== 你的任务 ===
需求:{在这里填写你的系统需求}

4. 思维链(Chain of Thought, CoT):让 AI “想清楚了再说”

思维链引导 AI 在给出最终答案前,先一步步写出其推理过程。这在处理复杂逻辑时尤其有效,因为它:

  • 将复杂问题分解,降低直接出错的概率。
  • 方便我们审查和干预 AI 的思考过程,及时纠正偏差。

示例:

请按照以下步骤,逐步推理并设计“将项目中的审批模块集成到 BPM 系统”的方案:

1.  分析审批模块的核心功能和当前业务流程。
2.  明确 BPM 系统支持的集成方式(如 REST API、消息队列等)。
3.  设计双方数据交互的接口,包括请求方法、路径及参数。
4.  规划审批状态的同步和回调机制。
5.  设计异常处理和错误回退流程。
6.  最后,总结出完整的集成接口规格及流程说明。

需求:将现有项目的审批功能集成进 BPM 系统,实现审批任务的创建、状态更新和结果同步。

5. 思维树(Tree of Thoughts, ToT):让 AI “多想几种可能”

思维树是思维链的升级版,它让 AI 在每一步都探索多种可能性,形成一棵“决策树”,并在其中评估和比较不同分支,最终选出最优解。

示例:

请采用“思维树”(Tree of Thoughts)的方法,针对“将项目中的审批模块集成到 BPM 系统”的需求,展开多条可能的设计思路和方案分支。

在每个设计步骤(如集成方式、数据交互、状态同步等),请分别考虑多种技术方案(如 REST API vs. 消息队列),分析各自的优缺点,并结合项目实际情况进行评估和筛选。

最终,整合各阶段的最佳方案,形成一份完整、清晰的集成规格说明。

6. 提示词增强:让 AI 帮你优化指令

在不确定如何清晰描述任务时,可以先让 AI 帮助你分析和优化指令。

示例:

在处理下面的任务之前,请先分析指令中可能存在的模糊之处,并向我提问,以确认是否需要我提供更多的上下文信息。然后,根据我的输入优化最终的指令。

我的初步任务指令如下:
“帮我编写一个可以自动下载 YouTube 视频的 SaaS 网站。”

三、高级策略:将 AI 融入研发流程

1. 关注点分离:为不同阶段设定专属规则(Rules)

通过为开发流程的不同阶段(探索、设计、编码等)应用不同的规则,可以有效约束 AI 的行为,让它在需要创造力时自由发挥,在需要精确执行时严格遵守规范。

受到 RIPER-5 的启发,我制定了我自己的几个规则,你也可以让 AI 根据你的需求生成一些规则:

我常用的规则有:

  • discover :理解问题,探索解决方案,不写任何代码。
  • design :定义高层方案,如 API、数据模型、模块边界。
  • coding :严格按照设计规格实现高质量、可维护的代码。
  • decision :根据设计规格,评估和决策是否继续开发,写入决策记录。
  • testing :根据设计规格,编写测试用例,确保代码质量。

由于篇幅有限,我把 discover 和 coding 的 rule 示例如下。

Rule: Discovery
================

Goal
----
Understand the problem space and explore potential solutions before any design or coding begins.

Guidelines
----------

1. Clarify the business goal, constraints, and success criteria in plain Chinese.
2. Read existing code and documentation to identify reusable components and gaps.
3. Brain-storm at least two viable technical approaches and list pros / cons / risks for each.
4. Surface unknowns, external dependencies, or stakeholder questions that require follow-up.
5. Deliverable: a concise **Discovery Note** summarising requirements, explored options, open questions, and next actions.
6. No need any implementation.
7. Before discovery, please read README.md file which located at root folder to understand the project structure.
8. If you are not sure, you can confirm with me.

Rule: Coding
=============

Goal
----
Implement the approved design with production-quality, maintainable code.

Guidelines
----------
1. Follow project coding standards (naming, formatting, lint rules, commit style).
2. Implement only the functions/classes specified in the Design Spec—no feature creep.
3. Write self-documenting code; add comments only for non-obvious logic or decisions.
4. Keep functions small and pure where possible; favour composition over inheritance.
5. Add or update automated tests; ensure the entire test suite passes locally/CI.
6. Deliverable: a clean pull-request with descriptive commits, passing CI, ready for review.

2. MCP 集成:打通 AI 与外部工具

通过配置 MCP (Model Context Protocol),可以让 AI 直接访问 Figma、数据库等外部资源,极大提升工作效率。

配置示例 (.cursor/settings.json)

{
    "mcpServers": {
        "figma-developer-mcp": {
            "command": "npx",
            "args": ["-y", "figma-developer-mcp", "--stdio"],
            "env": { "FIGMA_API_KEY": "your_figma_api_key" }
        },
        "mcp_server_mysql": {
          "command": "npx",
          "args": ["-y", "@benborla29/mcp-server-mysql"],
          "env": {
            "MYSQL_HOST": "127.0.0.1",
            "MYSQL_USER": "root",
            "MYSQL_PASS": "password",
            "MYSQL_DB": "your_db"
          }
        }
    }
}

3. 建立“项目记忆”:使用 Memory Bank

为了让 AI 拥有长期上下文,而不是每次对话都“重新开始”,可以使用 memory-bank 或类似机制,将项目的核心信息固化下来。

  • 架构文档:项目目录结构、核心模块说明。
  • 技术规范:团队的代码规范、DDD 分层结构示例等。

四、主流 AI 协同开发方法论

  • RIPER-5:一个旨在修复和优化大模型(如 Claude 3)行为的严格操作协议。参考地址: Cursor Forumopen in new window

  • BMAD (Breakthrough Method for Agile AI-Driven Development):通过“智能代理规划”和“上下文工程驱动开发”,让不同角色的 AI Agent 协同完成从规划到开发的全过程。参考地址: BMAD GitHubopen in new window

  • GitHub Spec-Kit:一个将“规范”作为驱动 AI 与代码生成的“源头”的工具包,倡导规范驱动开发(Spec-Driven Development),减少 AI 在开发中的猜测和误解。参考地址: GitHub Spec-Kitopen in new window

五、其他实用经验与心得

不同模型之间有类似人类性格上的差别,比如 grok-fast-1 更擅长处理复杂的问题,而 sonnet 更擅长生成代码,所以使用不同的 AI 处理不同的任务会更加合适。例如使用 GPT 来做需求分析和规划,但是使用 sonnet 实现代码。

软件开发的本质是学习,是将业务知识固化为形式化代码的过程。规格驱动的意义在于不断收敛问题和决策,并以更低的成本纠正方向。在这个过程中,编码只是最后一步,而前期的规划和设计才是决定项目成败的关键。

对于主流 AI 协同开发方法论来说,我更看好 GitHub Spec-Kit,其实传统的敏捷开发也是这样的。软件开发过程就是“规格 or 模型 or 文档”在不同角色之间的流动,每个角色都有自己的职责和任务,但是最终的目标是将业务需求转化为形式化的代码。

Last Updated:
Contributors: shaogefenhao