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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值