AI 工具 | | 约 15 分钟 | 5,685 字

Trae Builder Mode:让 AI 自主完成开发任务

深入理解 Trae 的 Builder 模式,掌握自主 Agent 编程的工作流

Builder Mode 是什么:从对话到自主执行

前面我们聊了 Trae 的安装配置和 Chat Mode。Chat Mode 本质还是”你问我答”——你提需求,AI 给代码片段,你自己复制粘贴。

Builder Mode 完全不同。它是一个自主 Agent,你给它一个任务,它自己分析、规划、创建文件、写代码、跑命令。你要做的就是在关键节点点个”确认”。

打个比方:

  • Chat Mode 像请了一个顾问,他告诉你方案,活还是你干
  • Builder Mode 像请了一个全栈工程师,你说”帮我搭个 API”,他直接开干
快捷键:
macOS:   Cmd + B
Windows: Ctrl + B

进入后你会看到一个输入框,和 Chat 长得差不多,但你在这里输入的不是”问题”,而是”任务”。


Builder vs Chat Mode:本质区别

维度Chat ModeBuilder Mode
交互方式问答对话下达任务指令
AI 角色顾问/助手自主执行的 Agent
文件操作只给代码片段,你手动粘贴直接创建、修改、删除文件
终端命令只给命令建议直接在终端执行命令
上下文范围当前文件或选中代码整个项目目录
任务粒度单个函数、单个问题完整功能、多文件协作
执行流程单轮或多轮对话分析→规划→执行→迭代
适合场景问问题、改 bug、解释代码搭项目、加功能、大重构

一句话总结:Chat 是对话工具,Builder 是执行引擎。


Builder 的工作流程

你在 Builder 里输入任务后,它不会立刻写代码,而是走一套完整流程:

1. 分析需求

Builder 先扫描项目结构、读取关键文件、理解技术栈:

你的输入: "给项目添加用户认证功能"

Builder 的分析:
├── 检测到项目使用 Express + TypeScript
├── 发现已有 /src/routes/ 目录结构
├── 发现 package.json 中已有 mongoose 依赖
└── 判断应该使用 JWT + bcrypt 方案

2. 拆分子任务

任务拆分:
1. 安装依赖 (jsonwebtoken, bcryptjs)
2. 创建 User Model
3. 创建 auth 中间件
4. 创建注册/登录路由
5. 更新主路由文件
6. 添加环境变量配置

3. 规划执行顺序

把子任务排成有序计划,考虑依赖关系。比如”创建路由”必须在”创建 Model”之后。

4. 创建文件 → 编写代码

开始动手,先建目录和文件骨架,再逐个填充实现。你能在编辑器里实时看到文件被创建和修改。

5. 迭代优化

写完后 Builder 会自检,发现类型错误、导入缺失等问题会自动修复。


如何下达有效的 Builder 指令

Builder 的输出质量,很大程度取决于你的输入质量:

❌ 差: "做一个 API"
✅ 好: "用 Express + TypeScript 创建一个图书管理 REST API,
       包含 CRUD 操作,使用 SQLite 数据库,端口 3000,添加错误处理"

❌ 差: "加个登录功能"
✅ 好: "给现有 Express 项目添加 JWT 认证,包含注册和登录接口,
       密码用 bcrypt 加密,token 过期时间 24 小时"

❌ 差: "写个前端页面"
✅ 好: "用 React + Tailwind CSS 创建登录页面,包含邮箱密码输入框、
       记住我复选框、登录按钮,添加表单验证,支持响应式"

好指令的要素

要素说明示例
技术栈明确使用什么框架/库”用 Express + TypeScript”
功能范围具体要实现什么”包含 CRUD 操作”
数据存储用什么数据库”使用 SQLite”
约束条件有什么限制或要求”端口 3000”
质量要求需要什么额外处理”添加错误处理和输入验证”

文件操作和终端命令

Builder 能直接操作你的项目——创建、修改、删除、重命名、移动文件,每次操作都会展示 diff 视图,你可以选择接受或拒绝。

它也能直接在终端执行命令(npm installmkdirnpm run build 等),但每条命令执行前都会弹出确认框,你需要手动点击”允许”。


实战:从零搭建 Express API

让 Builder 从零搭建一个待办事项 API。

输入指令

用 Express + TypeScript 从零创建一个 Todo REST API:
- CRUD 接口:GET /todos, POST /todos, PUT /todos/:id, DELETE /todos/:id
- 使用内存数组存储(不需要数据库)
- 添加输入验证和错误处理中间件
- 包含 npm scripts: dev, build, start

Builder 自动生成的项目结构

