1. 引言

TRAE 是字节跳动推出的 AI 原生集成开发环境(IDE),其核心亮点之一就是 SOLO 模式。SOLO 模式面向独立开发者,提供从需求理解、代码生成、调试修复到测试验证的全流程 AI 辅助能力。本文将从原理、配置、实战和最佳实践四个维度,带你全面了解 TRAE SOLO 模式。

2. SOLO 模式核心概念

SOLO 模式本质上是一个由大语言模型驱动的智能编码代理(Coding Agent)。它不同于传统的代码补全工具,而是能够理解整个项目的上下文,自主规划任务并执行多步骤操作。

SOLO 模式的核心能力包括:

  • 项目级上下文理解:自动索引代码库,理解模块依赖关系。
  • 多文件协同修改:一次任务可跨多个文件进行修改。
  • 自主执行命令:可运行构建、测试等终端命令并读取输出。
  • 自我纠错机制:根据报错信息自动调整修复策略。

3. 环境准备与配置

在开始使用 SOLO 模式之前,需要完成以下准备工作。

3.1 安装 TRAE

访问 TRAE 官方网站下载对应操作系统的安装包,目前支持 Windows 和 macOS。安装完成后,使用字节跳动账号或手机号登录。

3.2 配置模型服务

SOLO 模式支持多种模型服务商。在设置面板中,可以配置模型 API Key:

{
  "model_provider": "anthropic",
  "model": "claude-sonnet-4-5",
  "api_key_env": "ANTHROPIC_API_KEY",
  "temperature": 0.2,
  "max_tokens": 8192
}

推荐将 API Key 配置为环境变量,避免明文写入配置文件。

3.3 项目初始化

SOLO 模式对项目结构有一定要求。建议在项目根目录添加说明文件,帮助 AI 理解项目意图:

# 项目说明
这是一个基于 Spring Boot 3 的订单管理系统。
技术栈:Java 17、Spring Boot 3.2、MyBatis-Plus、MySQL 8
模块划分:controller / service / mapper / entity
构建工具:Maven
测试框架:JUnit 5

4. 实战:用 SOLO 模式开发一个 REST API

下面通过一个完整的实战案例,演示如何使用 SOLO 模式从零开发一个用户管理接口。

4.1 需求描述

在 SOLO 模式的对话输入框中,用自然语言描述需求:

请帮我创建一个用户管理模块,包含用户的增删改查接口。用户实体包含 id、username、email、createdAt 字段。使用 Spring Boot 3 + MyBatis-Plus 实现,数据库表名 user。

4.2 SOLO 模式生成的代码

SOLO 模式会自动分析项目结构,生成以下核心文件。

首先是实体类:

package com.example.demo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.time.LocalDateTime;
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;

private String username;

private String email;

private LocalDateTime createdAt;
}

接着是 Mapper 接口:

package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
}

然后是 Service 层:

package com.example.demo.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.entity.User;
public interface UserService extends IService<User> {
}
package com.example.demo.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

最后是 Controller 层:

package com.example.demo.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.List;
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserService userService;

@PostMapping
public User create(@RequestBody User user) {
    user.setCreatedAt(LocalDateTime.now());
    userService.save(user);
    return user;
}

@GetMapping
public List&lt;User&gt; list() {
    return userService.list();
}

@GetMapping("/{id}")
public User getById(@PathVariable Long id) {
    return userService.getById(id);
}

@PutMapping("/{id}")
public User update(@PathVariable Long id, @RequestBody User user) {
    user.setId(id);
    userService.updateById(user);
    return user;
}

@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) {
    userService.removeById(id);
}
}

4.3 数据库脚本

SOLO 模式还会生成对应的数据库初始化脚本:

CREATE TABLE `user` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `username` varchar(64) NOT NULL COMMENT '用户名',
  `email` varchar(128) DEFAULT NULL COMMENT '邮箱',
  `created_at` datetime DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

5. 调试与修复:SOLO 模式的自我纠错

开发过程中难免遇到编译错误或运行异常。SOLO 模式能够读取终端输出,自动定位问题并给出修复方案。

例如,如果运行测试时出现以下错误:

APPLICATION FAILED TO START
Description:
Field userService in com.example.demo.controller.UserController required a bean of type 'com.example.demo.service.UserService' that could not be found.

SOLO 模式会分析出这是缺少 Service 实现类注册的问题,并自动检查 ServiceImpl 是否添加了 @Service 注解。如果发现遗漏,它会直接修改代码并重新运行测试。

这种「报错—分析—修复—验证」的闭环,是 SOLO 模式相比传统代码补全工具的最大优势。

6. 单元测试生成

SOLO 模式可以自动为业务代码生成单元测试。以下是为 UserService 生成的测试示例:

package com.example.demo.service;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.verify;
@ExtendWith(MockitoExtension.class)
class UserServiceTest {
@Mock
private UserMapper userMapper;

@InjectMocks
private UserServiceImpl userService;

@Test
void shouldSaveUser() {
    User user = new User();
    user.setUsername("test");
    user.setEmail("test@example.com");

    userService.save(user);

    verify(userMapper).insert(any(User.class));
}
}

7. 最佳实践与注意事项

为了充分发挥 SOLO 模式的效率,建议遵循以下实践原则。

7.1 需求描述要具体

模糊的需求会得到模糊的代码。描述需求时,应包含技术栈、字段定义、接口风格等关键信息。

❌ 帮我写一个登录接口
✅ 帮我写一个基于 JWT 的登录接口,使用 Spring Security,用户名密码校验通过后返回 token,token 有效期 24 小时

7.2 善用项目说明文件

在项目根目录维护一份说明文件,让 SOLO 模式快速理解项目背景和约定。

7.3 分步验证

对于大型任务,建议拆分为多个小步骤逐步完成,每完成一步就运行测试验证,避免错误累积。

7.4 代码审查不可省略

SOLO 模式生成的代码仍需人工审查,特别是涉及权限、支付、数据安全等敏感逻辑时,必须仔细核对。

8. 总结

TRAE SOLO 模式通过项目级上下文理解、多文件协同修改和自主纠错机制,显著提升了独立开发者的编码效率。它不仅能生成代码,还能参与调试、测试和重构的完整开发闭环。建议开发者从本文的实战案例入手,逐步将 SOLO 模式融入日常工作流,同时保持对生成代码的审查习惯,做到人机协同、效率与质量并重。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