08 · SOLO Coder 深度解析
深入理解 Trae 最强大的引擎——它是如何分析项目、匹配风格、自愈循环的。
01 为什么需要 SOLO Coder
先想一个问题:你在一个已经有 5 万行代码的项目里加一个新功能。你打开 Trae,切换到 SOLO 模式,输入”加一个用户登录功能”。然后发生了什么?
如果 AI 只是打开当前文件在底部加几行代码——那它和 Chat 模式有什么区别?它能不能理解整个项目的路由结构、数据库配置、中间件链条?它知不知道你项目的代码风格是函数式还是类式?它会不会把新的代码写进一个和周围完全不搭的风格里?
这就是 SOLO Coder 要解决的核心问题。
SOLO Coder 和普通的 Chat 问答、甚至和大多数 AI 编程工具的本质区别在于一句话:它不是在”修改一个文件”,而是在”向一个项目贡献代码”。
| 维度 | Chat / Inline Edit | SOLO Coder |
|---|---|---|
| 读什么 | 当前文件 + 你手动引用的文件 | 整个项目索引 |
| 理解层次 | 局部代码块 | 项目架构、模块依赖、数据流 |
| 风格意识 | 无(你告诉它风格偏好) | 自动检测并匹配 |
| 副作用 | 你提心吊胆 | 自动分析影响范围 |
| 测试 | 不涉及 | 自动写 + 自动跑 + 自动修 |
| 错误恢复 | 你再描述一遍 | 自己发现、自己定位、自己修复 |
心智模型:你把 Chat 想象成一个顾问,你指哪他看哪;你把 SOLO Coder 想象成一个入职两个月的全栈工程师——他已经读完了你项目的所有代码,了解了你的编码风格,知道哪些文件改了会出什么问题。你只需要告诉他”上线前把用户登录做好”,他能自己排优先级、自己画架构图、自己落地、自己测试、自己修 bug。
02 项目级理解:SOLO Coder 的”读心术”
SOLO Coder 和普通 AI 编程工具最大的鸿沟在于——它不只看你改的那个文件。
全量项目索引
当你把一个项目交给 SOLO Coder 时,它做的第一件事不是写代码,而是建立项目理解:
┌─────────────────────────────────────┐
│ SOLO Coder 项目分析流程 │
├─────────────────────────────────────┤
│ 1. 扫描目录结构 │
│ 2. 识别技术栈 (package.json/go.mod │
│ /Cargo.toml/Pipfile ...) │
│ 3. 解析入口文件 (main/index/app) │
│ 4. 追踪路由定义 │
│ 5. 识别数据库 Schema │
│ 6. 理解中间件/插件链 │
│ 7. 建立文件依赖关系图 │
│ 8. 检测代码风格模式 │
│ 9. 输出项目概要 → 等待你确认 │
└─────────────────────────────────────┘这个过程在 Trae 界面上表现为项目分析进度条和一个自动生成的”项目概览”卡片,里面列出了:技术栈、目录结构、入口文件、路由数量、数据库表数量等。
它不是一次性扫描。SOLO Coder 会持续维护项目索引。当你改了文件,它会增量更新受影响部分的上下文。
依赖追踪:改一个文件,波及多少?
这是 SOLO Coder 最被低估的能力。假设你修改了 auth/login.ts——普通 AI 工具改了这一个文件就不管了。SOLO Coder 会做依赖追踪:
修改 auth/login.ts
↓ 静态分析导入关系
读取 auth/login.ts 的 import 语句
↓
发现被以下文件引用:
- routes/auth.ts (直接引用)
- middleware/auth.ts (直接引用)
- tests/auth.test.ts (测试引用)
- pages/profile.tsx (间接引用)
↓
检查每个引用文件的修改是否需要联动
↓
输出影响范围报告这个报告会显示在 SOLO 的任务面板里,你可以逐条确认:“是,这个需要跟着改”或”不,skip 这个”。
一个真实项目的分析实例
假设你有一个 Express + React + MongoDB 的全栈项目,下面是 SOLO Coder 实际会给出的项目概览(节选):
📁 项目:my-ecommerce
📦 技术栈:
- 后端:Express 4.18, Mongoose 8.x, JWT
- 前端:React 18, React Router 6, Tailwind CSS 3
- 工具:TypeScript 5.x, Jest, ESLint
📂 关键结构:
server/
router/ → 6 个路由文件 (auth, products, orders, cart, users, admin)
models/ → 4 个 Mongoose 模型
middleware/ → 3 个中间件 (auth, errorHandler, cors)
client/
pages/ → 8 个页面组件
components/ → 15 个 UI 组件
hooks/ → 4 个自定义 Hook
utils/ → 5 个工具函数
🔗 路由架构:
/api/auth/* → auth.ts (公开)
/api/products/* → products.ts (公开 + 需要管理员)
/api/orders/* → orders.ts (需要登录)
/api/cart/* → cart.ts (需要登录)
/api/users/* → users.ts (需要登录 + 需要管理员)
🗄️ 数据库模型:
User (email, password, name, role, createdAt)
Product (name, price, category, stock, images)
Order (userId, items, total, status, createdAt)
CartItem (userId, productId, quantity)有了这个层面理解,当你输入”给订单接口加上分页功能”时,SOLO Coder 已经知道:
- 订单路由在
server/router/orders.ts - 模型是
Order,定义在server/models/Order.ts - 你项目里已有的分页方式是
page=1&limit=20参数风格(从其他接口推断) - 响应格式统一为
{ data: [...], total, page, limit }(从其他接口推断) - 需要在
client/侧更新 API 调用
不需要你告诉它这些——它自己看明白了。
03 风格匹配:它怎么会写出”像你写的代码”
很多 AI 工具生成代码的”通病”是:代码看着就不像人写的。缩进奇奇怪怪;有的用 function 有的用箭头函数;命名一会儿 snake_case 一会儿 camelCase;有的文件用单引号有的用双引号。
SOLO Coder 有一个风格匹配引擎,在写第一行代码之前会先做这些检测:
它检测什么
| 风格维度 | SOLO Coder 检测方式 | 示例 |
|---|---|---|
| 命名风格 | 扫描代码库中的变量/函数/类命名模式 | 你项目里都是 camelCase 还是 snake_case |
| 导入风格 | 检查 import/require 的用法 | ES module 还是 CommonJS |
| 错误处理模式 | 捕获 try/catch 的写法 | 是返回 { error } 对象还是 throw |
| 函数风格 | 函数声明 vs 箭头函数 vs class 方法 | 你的项目 80% 用 const fn = () => |
| 类型风格 | TypeScript 的严格程度 | 是 any 泛滥还是强类型约束 |
| 注释密度 | 注释的多少和风格 | JSDoc 风格?内联注释?中文还是英文? |
| 测试框架 | 检测测试文件的写法 | Jest?Vitest?Mocha?describe/it 还是 test? |
| CSS/样式 | 样式方案 | Tailwind 类?CSS modules?styled-components? |
风格检测的实际表现
假设你的项目里所有的 Express 路由都这样写:
router.get('/products', async (req, res, next) => {
try {
const products = await Product.find({})
res.json({ data: products })
} catch (err) {
next(err)
}
})当你让 SOLO Coder 加一个新的 /api/products/search 路由时,它不会凭空生成一个不同风格的路由。它生成的是:
router.get('/products/search', async (req, res, next) => {
try {
const { q } = req.query
const products = await Product.find({ name: new RegExp(q, 'i') })
res.json({ data: products })
} catch (err) {
next(err)
}
})注意:
- 用了
async (req, res, next)而不是(req, res) =>或function(req, res) - 用了
try/catch + next(err)的统一错误处理 - 响应格式
{ data: products }和其他接口一致 - 没有用蛇形命名、没有用
throw替代next(err)
这些不是你手动配置的——SOLO Coder 从你已有的代码中自动推断出来的。
风格匹配的局限
风格匹配不是万能的。以下场景它可能会翻车:
- 混合风格项目:项目里同时有类组件和 hooks,有 callback 和 async/await——它难以确定”当前上下文该用哪种”
- 新功能涉及新模式:你项目从未用过 WebSocket,让 SOLO Coder 加 WebSocket——它没有现成风格可学
- 最近代码质量不高:如果项目本身就有风格不一致的问题,SOLO Coder 会”学到”坏习惯
遇到这些情况,最佳做法是在 prompt 里显式说明:“请使用 ES 类风格写新代码”或”所有新文件都用函数组件,不要类组件”。
04 自愈循环:代码 → 测试 → 错误 → 诊断 → 修复 → 重测
这是 SOLO Coder 最强大的能力,也是它和”老一代”AI 编程工具最本质的区别。
循环全貌
SOLO Coder 的每项任务都执行这个闭环:
写入代码
↓
自动运行测试 (或编译/语法检查)
↓
发现失败? ──是──→ 读取错误日志
↓ ↓
否 分析错误堆栈
↓ ↓
┌────────────────→ 定位问题代码
│ ↓
│ 生成修复方案
│ ↓
└─────────────── 写入修复代码
↓
确认所有测试通过
↓
提交结果你不需要在它修了 3 次还没好的时候介入——它会自己尝试。但你不能让它无限循环。
重试策略
SOLO Coder 内部有一套自愈调参:
| 循环次数 | 行为 | 用户可见性 |
|---|---|---|
| 第 1-3 次 | 正常尝试修复,逐步缩小范围 | 任务面板显示”正在修复…” |
| 第 4-5 次 | 切换到更保守的策略——不重构只修 bug | 任务面板显示 “⚠️ 遇到持续错误,已切换策略” |
| 第 6 次+ | 暂停执行,向用户求助 | 弹出提示框:“遇到持续问题,建议手动检查” |
关键设计是第 6 次的”向人求助”——它不会无限循环下去。它积累了所有尝试记录,你可以查看尝试历史,然后手动修复或重新描述问题。
一个真实的错误修复链
假设 SOLO Coder 在加登录功能时写了这样一段代码:
// SOLO Coder 第一次写的代码
const bcrypt = require('bcrypt')
const salt = bcrypt.genSaltSync(10)
const hash = bcrypt.hashSync(password, salt)自愈循环会这样跑:
第 1 轮:
写入代码 → 运行 npm test → 失败:Module not found: 'bcrypt'
诊断:项目没装 bcrypt 包
修复:npm install bcrypt
第 2 轮:
重跑测试 → 失败:bcrypt 编译错误(缺少 Python 构建环境)
诊断:bcrypt 需要 Node 原生模块编译环境
修复:将 bcrypt 替换为 bcryptjs(纯 JS 版本,不需要编译)
第 3 轮:
重跑测试 → 失败:bcryptjs API 和 bcrypt 不同
诊断:genSaltSync/hashSync 方法存在,但参数签名不同
修复:调整函数调用方式适配 bcryptjs API
第 4 轮:
重跑测试 → 通过 ✅整个过程耗时大约 40 秒,你全程看到任务面板里”安装依赖→测试失败→替换依赖→测试失败→修复 API→测试通过”的滚动输出。你一次都没有手动干预。
自愈循环的适用边界
效果好:
- 编译错误、语法错误、类型错误
- 缺少依赖、版本不兼容
- 测试断言失败(特别是单元测试)
- API 参数不匹配
效果差,需要人工介入:
- 逻辑错误:代码能跑但结果不对
- 竞态条件和并发问题
- 安全漏洞(SQL 注入、XSS)
- 性能瓶颈(N+1 查询、内存泄漏)
- UI 界面风格不和预期
05 实战演练:给一个现有项目加上认证系统
理论说够了,来看一个完整的实战过程。假设你有一个 Express + React + MongoDB 的电商项目,还没有任何用户认证功能。你要在 SOLO Coder 里输入:
Prompt: “为这个项目添加完整的用户认证功能,包括注册、登录、JWT token、密码加密、前端登录页面、受保护的路由”
第一步:项目分析
SOLO Coder 启动后首先读取整个项目,约 15 秒后显示分析结果:
分析完成:
├── 后端:Express 4.x,未安装认证相关依赖
├── 前端:React 18 + React Router 6,无登录页面
├── 已有 User 模型(email, name, createdAt,无 password 字段)
└── 建议操作:扩展 User 模型 + 安装 bcryptjs + jsonwebtoken → 创建认证中间件 → 创建登录注册接口 → 前端登录页面 → 受保护路由第二步:生成计划
SOLO Coder 自动拆解为 Todo Pipeline:
☐ [1/8] 扩展 User 模型,添加 password+salt 字段
☐ [2/8] 安装依赖 (bcryptjs, jsonwebtoken)
☐ [3/8] 创建 auth 工具函数 (hashPassword, verifyPassword, generateToken)
☐ [4/8] 创建认证中间件 (verifyToken 中间件)
☐ [5/8] 创建 auth 路由 (POST /register, POST /login)
☐ [6/8] 自动生成测试用例 (auth 接口测试)
☐ [7/8] 创建前端登录/注册页面
☐ [8/8] 添加受保护路由(前端 + 后端)每个待办项前面有个复选框,SOLO Coder 逐项执行,你可以在执行过程中点击某一项查看 diff。
第三步:执行过程速览
这是实际执行过程中任务面板的输出(精简版):
▶ 第 1 项:扩展 User 模型
- 读取 server/models/User.js
- 添加字段:password (String), salt (String)
- 添加 index:{ email: 1 } unique
- 编写 pre-save hook:自动生成 salt + hash password
✅ 完成
▶ 第 2 项:安装依赖
- npm install bcryptjs jsonwebtoken
✅ 完成
▶ 第 3 项:auth 工具函数
- 创建 server/utils/auth.js
- 自动匹配了项目现有的 CommonJS + async/await 风格
✅ 完成 → 自动运行测试
▶ 第 4 项:认证中间件
- 创建 server/middleware/auth.js
- 读取了项目中其他中间件的写法(try/catch + next(err))
✅ 完成
▶ 第 5 项:auth 路由
- 创建 server/router/auth.js
- 在 server/index.js 中注册 /api/auth 路由
✅ 完成 → 运行测试 → ❌ 失败
- 诊断:测试中缺少环境变量 JWT_SECRET
- 修复:在 .env.example 和测试配置中添加默认值
→ 重跑测试 → ✅ 通过
▶ 第 6 项:前端登录页面
- 读取 client/ 现有页面风格(Tailwind CSS + 函数组件)
- 创建 client/pages/Login.jsx
- 创建 client/pages/Register.jsx
✅ 完成
▶ 第 7 项:受保护路由
- 读取 client/App.jsx 的路由配置
- 添加 <ProtectedRoute> 封装组件
- 在路由配置中标记受保护的路由
✅ 完成
▶ 第 8 项:最终验证
- npm test → ✅ 全部通过
- 类型检查 → ✅ 无错误
- ESLint → ✅ 通过第四步:审核和微调
每个步骤执行后,你都看到一个 diff 对比。你可以:
- 点 Accept:接受改动
- 点 Reject:拒绝改动,SOLO Coder 会回退
- 点 Edit:在 diff 上直接修改,然后 SOLO Coder 根据你改的继续
- 写备注:在任务面板里写 “不要用 bcrypt,用 bcryptjs”,它会实时采纳
完整耗时
整个功能从 prompt 到可运行的完整代码,大约耗时 3-5 分钟。如果手工做同样的功能(读项目结构、写后端代码、写前端代码、写测试、调试、修复),一个有经验的开发者大约需要 2-4 小时。
差距:SOLO Coder 速度是手工的 30-80 倍。
06 SOLO Coder 输出质量 vs 手写代码
这是开发者最关心的问题:AI 写的代码质量到底行不行?和手写比,差在哪、好在哪?
对比维度
| 维度 | 手写代码(有经验开发者) | SOLO Coder 输出 | 差距 |
|---|---|---|---|
| 正确性 | 高——经验丰富,边界考虑周全 | 中高——常见路径 OK,边缘情况容易遗漏 | SOLO 略逊 |
| 性能 | 高——会主动优化查询、缓存 | 中——通常会写出”能跑”的版本,不够精细 | SOLO 略逊 |
| 安全性 | 中高——取决于开发者安全意识 | 中——能避免常见陷阱,但深层安全不够 | 手写略优 |
| 风格一致性 | 中低——看团队规范和纪律 | 高——严格匹配现有代码风格 | SOLO 明显优 |
| 文档和注释 | 看习惯——很多开发者不写注释 | 中——通常生成有注释的版本 | SOLO 略优 |
| 测试覆盖 | 低——很多项目测试覆盖率不到 40% | 高——自动为新建代码生成测试 | SOLO 明显优 |
| 体积和简洁度 | 多变——从极简到啰嗦都有 | 偏啰嗦——会生成防御性代码 | 手写更简洁 |
| 可维护性 | 高——架构意识强 | 中——局部质量好,全局架构设计弱 | 手写优 |
| 速度 | 2-4 小时(认证系统) | 3-5 分钟 | SOLO 完胜 |
什么场景 SOLO Coder 写得比人好
- 样板代码:CRUD 接口、router 注册、Schema 定义——这些有固定模式,AI 不出错还快
- 测试用例:很多开发者讨厌写测试,SOLO Coder 自动生成的覆盖率比大部分人手工写的还高
- 跨文件一致性修改:人容易漏掉某个文件,AI 不会
- 代码风格统一:新员工需要适应期,SOLO Coder 零适应
什么场景手写更好
- 核心业务逻辑:涉及领域知识、业务规则、复杂状态机——人更懂”为什么”
- 安全敏感代码:认证、支付、加密——需要人工审计每一行
- 性能关键路径:SQL 查询优化、缓存策略、内存管理——AI 不够精细
- 架构决策层:模块划分、依赖注入、设计模式——AI 看不透整个系统的未来
最佳实践:混合工作流
┌─────────────────────────┐
│ SOLO Coder 写 │ ← 第一轮:快速出代码
│ 路由、CRUD、测试、样式 │
└─────────┬───────────────┘
↓
┌─────────────────────────┐
│ 你人工审核 │ ← 第二轮:找逻辑漏洞
│ 业务逻辑、安全、性能 │
└─────────┬───────────────┘
↓
┌─────────────────────────┐
│ 你手写修正 │ ← 第三轮:补齐 AI 短板
│ 核心逻辑、安全加固、优化 │
└─────────────────────────┘这不是”AI 取代人”,而是”AI 做 80% 的机械工作,人做 20% 的创造性和关键性工作”。效率提升了,但人的判断力仍然是不可替代的。
07 SOLO Coder 的最佳 Prompt 写法
和所有 AI 工具一样,输入质量决定输出质量。给 SOLO Coder 的 Prompt 有一些特有的最佳实践。
Prompt 结构公式
最佳 SOLO Coder Prompt 的结构:
[任务目标] + [范围边界] + [风格约束] + [排除项] + [验收标准]五个要素详解
1. 任务目标(必须)—— 一句话说清楚要做什么
❌ "给项目加个认证"
✅ "为这个项目添加完整的 JWT 用户认证,包括注册、登录、密码加密、前端登录页面、受保护路由"2. 范围边界(强烈建议)—— 限制 AI 不改不该改的地方
❌ 不加范围 → SOLO Coder 可能动到你不想动的文件
✅ "只添加后端认证功能和前端登录页面,不要修改现有的商品列表和订单功能"
✅ "在 server/router/ 下新建 auth.js,不要修改现有路由文件"3. 风格约束(按需)—— 覆盖风格匹配可能失败的场景
❌ "写好看的代码" → 太模糊
✅ "使用 React hooks 和函数组件,不要类组件。使用 Tailwind CSS。后端用 async/await 和 try/catch"
✅ "所有新文件的命名风格遵循 kebab-case"4. 排除项(强烈建议)—— 明确告诉 AI 不要做什么
❌ 不写排除 → AI 可能做你不想要的事情
✅ "不要修改部署配置和 CI/CD 文件"
✅ "不要升级或修改现有的依赖版本"
✅ "不要自动提交到 Git,只写代码"5. 验收标准(高级用法)—— 告诉 AI 怎么做才叫”完成”
✅ "写完代码后运行 npm test,所有测试必须通过"
✅ "注册接口返回 status: 201,登录接口返回 status: 200"
✅ "前端登录后应跳转到 /dashboard"完整 Prompt 示例
为这个项目添加用户认证功能。
范围:在 server/ 下新建 auth 相关文件,在 client/ 下新建登录注册页面。
不要修改现有的商品列表、购物车、订单功能。不要修改 package.json 已有的
依赖版本。
技术要求:
- JWT token 认证,access token 有效期 24 小时
- 密码使用 bcryptjs 加密
- 前端使用 React 函数组件 + Tailwind CSS 样式
- 受保护路由用 <ProtectedRoute> 封装组件
- 后端所有路由用 try/catch + next(err) 错误处理
排除:
- 不要自动部署
- 不要修改数据库配置
- 不要提交 Git
验收:npm test 全部通过,启动后 /api/auth/login 和 /api/auth/register
可正常调用。Prompt 的常见反模式
| 反模式 | 例子 | 问题 | 推荐 |
|---|---|---|---|
| 过于模糊 | ”优化这个项目” | SOLO Coder 不知道该做什么 | 具体描述要改什么 |
| 过于冗长 | 5 段背景描述 + 需求文档 | AI 注意力分散,抓不住重点 | 结构清晰的 5-8 句 Prompt |
| 多任务混杂 | ”加登录、改颜色、加数据库、部署” | 互相干扰,一个失败全盘都卡 | 拆成逐个任务 |
| 缺少负向约束 | 只说了要做什么,没说不要做什么 | SOLO 可能修改你不希望改的文件 | 加上”不要…” |
| 期望一次完美 | 写了一个 Prompt 就等着交付 | 建议迭代:先验证计划→再分批执行 | 先让 SOLO 出计划,你确认后再执行 |
08 常见失败模式与恢复方法
SOLO Coder 很强,但不是万能的。下面是实际使用中最高频的失败场景,以及对应的处理方法。
失败模式 1:计划不对——它理解错了你的需求
表现:SOLO Coder 生成的 Todo Pipeline 和你心里想的不一样——需求理解有偏差。
原因:你的 Prompt 表达不够精确,或者 AI 对项目上下文的推断有误。
恢复方法:
- 不要让它继续执行——在它生成计划但还没开始写代码时,点击”修改计划”或直接输入
- 追加澄清 Prompt:
"不对,我需要的是 OAuth 2.0 登录,不是账号密码登录,请重新生成计划" - 确认计划对了再点”执行”
最佳防线:审核计划后再放行。SOLO Coder 生成计划后,花 15 秒读一遍。不读计划直接放行是最常见的翻车原因。
失败模式 2:死循环——它在同一个错误上转圈
表现:任务面板显示 “正在修复…” > “失败” > “正在修复…” > “失败”,连续循环超过 5 次。
原因:通常是底层环境问题(缺少编译器、系统依赖不兼容)或者设计层面的缺陷(AI 理解错了 API 文档)。
恢复方法:
- 点击”暂停任务”
- 查看任务面板的完整执行日志,找到实际的根因
- 手动修复环境问题(比如:
brew install some-tool) - 输入
"继续,问题已经解决了"让 SOLO Coder 重试 - 如果还是不行,重新描述需求,缩小范围
失败模式 3:改太多——它修改了你不想动的地方
表现:审核 diff 时发现 SOLO Coder 改了你没有授意的文件——例如修改了 package.json 中的已有依赖版本、重写了你写的某些函数。
原因:没有在 Prompt 中写排除项,或者 SOLO Coder 认为”顺便改掉更干净”。
恢复方法:
- 在该文件的 diff 上点 Reject——SOLO Coder 会回退该文件的改动
- 输入追加指令:
"不要修改 server/models/User.js,之前的字段是好的,只新增 password 字段" - SOLO Coder 重新执行,跳过已回退的部分
失败模式 4:测试过了但逻辑不对
表现:所有测试通过,编译成功,SOLO Coder 显示 ✅。但你手动测试时发现功能不符合业务需求。
原因:SOLO Coder 写的测试只验证了它自己写的代码行不行,而不是验证业务逻辑对不对。这是一个深层问题。
恢复方法:
- 这是你必须人工把关的环节
- 手动运行项目,实际测试功能
- 如果发现逻辑问题,直接输入你和测试结果继续迭代:
"登录成功后应该跳转到 /home 而不是 /dashboard,请修复" - SOLO Coder 会分析问题、调整代码、重新跑测试
失败模式 5:大型重构——改动范围太大导致混乱
表现:你让 SOLO Coder “重构整个后端为 TypeScript”,执行到一半报错越来越多,计划列表里有大量被标记为失败的任务。
原因:一次性改动过大,超出了 SOLO Coder 的有效上下文窗口。
恢复方法:
- 重新开始,分步进行:
- 第一步:“创建一个 tsconfig.json 和类型定义文件”
- 第二步:“把 server/models/ 下的文件迁移为 .ts”
- 第三步:“把 server/utils/ 下的文件迁移为 .ts”
- 以此类推
- 每次只迁一个模块,确认成功后再继续
- 这样即使某一步失败了,也只影响一个模块
原则:对于大型重构,先手动画出迁移图,然后逐模块分步执行。一次性给 SOLO Coder 10 个模块的迁移任务是翻车率最高的操作。
失败恢复速查表
| 症状 | 处理 |
|---|---|
| 计划不对 | 不要跑,先澄清 Prompt |
| 反复修同一个错误 | 暂停 + 手动看环境问题 |
| 改了你没想动的文件 | 单个 diff 点 Reject + 追加约束 |
| 测试绿了但逻辑不对 | 这是你的检查环节,发现问题直接追加 |
| 大型重构翻车 | 拆成小步骤,逐个执行 |
| AI 删除重要代码 | 暂停 + 从 Git 恢复文件 + 重新执行 |
| SOLO Coder 没反应了 | 点”暂停”再点”继续”——有时是 LLM 的中间状态卡住 |
| 整个过程不想继续了 | 点”停止任务”——所有改动回滚到任务开始前的状态 |
09 什么时候不该用 SOLO Coder
尽管 SOLO Coder 很强大,但有一些场景你不应该用它。
绝对不要用的场景
| 场景 | 原因 | 该用什么 |
|---|---|---|
| 生产环境直接改代码 | AI 可能写出逻辑漏洞,没有 review 直接上生产是灾难 | Chat 模式 + 人工 Code Review |
| 安全审计/修复安全漏洞 | AI 不能理解深层安全威胁,可能修了表面问题留下更深的洞 | 人工安全专家 + Chat 辅助 |
| 加密/支付/金融逻辑 | 合规风险——出问题了是你负责,不是 AI | 手工逐行写 + 第三方审计 |
| 复杂的数据迁移 | 数据不可逆——误操作可能丢数据 | 手工写迁移脚本 + 预备份 + 逐行验证 |
| 有争议的架构决策 | AI 不能为你的架构负责 | Chat 模式讨论方案,人做决策 |
慎用的场景
| 场景 | 风险 | 建议 |
|---|---|---|
| 核心业务逻辑改动 | AI 可能遗漏复杂边界条件 | 用 SOLO Coder 写初稿,人工逐行审改 |
| 依赖大量升级 | 破坏性变更,兼容性问题 | 逐模块升级,每步 SOLO Coder 执行 + 测试 |
| 代码库超过 50 万行 | 上下文窗口限制,AI 可能”记不住”完整项目结构 | 明确指定范围 “只改 server/ 下 auth 相关模块” |
| 你完全看不懂的技术栈 | AI 写的代码你无法审核 | 先 Chat 模式学习,再用 SOLO Coder |
核心原则:你不能审核的代码,就不该让 AI 写。
10 小结
SOLO Coder 不是”另一个 AI 代码补全工具”——它是一个完全不同的范式。
| 关键问题 | 答案 |
|---|---|
| SOLO Coder 的最大特点 | 对项目有全局理解,不是只看当前文件 |
| 它能自动做什么 | 读项目、分析依赖、匹配风格、写代码、跑测试、修 bug |
| 自愈循环是什么 | 代码→测试→错误→诊断→修复→重测的闭环,最多尝试 5 次后求助 |
| 和手写代码比 | 速度快 30-80 倍,风格一致性和测试覆盖更好;核心逻辑和安全性不如手写 |
| 最佳 Prompt 公式 | 目标 + 边界 + 风格 + 排除项 + 验收标准 |
| 最高频翻车原因 | 不看计划直接放行、缺少排除项、一次改太多 |
| 不该用它做什么 | 生产环境直接上线、安全审计、支付金融逻辑、不可逆的数据操作 |
| 核心工作流 | SOLO Coder 写 → 你审核 → 你修正核心逻辑 |
一句话总结:SOLO Coder 是你团队里最勤快的免费工程师——它干活卖力、风格统一、自动测试、自己不放弃。但它不懂你的业务、不能为你做决策、不能替你 Code Review。你用它来提速,不是甩锅。
下一篇:09 · SOLO Builder 快速建站 —— SOLO Builder 的深度用法:从零快速构建完整项目的一站式方案。
本文是 Trae 教程系列的第 8 篇。本系列从零开始,逐步深入 Trae 的每个功能。如果你还没看前面的章节:01 Trae 是什么 → 02 安装与登录 → 03 核心概念 → 04 界面总览 → 05 Chat 模式 → 06 Builder 模式 → 07 SOLO 模式入门