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

Trae 多 Agent 架构:理解 AI 协作的底层逻辑

深入 Trae 的多 Agent 系统,了解不同 Agent 如何分工协作完成复杂任务

什么是多 Agent 架构

你用 Trae 的 Builder 模式写过稍微复杂点的需求吗?比如”帮我搭一个带登录功能的 Todo 应用”。你会发现,Trae 不是一股脑把代码甩给你,而是有条不紊地:先分析需求、再规划结构、然后逐步编码、最后检查问题。

这背后就是多 Agent 架构在起作用。

传统 AI 编程助手大多是单 Agent——一个模型干所有事,像让一个人同时当产品经理、架构师、程序员和测试员。多 Agent 的思路不同:把复杂任务拆给多个专门的 Agent,各管各的。

单 Agent:用户需求 → [一个模型处理所有事] → 输出结果

多 Agent:用户需求 → [规划] → [编码] → [审查] → 输出结果
                       ↑                     │
                       └─── 反馈循环 ─────────┘
维度单 Agent多 Agent
任务复杂度适合简单明确的任务能处理多步骤跨文件的复杂任务
上下文管理容易超出上下文窗口每个 Agent 只关注自己的上下文
错误处理出错后难以自我纠正审查 Agent 可以发现并修复问题
输出质量依赖单次生成质量多轮协作逐步提升质量

Trae 的 Agent 分工

Trae 的多 Agent 系统由三类核心 Agent 组成:规划、编码、审查。

规划 Agent(Planner)

整个流程的”大脑”,负责理解意图、拆解任务、确定依赖和执行顺序:

// 规划 Agent 的输出(概念示意)
const plan: TaskPlan = {
  goal: "搭建带登录功能的 Todo 应用",
  subtasks: [
    { id: 1, type: "scaffold", desc: "初始化项目结构" },
    { id: 2, type: "code", desc: "实现用户认证模块" },
    { id: 3, type: "code", desc: "实现 Todo CRUD 功能" },
    { id: 4, type: "code", desc: "实现前端页面" },
    { id: 5, type: "review", desc: "检查代码质量和安全性" },
  ],
  dependencies: [{ from: 1, to: [2, 3, 4] }, { from: 2, to: [4] }],
  executionOrder: [1, 2, 3, 4, 5],
};

编码 Agent(Coder)

实际写代码的”手”。它接收子任务,读取项目上下文,生成代码,调用工具完成操作。编码 Agent 可以有多个并行工作——一个写后端 API,另一个同时写前端组件。

审查 Agent(Reviewer)

质量的”守门员”,检查语法逻辑、验证项目规范、发现 bug 和安全问题,不通过就打回给编码 Agent 返工:

审查 Agent 的检查清单:
├── 语法检查:代码能否正常编译/运行
├── 逻辑检查:实现是否符合需求
├── 规范检查:是否遵循项目的 Trae Rules
├── 安全检查:有无明显的安全漏洞
└── 一致性检查:与现有代码风格是否统一

自定义 Agent:工具、技能与逻辑

Trae 允许你通过配置来自定义 Agent 的行为。

工具(Tools)

Agent 的能力取决于它能调用哪些工具。除了内置的文件读写、终端执行、代码分析等,你还可以通过 MCP 接入自定义工具:

{
  "mcpServers": {
    "database": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": { "DATABASE_URL": "postgresql://localhost:5432/mydb" }
    }
  }
}

这样 Agent 就能直接查询数据库,而不仅仅是读写文件。

技能(Skills)

通过 Trae Rules 定义 Agent 应该具备的专业技能:

# .trae/rules
## 编码规范
- 使用 TypeScript strict 模式
- 组件使用函数式写法,不用 class
## 测试要求
- 使用 Vitest,覆盖率不低于 80%
## 架构偏好
- 前端 React + Zustand,后端 Hono,数据库 Drizzle ORM

自定义工作流

组合工具和技能,定义 Agent 的工作逻辑,比如写完代码自动跑测试:

const coderWorkflow = {
  steps: [
    { action: "read_context", tool: "file_read" },
    { action: "generate_code", tool: "code_generation" },
    { action: "write_files", tool: "file_write" },
    { action: "run_tests", tool: "terminal_exec", command: "npm test" },
    { action: "check_result", onFailure: "fix_and_retry", maxRetries: 3 },
  ],
};

Agent 通信与协调

Trae 采用中心化协调模式,由 Orchestrator(编排器)统一调度:

                ┌─────────────┐
                │ Orchestrator│
                └──────┬──────┘
           ┌───────────┼───────────┐
     ┌─────┴─────┐ ┌───┴───┐ ┌────┴─────┐
     │  Planner  │ │ Coder │ │ Reviewer │
     └───────────┘ └───────┘ └──────────┘

