Type: entity
Confidence: 0.85
Created: 2026-04-16
Updated: 2026-04-16
Tags: AI工具Agent系统

SWE-agent

概述

SWE-agent 是由 Princeton 团队(2024)开发的 AI Agent 系统,能将 LLM 转化为软件工程师,自动修复 GitHub 仓库中的真实 issue 和 bug。通过专门设计的 Agent 计算机接口(ACI)和 ReAct 风格循环,在 SWE-bench 上取得显著优于直接输出 patch 的效果。

关键内容

核心架构

  1. ReAct 风格循环:每一步生成 thought(思考)和 action(命令),再接收 observation(环境反馈),形成"想一点、做一点、看反馈、再想一点"的交互循环。
  2. Agent 计算机接口(ACI):为 LLM 专门设计的工具集,包括文件浏览、编辑、搜索、lint 检查等,而非简单复用人类 CLI 工具。
  3. Trajectory 落盘:每次运行产生 .traj 文件,记录完整的 thought/action/observation 序列,支持事后分析和调试。

SWE-bench 表现

Trajectory 格式

SWE-agent 的 .traj 文件是 JSON 格式,核心结构包含: - 顶层:environmenttrajectory 数组 - 每步:response(模型原文)、thought(解析后的思考)、action(执行的命令)、observation环境反馈)、state(环境状态)、query(发送给模型的输入) - 版本差异:1.1.0 之前用 message 字段表示输入,1.1.0 起改为 query 表示精确输入

Edit 后验证

SWE-agent 在每次 edit 后立即运行轻量级校验: - USE_LINTER 开关控制是否启用 linter - 默认使用 flake8 --select=F821,F822,F831,E111,E112,E113,E999,E902 对 .py 文件做单文件检查 - 引入语法错误的编辑会被拒绝("Your changes have NOT been applied") - 做了 previous errors filtering:更新旧错误行号,过滤编辑窗口外的旧问题,只保留本次 edit 新引入的错误 - 官方主线没有内建完整 LSP 验证,更偏向"快速、局部、可恢复"的 lint/syntax 检查

工程化建议

自定义实现时建议顶层补充:instance_idschema_versionrun_idagent_versionmodel_nameconfig_refinfo。 Step 级建议补充:step_idtimestamp_starttimestamp_endparse_errorexit_codetool_nametool_argsobservation_typecosttokens_prompttokens_completion

来源

相关