todo-api/
├── package.json
├── tsconfig.json
├── src/
│   ├── index.ts              # 入口文件
│   ├── routes/todos.ts       # Todo 路由
│   ├── middleware/
│   │   ├── errorHandler.ts   # 错误处理
│   │   └── validate.ts       # 输入验证
│   ├── types/todo.ts         # 类型定义
│   └── data/store.ts         # 内存数据存储

核心代码(Builder 自动生成)

// src/routes/todos.ts —— 路由层(Builder 自动生成)
import { Router, Request, Response } from 'express';
import { todoStore } from '../data/store';
import { validate } from '../middleware/validate';

const router = Router();

router.get('/', (_req: Request, res: Response) => {
  res.json({ data: todoStore.getAll() });
});

router.post('/', validate('createTodo'), (req: Request, res: Response) => {
  const todo = todoStore.create(req.body.title);
  res.status(201).json({ data: todo });
});

router.put('/:id', validate('updateTodo'), (req: Request, res: Response) => {
  const todo = todoStore.update(req.params.id, req.body);
  if (!todo) { res.status(404).json({ error: '待办事项不存在' }); return; }
  res.json({ data: todo });
});

router.delete('/:id', (req: Request, res: Response) => {
  if (!todoStore.delete(req.params.id)) {
    res.status(404).json({ error: '待办事项不存在' }); return;
  }
  res.status(204).send();
});

export default router;
// src/index.ts —— 入口文件
import express from 'express';
import todoRoutes from './routes/todos';
import { errorHandler } from './middleware/errorHandler';

const app = express();
app.use(express.json());
app.use('/todos', todoRoutes);
app.use(errorHandler);
app.listen(3000, () => console.log('Server running on http://localhost:3000'));

Builder 还自动生成了 store.ts(内存 CRUD)、validate.ts(输入校验)、errorHandler.ts(统一错误处理)等文件,并执行了依赖安装和项目初始化命令。整个过程 2-3 分钟,你只需要点几次”允许”。


局限性与何时手动介入

Builder 擅长的 vs 容易翻车的

擅长容易翻车
从零搭建项目,结构清晰复杂业务逻辑,可能理解偏差
标准功能(CRUD、认证)性能优化,代码能跑但不一定高效
安装配置依赖大型项目重构,上下文太多易遗漏
创建样板代码第三方 API 集成,可能用过时版本
简单 bug 修复数据库迁移,涉及数据安全

什么时候该手动介入

  1. Builder 连续两次改同一个文件没解决问题——它可能陷入循环了
  2. 涉及敏感操作(删除数据、改数据库 schema)——安全第一
  3. 生成的代码你完全看不懂——先理解再接受
  4. 项目有特殊架构约定——配合 Trae Rules 效果更好

安全性确认机制

Builder 能直接操作文件和执行命令,听起来有点吓人。但 Trae 设计了多层安全机制。

文件修改确认

每次修改文件都会展示 diff 视图:

{
  "scripts": {
-   "start": "node index.js"
+   "start": "node dist/index.js",
+   "dev": "nodemon src/index.ts",
+   "build": "tsc"
  }
}

你可以 Accept(接受)、Reject(拒绝)或 Accept All(全部接受,谨慎使用)。

终端命令确认

每条命令执行前都会弹出确认框,你可以选择”允许”、“拒绝”或”始终允许此类命令”。

安全等级设置

{
  "trae.builder.autoApprove": {
    "fileCreate": true,
    "fileModify": false,
    "fileDelete": false,
    "terminalCommand": false
  }
}
设置项默认值建议
fileCreatetrue创建文件风险低,可自动批准
fileModifyfalse修改文件建议手动确认
fileDeletefalse删除文件一定要手动确认
terminalCommandfalse终端命令一定要手动确认

撤销机制

万一接受了错误改动,别慌:

  • Cmd + Z / Ctrl + Z —— 撤销单个文件改动
  • Builder 面板的 “Undo” 按钮 —— 撤销整个步骤
  • Git —— 最终安全网,随时 git checkout 回退

养成好习惯:让 Builder 执行大任务前,先 git commit 当前工作。


小结

Builder Mode 把 AI 从”给建议”升级到了”干实事”。用好它的关键:指令要具体,理解工作流程,善用安全确认,知道何时手动介入。

下一篇我们聊 Trae 的 SOLO Mode,看看它和 Builder 有什么不同。

Builder Mode 的本质不是替代开发者,而是把重复性的工程工作交给 AI,让你把精力留给真正需要创造力的部分。好的开发者 + 好的 Agent = 10 倍生产力。

评论

加载中...

相关文章

分享:

评论

加载中...