编排器接收用户输入转发给规划 Agent,根据规划调度编码 Agent,编码完成触发审查,审查不通过就打回修改,全部完成后汇总结果。

Agent 之间通过结构化消息通信,每个 Agent 的状态都被追踪:

状态含义触发条件
idle空闲等待初始状态或任务完成
planning正在规划收到新需求
executing正在执行收到子任务分配
reviewing正在审查编码 Agent 提交结果
blocked被阻塞等待依赖任务完成

在 Builder 和 SOLO 中的体现

Builder 模式

Builder 中多 Agent 协作最直观。你输入”给页面加搜索功能”,规划 Agent 拆解任务,编码 Agent 逐步执行,审查 Agent 检查结果。你看到的”思考中…”、“正在编写…”、“正在检查…”,就是不同 Agent 在轮流工作。

SOLO 模式

SOLO 模式下 Agent 自主性更强——规划 Agent 自主决定技术方案,编码 Agent 连续执行不需要每步确认,审查标准也更严格:

Builder: 用户 → 规划 → [确认] → 编码 → [确认] → 审查 → 完成
SOLO:    用户 → 规划 → 编码 → 审查 → 修复 → 再审查 → 完成
                   (全程自主,无需确认)

SOLO 适合你对 Trae 足够信任、需求描述足够清晰的场景。

与 Claude Code Agent Teams 简要对比

维度Trae 多 AgentClaude Code Agent Teams
运行环境IDE 内集成终端 CLI
Agent 创建系统自动管理用户通过命令显式创建
协调方式内置编排器自动协调Lead Agent 协调 Executor
并行能力内部并行,用户无感显式并行,用户可控
自定义程度通过 Rules 间接配置通过 prompt 直接定义角色
适合场景GUI 偏好、快速开发CLI 偏好、精细控制
# Claude Code:显式控制
/team 3:executor "重构所有 API 路由为 RESTful 风格"

# Trae:在 Builder 中直接描述需求
# "帮我把所有 API 路由重构为 RESTful 风格"
# Trae 自动决定需要几个 Agent、如何分工

核心区别:Trae 把多 Agent 的复杂性藏在 IDE 背后;Claude Code 给你更多控制权,但也需要你理解 Agent 的工作方式。

实战:观察复杂任务中的多 Agent 协作

在 Builder 模式中输入:

给这个 Express 项目添加用户认证功能:
- JWT token 认证
- 注册、登录、登出
- bcrypt 加密密码
- 认证中间件保护 API 路由

你会看到规划 Agent 先输出执行计划,然后编码 Agent 逐步生成代码:

// middleware/auth.middleware.ts — 编码 Agent 生成
import { Request, Response, NextFunction } from "express";
import jwt from "jsonwebtoken";

export const authMiddleware = (req: Request, res: Response, next: NextFunction) => {
  const token = req.header("Authorization")?.replace("Bearer ", "");
  if (!token) return res.status(401).json({ message: "认证令牌缺失" });

  try {
    const decoded = jwt.verify(token, process.env.JWT_SECRET!) as { userId: string };
    (req as any).userId = decoded.userId;
    next();
  } catch {
    return res.status(401).json({ message: "无效的认证令牌" });
  }
};

接着审查 Agent 介入,发现 JWT_SECRET 用了非空断言、缺少 token 过期配置等问题,编码 Agent 自动修正。这个循环可能进行多轮,直到审查通过。

优势与局限

优势局限
复杂需求被清晰拆解执行简单任务可能比单 Agent 更慢
内置 Code Review 保障质量规划失误会导致连锁反应
上下文管理高效不会”迷路”出问题时难判断是哪个 Agent 的锅
只需描述需求,无需理解调度多 Agent 意味着更多 Token 消耗
场景推荐方式
简单代码补全单 Agent(Chat 模式)
单文件修改单 Agent 即可
多文件功能开发多 Agent(Builder 模式)
完整项目搭建多 Agent(SOLO 模式)

未来展望

多 Agent 架构在 AI 编程领域还处于早期,但方向已经很清晰:更智能的规划、更多专业 Agent(测试、部署、文档)、跨工具协作(通过 MCP 等标准协议)、学习与记忆能力、以及更好的人机协作平衡。

Trae 的多 Agent 架构代表了一个重要方向:不是让一个超级 AI 做所有事,而是让多个专业 AI 像团队一样协作。这和现实中的软件团队是一个道理——没有人能独自搞定所有事,但一个配合默契的团队可以。

多 Agent 不是让 AI 变得更复杂,而是让复杂的任务变得更简单。当你在 Trae 中输入一个需求,背后是多个 Agent 在默默协作——就像一支训练有素的团队,各司其职,只为交付你想要的结果。

评论

加载中...

相关文章

分享:

评论

加载中...