前三篇我们分别介绍了Trae的基础使用、SOLO智能体模式和Builder模式。今天进入一个更实用但也更容易被忽视的主题——如何写出高质量的Prompt(提示词),让Trae(以及任何AI编程助手)输出你真正想要的代码。
很多人觉得"AI写代码"很神奇,但用起来却经常"答非所问"。问题往往不在AI,而在你是怎么描述的。
AI模型(包括Trae使用的底层模型)的工作原理是"预测下一个token"。你输入的Prompt就是"上下文",AI根据上下文来预测最符合你意图的后续内容。
类比一下:
数据支持:Anthropic的官方文档指出,优化Prompt可以让Claude的输出质量提升30-50%。这不是夸张——同样的模型,不同的Prompt,效果可以差很多。
在Prompt开头告诉AI"你是谁",能显著提升输出质量。
❌ 差的Prompt:
写一个登录功能
✅ 好的Prompt:
你是一个有5年经验的Node.js后端工程师,擅长Express框架和JWT认证。
请帮我写一个用户登录功能,要求:
- 使用Express + bcrypt + jsonwebtoken
- 密码错误时返回通用错误(不提示"密码错误",防止用户名枚举)
- 登录成功后返回JWT token,有效期7天
- 需要处理SQL注入和XSS防护
把需求拆成"功能需求"和"非功能需求",再分点列出。
❌ 差的Prompt:
做个电商网站,要能买东西,要有购物车,要好看
✅ 好的Prompt:
创建一个电商网站前端,具体要求:
【技术栈】
- 框架:React 18 + TypeScript
- 样式:Tailwind CSS
- 状态管理:Zustand
- 路由:React Router v6
【功能模块】
1. 商品列表页(首页)
- 网格布局,每行3个商品卡片
- 支持按分类筛选
- 支持按价格排序(升序/降序)
2. 商品详情页
- 商品图片轮播
- 数量选择器
- "加入购物车"按钮
3. 购物车页面
- 购物车商品列表(可修改数量、可删除)
- 总价计算
- "去结算"按钮
【非功能需求】
- 响应式设计(手机/平板/桌面)
- 加载状态要有skeleton效果
- 错误要有toast提示
如果需求中有复杂逻辑,给出输入/输出示例。
示例:
写一个函数,把数字金额转为中文大写金额。
示例输入1:1234.56
示例输出1:壹仟贰佰肆拾叁元伍角陆分
示例输入2:1000000
示例输出2:壹佰万元整
边界条件:
- 金额为0时,返回"零元整"
- 金额为负数时,在开头加"负"
- 最大支持到亿级别
明确告诉AI你想要什么格式的输出。
| 需求 | 输出格式指定 |
|---|---|
| 只要代码 | "只输出代码,不要解释" |
| 代码+注释 | "输出代码,并在关键逻辑处加注释" |
| 代码+说明 | "先输出代码,再逐段解释实现思路" |
| 多个文件 | "输出以下文件:1. user.controller.js 2. user.model.js 3. user.route.js" |
第一次输出不满意?不要重写Prompt,而是在原Prompt基础上提修改要求。
迭代示例:
# 第1轮
"写一个用户注册API"
# AI输出后...
# 第2轮
"在上一个代码基础上,增加邮箱验证(发送验证码到邮箱,5分钟内有效)"
# AI输出后...
# 第3轮
"再增加防刷机制:同一IP 1小时内最多发送3次验证码"
Trae(特别是SOLO和Builder模式)对结构化Prompt的理解更好。
推荐结构:
# 任务
实现一个用户认证中间件
# 上下文
- 项目使用Express框架
- 已有User模型和jwt密钥配置
- 其他路由在routes/目录下
# 期望输出
- 一个中间件函数,验证Authorization头中的JWT
- 验证失败返回401
- 验证成功把用户信息写入req.user
- 代码放在middleware/auth.js
如果你想要某种风格或模式的代码,给AI看一个例子。
示例:
参考以下代码的风格和模式,实现订单管理模块:
【参考代码】
// 这是项目中已有的用户管理代码,注意它的:
// 1. 错误处理方式
// 2. 日志输出格式
// 3. 数据库操作模式
【你的任务】
用相同的风格和模式,写订单管理模块(order.controller.js)
有时候告诉AI"不要什么"比告诉它"要什么"更有效。
示例:
写一个数据导出功能,把用户数据导出为CSV。
【要求】
- 使用async/await,不要用Promise.then
- 不要使用any类型(TypeScript)
- 不要直接拼接SQL(防止注入)
- 导出前要做权限检查(只有管理员能导出全部用户)
| 陷阱 | 问题描述 | 规避方法 |
|---|---|---|
| 过于简略 | "写个API" → AI不知道你要什么API | 至少说明:技术栈、功能、输入输出 |
| 一次提太多需求 | AI会遗漏部分需求 | 分阶段提需求,每次1-2个核心功能 |
| 使用模糊词 | "优化一下"、"好看一点" → AI无法量化 | 用具体指标:"首屏加载<1s"、"使用蓝色主色调" |
| 不指定技术版本 | AI可能用过时API | 明确版本:"React 18"、"Node.js 20+" |
| 期望AI读心 | "像XX项目那样" → AI不知道XX项目是什么 | 贴代码片段,或详细描述XX项目的特征 |
下一篇,我们将讲解Trae的上下文管理:如何让AI记住你的项目规范、代码风格和决策历史。
评论区