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

大模型向量数据库云安全

picture.image

在近期的 SWE-bench Verified 排行榜上,TRAE Agent 拿到了 75.2% 的求解率分数 ,我们也非常激动地将其作为开源项目贡献给社区。

picture.image

什么是 TRAE Agent?

TRAE Agent 是一个基于大语言模型(LLM)的智能助手,专为软件工程任务设计。你可以把它想象成你团队中的一位资深工程师,能够自主完成以下任务:

  • Lakeview 模式可对 Agent 执行的步骤进行简明总结

  • 通过系统性复现与分析调试复杂问题

  • 制定详细计划并实现健壮的修复方案

  • 理解任意代码库并掌握现有代码模式

  • 编写符合最佳实践的高质量代码

picture.image

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 验证提升选择准确性

picture.image

Selector Agent 概览图

Selector Agent 是一个更强健、可扩展的补丁选择机制,分为三个阶段:

  • 多模型生成候选补丁

  • 回归测试进行初筛

  • 使用语法等价聚类与多 Agent 验证做最终选择

通过在语法等价的补丁中进行聚类,并结合上下文推理与辅助工具验证,Selector Agent 显著提升了准确率。该机制不仅利用模型共识,还引入了对过拟合和伪一致性的防护,从而提高在更大候选空间中的补丁选择能力。

我们力求在多样性与可靠性之间取得平衡,推动 SWE-bench Verified 自动修复性能的上限。更多选择机制细节可见我们之前的文章:一文讲解,Trae 如何在 SWE-bench Verified 中达到70.6%的求解率

最终成果

我们的方法在 SWE-bench Verified 基准集上达到了 75.2% 的总成功率,成功解决了 500 个真实软件工程任务中的 376 个。

picture.image

开源项目包括哪些内容?

多种 LLM 支持

picture.image

LLM Client 系统为多个 AI 服务提供统一接口,已支持 OpenAI、Anthropic、Azure,并便于扩展至更多提供商。

LLMClient (llm_client.py):

  • “工厂模式”,支持不同 LLM 提供商

  • 统一聊天补全接口

  • 内置轨迹(trajectory)记录功能

丰富的工具系统

picture.image

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 发送任务完成信号的简单但关键的工具。

全面可观测性

picture.image

轨迹记录系统详尽记录 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"

picture.image

加入我们

立即体验:

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

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论