在近期的 SWE-bench Verified 排行榜上,TRAE Agent 拿到了 75.2% 的求解率分数 ,我们也非常激动地将其作为开源项目贡献给社区。
什么是 TRAE Agent?
TRAE Agent 是一个基于大语言模型(LLM)的智能助手,专为软件工程任务设计。你可以把它想象成你团队中的一位资深工程师,能够自主完成以下任务:
-
Lakeview 模式可对 Agent 执行的步骤进行简明总结
-
通过系统性复现与分析调试复杂问题
-
制定详细计划并实现健壮的修复方案
-
理解任意代码库并掌握现有代码模式
-
编写符合最佳实践的高质量代码
TRAE Agent 如何在
SWE-bench Verified 上取得第一?
补丁生成
我们采用单 Agent 模式来生成补丁。为此,我们为 TRAE Agent 提供以下工具:
-
str_replace_based_edit_tool:允许 Agent 查看文件与目录,并对现有文件进行创建和编辑
-
bash:提供一个持久的命令执行接口,用于运行系统命令、捕获输出与错误
-
sequential_thinking:具备结构化问题分析能力,可进行多轮推理、修正、生成并验证假设
-
ckg_tools:构建代码知识图谱,使 Agent 可以在仓库中查找类与函数
-
task_done:用于标记任务完成并输出最终结果与总结
我们引入了多个模型供 Agent 使用,包括 Claude-4-Sonnet、Claude-4-Opus、Claude-3.7-Sonnet 和 Gemini-2.5-Pro。
补丁选择
在由不同 LLM 生成的多个候选补丁中,我们探索了两种补丁选择策略:
-
LLM-as-a-Selector: 使用 LLM 对回归测试通过的补丁进行评分与选择
-
Selector Agent: 增强方案,结合语法投票机制与多 Agent 验证提升选择准确性
Selector Agent 概览图
Selector Agent 是一个更强健、可扩展的补丁选择机制,分为三个阶段:
-
多模型生成候选补丁
-
回归测试进行初筛
-
使用语法等价聚类与多 Agent 验证做最终选择
通过在语法等价的补丁中进行聚类,并结合上下文推理与辅助工具验证,Selector Agent 显著提升了准确率。该机制不仅利用模型共识,还引入了对过拟合和伪一致性的防护,从而提高在更大候选空间中的补丁选择能力。
我们力求在多样性与可靠性之间取得平衡,推动 SWE-bench Verified 自动修复性能的上限。更多选择机制细节可见我们之前的文章:一文讲解,Trae 如何在 SWE-bench Verified 中达到70.6%的求解率
最终成果
我们的方法在 SWE-bench Verified 基准集上达到了 75.2% 的总成功率,成功解决了 500 个真实软件工程任务中的 376 个。
开源项目包括哪些内容?
多种 LLM 支持
LLM Client 系统为多个 AI 服务提供统一接口,已支持 OpenAI、Anthropic、Azure,并便于扩展至更多提供商。
LLMClient (llm_client.py):
-
“工厂模式”,支持不同 LLM 提供商
-
统一聊天补全接口
-
内置轨迹(trajectory)记录功能
丰富的工具系统
tools 模块为 Agent 与环境交互提供完整能力。其基础类 base.py 包括:
-
Tool: 所有工具的抽象类,包括工具名称、描述、参数和执行函数。
-
ToolExecutor: 负责工具的执行,支持并行或串行执行。
-
ToolCall 和 ToolResult: 用于描述工具调用和执行结果的结构体。
基于这些抽象,我们提供了四种现成工具:
-
文件编辑工具 (edit_tool.py): TextEditorTool (内部名称 str_replace_based_edit_tool) 提供了包括文件查看、创建、替换和插入字符串等文件操作。
-
Bash 工具 (bash_tool.py): BashTool 支持持久的 bash 会话、超时保护、输出捕获、会话管理。
-
结构化思维工具 (sequential_thinking_tool.py): SequentialThinkingTool 支持多轮思考、修正、分支逻辑和假设验证。
-
任务完成工具 (task_done_tool.py): 一个向 Agent 发送任务完成信号的简单但关键的工具。
全面可观测性
轨迹记录系统详尽记录 Agent 执行的每一步操作,包括与 LLM 的交互、步骤元数据与错误信息。
我们还提供了实时终端输出( cli_console.py ),默认启用 lakeview 模式,会异步调用另一 LLM 对步骤进行简要总结,以增强用户体验。
构建自定义 Agent
不论是直接使用 TRAE Agent,还是构建你自己的专业化 AI 助手,模块化架构让这一切变得非常简单:
# 自定义 Agent 创建示例
class MyAgent(Agent):
def get_system_prompt(self) -> str:
return "Your specialized agent prompt"
加入我们
立即体验:
git clone <repository-url>
cd TRAE-agent
uv sync
cp TRAE-config.json TRAE-config-local.json
# 在 TRAE-config-local.json 中指定你的模型与 API Key
TRAE run "Your first software engineering task" --working-dir='PATH TO WORKING DIR' --config-file TRAE-config-local.json
我们正在寻找:
-
愿意测试并提供反馈的早期使用者
-
愿意扩展工具生态的贡献者
-
想基于平台构建创新助手的 Agent 开发者
-
愿意分享使用案例与改进建议的社区成员
快速入口
仓库地址:
github.com/bytedance/TRAE-agent
文档说明:
https://github.com/bytedance/TRAE-agent/blob/main/README.md
问题讨论:
https://github.com/bytedance/TRAE-agent/issues
TRAE Agent 遵循 MIT 开源协议开发,致力于回馈软件工程和人工智能社区 ❤️