当前位置: 首页 > news >正文

TRAE Agent 在 SWE-bench Verified 上得分 75.2%,并已开源

资料来源:火山引擎-开发者社区


在近期的 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 开源协议开发,致力于回馈软件工程和人工智能社区 ❤️

http://www.dtcms.com/a/284508.html

相关文章:

  • opencv、torch、torchvision、tensorflow的区别
  • Linux717 SWAP扩容;逻辑卷条带化
  • 前端-HTML
  • 杰理AC70NN项目用脚本自定义添加.mk文件,直接链接进主Makefile脚本编译
  • 开通腾讯位置复位
  • 深入理解Collections.addAll方法
  • 【华为】交换机vlan互访实验
  • 【人工智能99问】梯度消失、梯度爆炸的定义、后果及规避手段?(7/99)
  • JAVA面试宝典 -《Kafka 高吞吐量架构实战:原理解析与性能优化全攻略》
  • UE5多人MOBA+GAS 25、创建数据表初始化属性,使用MMC计算伤害
  • 模块化社交新范式:Moments用极简设计重构数字表达
  • 麒麟信安参编的三项软件供应链安全团体标准发布
  • 运维工程师面试题174道
  • 单片机最小系统硬件调试踩的一些坑
  • lesson16:Python函数的认识
  • Linux手动安装Nginx(基于Centos 7)
  • ESLint 完整功能介绍和完整使用示例演示
  • 01项目管理概论
  • Shell变量
  • 操作系统系统面试常问(进程、线程、协程相关知识)
  • Java使用FastExcel实现Excel文件导入
  • 基于springboot+vue+mysql框架开发的景区民宿预约系统的设计与实现(源码+论文)
  • 政务类产品的用户场景如何描述
  • STM32 DMA通信详解
  • Qt CMake 学习文档
  • 优化 CSS 性能
  • 设计模式是什么呢?
  • Spring AI之Prompt开发
  • npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1
  • 理解 PS1/PROMPT 及 macOS iTerm2 + zsh 终端配置优化指南