mini-swe-agent

用 Bash 驱动的极简软件工程代理,用于处理 GitHub issue 或本地命令行任务。

Star 数
★ 9.1k
最近更新
3 天前
License
MIT
主语言
Python

30 秒速览

运行形态
命令行工具代码库 / SDK
可在哪里用
通用 · 跨平台
费用
软件免费,模型调用费用自付
上手难度
低 · 几分钟可跑通
开始前需要
Pythonpip 或 uv 或 pipxShell / 命令行网络访问本地文件系统
典型场景
开发者在本地终端中希望让代理协助处理一个 GitHub issue 时,可运行 mini。
不适合
  • 需要结构化工具集或多工具接口实验的团队,应改用 SWE-agent
  • 依赖跨命令保持 shell 状态的交互式工作流
  • 希望开箱即用、无需自备模型 API 密钥的用户

这个 Agent 能做什么,适合哪些场景?

mini-swe-agent 是面向软件工程任务的 Python 代理,提供 mini 命令行工具和 Python 绑定。其默认组合示例为 DefaultAgent、LitellmModel 与 LocalEnvironment。代理只使用 Bash 作为操作接口,将每一步消息线性追加到后续传给语言模型的上下文中。动作通过 subprocess.run 独立执行,而不是维护持久化 shell 会话;文档同时列出本地环境、Docker/Podman、Singularity/Apptainer、bubblewrap 和 contree 等部署边界。项目还提供批量推理和轨迹浏览器,并宣称在 SWE-bench verified 上得分超过 74%。

用户通过 mini 启动命令行代理,或在 Python 中创建 DefaultAgent(LitellmModel(model_name=...), LocalEnvironment()) 并调用 agent.run("Write a sudoku game")。代理将任务和每轮结果追加为线性消息历史,传给语言模型;它不依赖模型的工具调用接口。模型给出的操作以 Bash 执行,并由 subprocess.run 逐条独立运行;因此每个动作没有持续 shell 状态。项目文档列出用于本地任务、批量 SWE-bench 推理和查看轨迹的接口,但未在所给材料中定义具体的补丁、提交或报告文件格式。

  1. 开发者在本地终端中希望让代理协助处理一个 GitHub issue 时,可运行 mini。
  2. Python 工具开发者需要把一个可编程的工程代理嵌入脚本时,可用 DefaultAgent、LitellmModel 和 LocalEnvironment 组合后调用 agent.run(...)。
  3. 评测研究人员需要批量运行 SWE-bench 推理,并检查模型与代理的完整线性轨迹时,可使用项目列出的批量推理和轨迹浏览器。
  4. 需要在容器或隔离运行环境中执行代理动作的团队,可采用文档列出的 Docker、Podman、Singularity/Apptainer、bubblewrap 或 contree 路径。
  5. 进行微调或强化学习实验、且希望避免复杂代理脚手架的研究者,可利用其 Bash-only、线性历史的控制流。

如何安装或部署这个 Agent?

快速试用:pip install uv && uvx mini-swe-agent,或 pip install pipx && pipx ensurepath && pipx run mini-swe-agent。安装到当前环境:pip install mini-swe-agent,随后运行 mini。从源码安装:git clone https://github.com/SWE-agent/mini-swe-agent.git,cd mini-swe-agent && pip install -e .,随后运行 mini。运行前还需要为 LitellmModel 选择并配置模型;所给材料未说明具体凭据名称、环境变量或配置参数。

如何使用这个 Agent?

安装后执行 mini 启动 CLI。Python 调用可按示例构造:agent = DefaultAgent(LitellmModel(model_name=...), LocalEnvironment()),然后执行 agent.run("Write a sudoku game")。将 model_name=... 替换为已配置模型的名称;所给材料未提供该模型配置的完整命令。

这个 Agent 有哪些优点和局限?

优点
  • 控制流刻意精简:代理类约 100 行 Python,且消息历史是逐步追加的线性记录,便于检查模型实际接收的上下文。
  • 只以 Bash 作为操作接口,不要求语言模型支持工具调用接口。
  • 每个动作通过独立的 subprocess.run 执行,避免持久 shell 会话状态,并适合替换为沙箱执行路径。
  • 同时提供 mini CLI、Python 绑定、批量推理和轨迹浏览器。
局限
  • 核心操作接口仅为 Bash;需要专用结构化工具或多工具接口实验时,项目自身并不提供这些能力。
  • 动作之间没有持久 shell 会话,依赖跨命令 shell 状态的工作流需要自行适配。
  • 使用模型所需的具体供应商凭据、环境变量和配置步骤未在所给材料中给出。
  • README 明确提示这是 v2;从 v1 迁移需要遵循迁移指南。

这个 Agent 与同类方案有什么区别?

README 将 mini-swe-agent 定位为默认选择,适合本地 CLI、简单控制流、较快的沙箱与基准运行,以及不希望过度适配特定代理脚手架的微调或强化学习场景。若要试验多组带各自接口的工具或不同历史处理器,README 建议使用 SWE-agent。两者都被描述为具备 SWE-Bench 表现和轨迹浏览器。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
mini-swe-agent 当前 54 · 缺口较多 命令行工具免费 + 模型费 ★ 9.1k 3 天前 Python —
SWE-bench 软件修复基准 45 · 缺口较多 命令行工具免费 + 模型费 ★ 6.1k 2 个月前 Python —
SWE-agent 58 · 缺口较多 命令行工具免费 + 模型费 ★ 21k 3 个月前 Python —
Ralph for Claude Code 53 · 缺口较多 命令行工具免费 + 模型费 ★ 9.7k 2 天前 Shell Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
54/ 100 五分制 2.7 / 5
信任安全 10/29
可靠稳定 9/14
适用触发 12/18
规范维护 10/18
有效结果 9/13
证据核验 4/8
查看各维度的扣分理由
信任安全10 / 29 · 1.7/5

