极简 AI 软件工程智能体
📣 构建极简 AI 智能体的新教程
📣 Gemini 3 Pro 在 mini-swe-agent 验证的 SWE-bench 上达到 74%!
📣 新博客文章:在 GPT-5 和 Sonnet 4 之间随机切换可提升性能



[!WARNING]
这是 mini-swe-agent v2。请阅读迁移指南。如需旧版本,请查看 v1 分支。
2024 年,我们构建了 SWE-bench 和 SWE-agent,并助力开启了编码智能体革命。
现在我们要问:如果我们的智能体简化 100 倍,是否仍能保持几乎相同的性能?
mini 是:
- 广泛采用:被 Meta、NVIDIA、Essential AI、IBM、Nebius、Anyscale、普林斯顿大学、斯坦福大学等众多机构使用。
- 极简:核心智能体类仅约 100 行 Python 代码(加上一些环境、模型和运行脚本的代码)—— 没有花哨的依赖!
- 高性能:在 SWE-bench 验证基准测试中得分 >74%;启动速度远快于 Claude Code。
- 可部署:支持本地环境、docker/podman、singularity/apptainer、bubblewrap、contree 等。
- 兼容性强:通过 litellm、openrouter、portkey 等支持所有模型。支持
/completion 和 /response 端点、交错思考等。
- 由普林斯顿和斯坦福团队构建,他们也是 SWE-bench、SWE-agent 等项目背后的团队。
- 经过测试:

更多动机(研究角度)
[SWE-agent](https://swe-agent.com/latest/) 在 2024 年推动了 AI 智能体的发展。当时,我们非常强调为智能体提供工具和特殊接口。
然而一年后,随着语言模型能力增强,构建一个有用的智能体已经不再需要这些东西了!
事实上,`mini` 智能体:
- **除了 bash 没有任何其他工具** —— 它甚至不需要使用语言模型的工具调用接口。这意味着你可以用任何模型运行它。在沙盒环境中运行时,你也不需要安装任何包 —— 它只需要 bash。
- **拥有完全线性的历史记录** —— 智能体的每一步都只是将信息追加到消息列表中,仅此而已。因此,轨迹和传递给语言模型的消息之间没有区别。这非常利于调试和微调。
- **使用 `subprocess.run` 执行动作** —— 每个动作完全独立(而不是保持一个有状态的 shell 会话运行)。这使得在沙盒中执行动作变得非常简单(只需将 `subprocess.run` 替换为 `docker exec`),并且可以轻松扩展。说真的,这[非常重要](https://mini-swe-agent.com/latest/faq/#why-no-shell-session),相信我。
这使其成为完美的基线系统,也是一个将语言模型(而非智能体框架)置于我们关注中心的系统。
你可以在 [SWE-bench(仅 bash)](https://www.swebench.com/) 排行榜上看到结果,该榜单使用 `mini` 评估不同语言模型的性能。
更多动机(作为工具)
一些智能体是过度拟合的研究产物。另一些则是 UI 臃肿的前端怪兽。
`mini` 智能体希望成为一个可自由修改的工具,而不是一个黑盒。
- **足够简单**,可以一目了然
- **足够方便**,可用于日常工作流
- **足够灵活**,易于扩展
与其他智能体(包括我们自己的 [swe-agent](https://swe-agent.com/latest/))不同,它极其简化,因为它:
- **除了 bash 没有任何其他工具** —— 它甚至不需要使用语言模型的工具调用接口。与其为智能体可能想做的每件特定事情实现自定义工具,不如完全专注于让语言模型充分利用 shell 的全部潜力。想让它做特定的事情,比如提交 PR?直接告诉语言模型去想办法,而不是花时间在智能体中实现它。
- **使用 `subprocess.run` 执行动作** —— 每个动作完全独立(而不是保持一个有状态的 shell 会话运行)。这对于智能体的稳定性[非常重要](https://mini-swe-agent.com/latest/faq/#why-no-shell-session),相信我。
- **拥有完全线性的历史记录** —— 智能体的每一步都只是将信息追加到下一步传递给语言模型的消息中,仅此而已。这非常利于调试和理解语言模型接收到的提示。
我应该使用 SWE-agent 还是 mini-SWE-agent?
你应该将 `mini-swe-agent` 作为默认选择。
特别是,在以下情况下你应该使用 `mini-swe-agent`:
- 你需要一个在本地快速运行的命令行工具
- 你需要一个控制流非常简单的智能体
- 你需要更快速、更简单、更稳定的沙盒化和基准评估
- 你正在进行微调或强化学习,不希望过度拟合到特定的智能体框架
在以下情况下你应该使用 `swe-agent`:
- 你想尝试具有不同接口的不同工具集
- 你想尝试不同的历史处理器
两者都提供:
- 在 SWE-Bench 上的出色性能
- 轨迹浏览器
CLI (mini)
|
批量推理
|
|

|

|
|
轨迹浏览器
|
Python 绑定
|
|

|
agent = DefaultAgent(
LitellmModel(model_name=...),
LocalEnvironment(),
)
agent.run("Write a sudoku game")
|
开始使用!
选项 1: 如果你只想试用 CLI(包安装在匿名虚拟环境中)
pip install uv && uvx mini-swe-agent
# 或者
pip install pipx && pipx ensurepath && pipx run mini-swe-agent
选项 2: 在当前环境中安装 CLI 和 Python 绑定
pip install mini-swe-agent
mini # 运行 CLI
选项 3: 从源码安装(开发者设置)
git clone https://github.com/SWE-agent/mini-swe-agent.git
cd mini-swe-agent && pip install -e .
mini # 运行 CLI
在我们的文档中阅读更多信息:
引用
如果你觉得这项工作有帮助,请考虑在你的工作中引用 SWE-agent 论文:
@inproceedings{yang2024sweagent,
title={{SWE}-agent: Agent-Computer Interfaces Enable Automated Software Engineering},
author={John Yang and Carlos E Jimenez and Alexander Wettig and Kilian Lieret and Shunyu Yao and Karthik R Narasimhan and Ofir Press},
booktitle={The Thirty-eighth Annual Conference on Neural Information Processing Systems},
year={2024},
url={https://arxiv.org/abs/2405.15793}
}
我们的其他项目: