mini-SWE-agent 深度解读:100 行 Python 代码,SWE-bench 74% 背后的极简 Agent 哲学

🔗 [GitHub: SWE-agent/mini-swe-agent](https://github.com/SWE-agent/mini-swe-agent) | [SWE-bench Leaderboard](https://www.swebench.com/)


📌 核心问题:Agent 框架越复杂越好吗?

2024 年 SWE-agent 横空出世,用精心设计的 Agent-Computer Interface(ACI)开创了 Coding Agent 范式。一年后,同一批人(Princeton + Stanford)反其道而行:如果我们把 Agent 砍到只剩 100 行 Python,还能跑多好?

答案令人震惊:mini-SWE-agent 用约 100 行代码的 Agent 类,在 SWE-bench Verified 上跑出了 >74% 的成绩——与 Gemini 3 Pro 配合甚至达到 74%,领先当时所有模型。

这不只是一个 benchmark 数字。它揭示了一个深刻洞察:在 LLM 能力足够强的今天,Agent scaffold 的复杂度可能是一种负债,而非资产。


🔥 关键数据

  • 代码量:Agent 类 ~100 行 Python(加上环境、模型、运行脚本总共几百行)
  • SWE-bench Verified:>74%(Gemini 3 Pro 达到 74%,位居榜首)
  • SWE-bench-Live(真实未见问题):~18-20%(与所有 Agent 持平,说明瓶颈在模型而非 scaffold)
  • 对比 OpenHands:72%(Claude 4.5 Extended Thinking),但代码量是 mini 的 100 倍以上
  • 采用者:Meta、NVIDIA、IBM、Essential AI、Anyscale、Princeton、Stanford 等
  • 安装:`pip install mini-swe-agent` 一条命令搞定

🧠 技术架构:三个核心设计决策

1. 只用 Bash,没有其他工具

mini-SWE-agent 不实现任何自定义工具——没有文件编辑 API、没有搜索命令、没有 Lint 接口。唯一的工具就是 bash。

这意味着:

  • 任何能理解 bash 的模型都能直接运行,无需 function calling 支持
  • 沙箱环境不需要预装任何包,只要有 bash 就行
  • 模型需要自己学会用 shell 完成所有操作(grep、sed、awk、python 一行脚本等)

2. 完全线性历史,没有状态管理

每次 Agent 步骤只是把新消息追加到 messages 列表。没有复杂的上下文压缩、没有历史折叠、没有滑动窗口。

好处:

  • 调试极简:看到的 messages 就是传给 LLM 的完整上下文
  • 微调友好:轨迹(trajectory)和 messages 完全一致,不需要额外转换
  • 可预测性:不会因为历史压缩丢信息

3. subprocess.run 替代 stateful shell

每个动作用 `subprocess.run` 独立执行,不维持持久 shell 会话。每次执行都是全新的进程。

这看起来效率低,但实际意义巨大:

  • 沙箱切换只需把 `subprocess.run` 换成 `docker exec`
  • 水平扩展极其简单——每个动作都是独立的
  • 不会出现 shell 状态污染导致的诡异 bug

🔑 关键洞察

洞察一:架构设计 > 代码量

mini-SWE-agent 证明了一个反直觉结论:Agent 的性能源于架构设计选择,而非代码复杂度。 100 行代码选对了架构,就能打败 10,000 行代码的重型框架。

这与软件工程的 "Worse is Better" 理念一脉相承——简单、可理解的系统往往比复杂的系统更有效。

洞察二:模型能力在快速消解 scaffold 价值

2024 年 SWE-agent 需要精心设计 ACI(Agent-Computer Interface),因为当时的模型不擅长直接操作 shell。2025 年模型能力大幅提升后,这些精心设计的接口反而成了多余。

当模型足够聪明时,最好的 scaffold 就是几乎没有 scaffold。 这对所有 Agent 框架开发者都是一个警示。

洞察三:SWE-bench-Live 揭示的真实天花板

在 SWE-bench Verified 上 74% 看起来很亮眼,但在 SWE-bench-Live(完全未见的新问题)上只有 ~18-20%。这不是 scaffold 的问题,是模型的天花板。 所有 Agent(无论多复杂)在真实新问题上表现都差不多。

说明当前 benchmark 的高分很大程度上来自数据污染和模式匹配,真正的软件工程能力还有很大提升空间。

洞察四:随机切换模型也能提升性能

mini-SWE-agent 团队还发现了一个有趣现象:在每个步骤随机切换 GPT-5 和 Sonnet 4,性能反而更好。 这暗示不同模型有不同的"认知风格",混合使用可以互补短板。


🚀 引发思考

mini-SWE-agent 不只是一个工具,它是对整个 Agent 生态的一次"反向压力测试"。当我们在 OpenClaw、Claude Code、Cursor 等工具中堆叠越来越多的功能(MCP、Skills、Hooks、Sub-agents)时,是否应该定期问自己:

如果砍掉 90% 的代码,核心能力会受损多少?

答案可能出乎意料——就像 mini-SWE-agent 展示的那样。

对于 Agent 开发者,这意味着:

  • 优先投资模型选择和 prompt 设计,而非 scaffold 功能
  • 保持 scaffold 的可替换性——今天需要的 ACI,明天可能不需要
  • 用最简系统作为 baseline,复杂系统必须证明其额外复杂度的价值

📎 相关阅读

  • [SWE-agent 原论文(NeurIPS 2024)](https://arxiv.org/abs/2405.15793)
  • [mini-SWE-agent 文档](https://mini-swe-agent.com/latest/)
  • [OpenHands vs SWE-Agent 对比](https://localaimaster.com/blog/openhands-vs-swe-agent)
  • [mini-SWE-agent 教程:构建极简 AI Agent](https://minimal-agent.com/)

*逍遥云初 | 2026.05.04*