证据显示:依赖中明确排除了已知有漏洞的litellm版本(1.82.7/8)和openai版本(1.100.0/1.100.1),并注明原因,体现了对依赖安全的关注。但未发现用户确认机制(如命令执行前确认),也未发现回滚机制。数据流透明度方面,README描述了线性历史,但未明确说明数据如何传输至外部模型。敏感数据处理未提及。外部影响方面,agent执行bash命令,可能产生副作用,但未提供沙箱默认配置。来源归属方面,README和pyproject中明确列出了作者和机构。扣分原因:缺少用户确认和回滚机制,数据流和敏感数据处理说明不足。

可靠稳定9 / 14 · 3.2/5

证据显示:测试覆盖了多种场景,包括超时、步骤限制、成本限制、格式错误等,表明内部一致性较好。依赖在pyproject中明确列出,且排除了有问题的版本,依赖可用性较好。失败消息方面,测试验证了超时和格式错误时的处理,但未提供详细的错误消息文档。扣分原因:失败消息的文档化不足。

适用触发12 / 18 · 3.3/5

证据显示:README明确说明了目标用户(开发者、研究人员)和使用场景(CLI、批量推理、Python绑定)。能力边界方面,说明了仅使用bash工具,无其他工具。触发精度方面,通过CLI命令和Python API触发,描述清晰。环境适配方面,支持多种环境(本地、docker、singularity等)。扣分原因:未明确说明不支持的环境或限制。

规范维护10 / 18 · 2.8/5

证据显示:README提供了清晰的安装说明、使用示例、FAQ链接和文档链接。命名稳定,提供了多个CLI入口。已知限制方面,README提到了一些设计选择(如无shell会话),但未系统列出所有限制。许可证为MIT,明确。版本控制方面,有v2迁移指南,但未提供详细的变更日志。维护责任方面,有贡献指南和文档。扣分原因:已知限制和变更日志不够详细。

有效结果9 / 13 · 3.5/5

证据显示:输出可用性方面,提供了CLI和Python绑定,输出格式清晰。边际价值方面,强调简单性和性能,但未提供与其他工具的详细对比。成本效益方面,声称性能高且启动快,但未提供具体成本数据。扣分原因:缺乏具体性能数据和成本对比。

证据核验4 / 8 · 2.5/5

证据显示:README中的性能声明(>74% SWE-bench)有外部基准链接,但未提供具体复现步骤。交叉来源验证方面,有外部博客和基准链接,但未提供独立验证。事实与推断分离方面,README区分了事实(如代码行数)和推断(如性能声明)。扣分原因:性能声明缺乏详细复现步骤和独立验证。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 该Agent会执行任意bash命令,可能对系统产生不可逆影响,建议在沙箱环境中运行。
  • 未提供用户确认机制,命令执行前不会征求用户同意,需谨慎使用。
  • 数据流透明度不足,未明确说明发送给外部模型的数据内容,涉及敏感数据时需注意。
证据充分度:低 评估于 2026年8月9日 审查版本 a83fcae82d2a 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v2.4.6
    发布说明摘录
    What's Changed * fix(agents): count billed calls that fail to parse against cost_limit by @EnesYilmazcode in https://github.com/SWE-agent/mini-swe-agent/pull/915 Full Changelog: https://github.com/SWE-agent/mini-swe-agent/compare/v2.4.5...v2.4.6
    在 GitHub 查看 ↗
  2. v2.4.5
    发布说明摘录
    What's Changed * fix(config): read config files as UTF-8 regardless of locale by @EnesYilmazcode in https://github.com/SWE-agent/mini-swe-agent/pull/892 * fix(models): don't mask malformed tool-call errors as truncation by @klieret in https://github.com/SWE-agent/mini-swe-agent/pull/896 Full Changelog: https://github.com/SWE-agent/mini-swe-agent/compare/v2.4.4...v2.4.5 New contributors Thanks to [simple-zy](https://github.com/simple-zy) for raising issue https://github.com/SWE-agent/mini-swe-agent/issues/894
    在 GitHub 查看 ↗
  3. v2.4.4
    发布说明摘录
    What's Changed * fix: remove startup-banner emoji that crashes import on non-UTF stdout by @EnesYilmazcode in https://github.com/SWE-agent/mini-swe-agent/pull/886 * fix(benchmarks): don't mutate shared config across worker threads in get_sb_environment by @EnesYilmazcode in https://github.com/SWE-agent/mini-swe-agent/pull/887 New Contributors * @EnesYilmazcode made their first contribution in https://github.com/SWE-agent/mini-swe-agent/pull/886 Full Changelog: https://github.com/SWE-agent/mini-swe-agent/compare/v2.4.3...v2.4.4
    在 GitHub 查看 ↗

常见问题

它需要模型具备函数调用或工具调用能力吗?
不需要。README 表示代理只使用 Bash,且不需要使用语言模型的工具调用接口。
它能在哪些执行环境中部署?
所给材料列出本地环境、Docker/Podman、Singularity/Apptainer、bubblewrap 和 contree。
模型和凭据如何配置?
材料说明支持经 LiteLLM、OpenRouter、Portkey 等的模型路径,以及 /completion 和 /response 端点,但没有给出具体凭据或配置参数。
应选择 mini-swe-agent 还是 SWE-agent?
若优先本地命令行、简单控制流或稳定的沙箱/评测路径,README 建议选择 mini-swe-agent;若需要试验多种工具接口或历史处理器,则选择 SWE-agent。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents