SWE-agent

v1.0.1 (commit 6aff215)
受限观察评估

基于特化 Agent-Computer Interface (ACI) 在沙箱环境中自主解决 GitHub Issue 的软件工程智能体。

分类: software-engineering
开源协议: MIT
评测日期: 2026年10月1日
复核期限: 2026年12月30日
证据等级: B、C
⚠️ 特定版本架构评估范围与责任说明

本项独立技术评估严格针对 SWE-agent v1.0.1 (commit 6aff215) 版本的默认架构机制与工程特征观察,不代表对任何后续上游版本或您具体业务系统的安全背书或生产放行批准。Agent 在生产环境中的实际安全边界,严格取决于您的外置工具沙箱、网络出站白名单与两阶段审批流设计。

评审协议 v1.1;应在 2026年12月30日 前复核。披露状态:不适用——本档案记录公开架构观察,未开启私下漏洞披露。

证据等级:A = 可复现观察;B = 版本关联文档或源码;C = 证据不足或超出评审范围。

部署证据与观察范围概要

结构化 ACI 命令改善了模型交互,但默认 Bash 与可写任务检出仍需出站、凭证、差异审查和人工合入控制。

五维工程控制边界与依赖说明

1. 权限与沙箱安全性 (Permission & Sandbox) 待补齐控制

Docker 是默认部署方式,但部署接口也支持其他运行时。工作区、网络与凭据边界仍需由实际选择的运行时明确实施。

2. 爆炸半径与熔断机制 (Blast Radius Control) 待补齐控制

可配置的费用与执行限制能停止任务,但默认 Bash 工具和可写任务检出仍需外部差异与资源上限。

3. 数据边界与防注入 (Data Boundaries & Prompt Injection) 待补齐控制

专用 ACI 命令可分页查看文件,但 v1.0.1 默认也启用通用 Bash 工具。Issue 文本和仓库内容仍是不可信的模型输入。

4. 状态幂等与回滚能力 (Idempotency & Recovery) 待补齐控制

系统从已被修改的任务检出中生成 Unified Diff。只有在检出完全隔离、补丁经独立门禁延后应用时,源分支才能保持未修改。

5. 运维可观测性 (Operational Observability) 已验证控制

导出结构化轨迹文件,包含模型消息、操作、环境观察、运行统计与提交的补丁;持久保留和访问控制仍是部署方责任。

企业部署建议补齐的硬控制

  • 配置 Docker 沙箱执行环境采用默认禁止网络出站策略(Default-Deny Egress),阻断凭据外传
  • Issue 复现阶段仅向容器注入只读 Token;补丁推送与 PR 提交由外部受信任流水线独立完成
  • 在一次性独立容器中执行单个任务,防止前序任务产生的环境残留污染后续执行
  • 所有生成的 .patch 文件在合入主分支前必须经过强制的人工审阅与金丝雀环境隔离测试

概述

SWE-agent(源于 SWE-bench 研究生态)将 Issue 描述转换为候选修复补丁。其 Agent-Computer Interface (ACI) 提供了面向模型交互的专用命令,但本次复核的配置同时暴露通用 Bash 工具,因此 ACI 结构不等于命令沙箱。

(说明:SWE-agent 维护团队也发布了独立的 mini-swe-agent 项目。本档案仅评估 SWE-agent v1.0.1,不将结论延伸到 mini-swe-agent 或后续版本。)

审查范围与版本基线

  • 官方仓库:SWE-agent/SWE-agent(MIT 许可证)。
  • 评审版本:v1.0.1 (Commit 6aff215)。下文文档与源码链接均固定到该标签。
  • 目标执行模式:使用默认 Docker 部署和隔离任务检出执行 Issue 到 Patch 的代码修复。
  • 主要证据来源:官方文档、GitHub 仓库核心源码(sweagent/environment/swe_env.py、sweagent/tools/、sweagent/agent/agents.py)以及 SWE-bench 评测复现配置。
  • 非测试范围:独立演进的 mini-swe-agent 仓库及第三方自动化打分平台。

已观察到的控制与源码证据

  1. 默认容器部署: SWEEnv 默认使用 Docker 部署配置,但接收的是通用部署接口,而非强制单一运行时。隔离能力取决于实际部署及其工作区、网络和凭据配置。
  2. ACI 命令与通用 Bash 并存: sweagent/tools/ 定义了结构化命令与分页查看,但 tools.py 默认启用通用 Bash 工具。ACI 改善了交互约束,但没有消除任意命令执行。
  3. 交付物物理隔离为补丁文件: 任务从已修改的检出中生成标准 Unified Diff。宿主源分支能否保持不变,取决于是否在隔离检出中执行,并由工程师或 CI 经独立门禁后才应用补丁。
  4. 执行轨迹可观测性留痕: sweagent/agent/agents.py 记录模型消息、操作、环境观察、运行统计和提交补丁等结构化轨迹。这些是有用的执行证据,但持久保留与访问控制仍需外部实施。

待验证假设与部署依赖

  1. 默认容器网络出站隔离: 已复核归档不能证明所选部署默认禁止网络出站。在暴露凭据之前,必须在 Docker/SWE-ReX 运行时中验证网络隔离,或通过出站代理强制执行。
  2. 凭据权限物理解耦: 若直接向容器环境注入具有写权限或 PR 创建权限的 GitHub Token,一旦出现间接提示词注入,该凭据在容器内部存在泄露风险。“凭证安全”属于待验证假设,必须在生产环境中由只读网关与受信任外部流水线做物理隔离。
  3. 容器内状态非事务性: 虽然生成的补丁是声明式的,但容器内部发生的环境变更(如编译残留、安装包篡改、全局缓存修改)无法事务级回滚。“环境无污染”的前提是每次执行后立即销毁并重建该容器。

部署证据与观察范围概要

SWE-agent v1.0.1 提供结构化 ACI 命令、可配置运行限制、轨迹输出和补丁交付物,同时保留默认通用 Bash 工具。企业使用仍需隔离的一次性检出、默认禁止出站、读写凭据分离和独立补丁审查。


说明:本部署档案反映对 SWE-agent v1.0.1 默认机制的架构分析与工程观察,不构成对该项目的安全认证或生产放行批准。企业实际引入时的安全性,严格取决于沙箱网络隔离、凭证解耦及人工门禁把关。

准备在企业内部定制或部署 SWE-agent?

开源基线评测仅能针对默认通用环境。BartsAI 为工程团队提供针对具体业务数据库连接、私有 API 调用权限及企业级发布门槛的专属 Launch Gate 准入审查。