尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

mini-swe-agent ConTree 环境指南:基于 ConTree 沙箱执行 SWE-bench 任务

发布时间:2026/9/27 9:18:38

资讯中心
01
ARTICLE

mini-swe-agent ConTree 环境指南:基于 ConTree 沙箱执行 SWE-bench 任务

mini-swe-agent ConTree 环境指南:基于 ConTree 沙箱执行 SWE-bench 任务
人工智能大模型AI Agent代码智能体【免费下载链接】mini-swe-agentThe 100 line AI agent that solves GitHub issues or helps you in your command line. Radically simple, no huge configs, no giant monorepo—but scores 74% on SWE-bench verified!项目地址https://gitcode.com/gh_mirrors/mi/mini-swe-agent点击查看免费下载导读本文围绕 ConTree 环境参考文档系统讲解 mini-swe-agent 如何借助 ConTree 云端沙箱执行命令从安装依赖、配置令牌与 Base URL到通过mini-extra swebench命令行或 YAML 配置接入 SWE-bench 评测流程。读完本文你将掌握 ConTree 环境的完整配置参数镜像、工作目录、环境变量、超时、镜像导入等、命令执行与结果解析的底层机制以及如何与默认 Docker 环境无缝切换。一、ConTree 环境在 mini-swe-agent 中的定位mini-swe-agent 将“执行环境”抽象为统一的Environment协议定义于 src/minisweagent/init.py只要实现了execute、get_template_vars、serialize三个接口即可接入 Agent 主循环。ConTree 环境正是该协议的一个远程沙箱实现类名为ContreeEnvironment源码位于 src/minisweagent/environments/extra/contree.py。与内置的 Docker、Singularity、本地环境不同ConTree 由外部平台提供具备面向 Agent 的沙箱能力。mini-swe-agent 通过_ENVIRONMENT_MAPPING注册表见 src/minisweagent/environments/init.py将字符串标识contree映射到ContreeEnvironment类_ENVIRONMENT_MAPPING { ... contree: minisweagent.environments.extra.contree.ContreeEnvironment, }因此无论是 CLI 参数还是 YAML 配置中的environment_class: contree最终都会经过 get_environment_class 解析并实例化。前提限制ConTree 环境需要有效的 ConTree 平台令牌token与平台分配的 Base URL属于外部服务依赖无法离线使用。项目文档在 docs/advanced/environments.md 中将其定位为“为 Agent 构建、支持 Git 式执行”的沙箱方案。二、环境安装与凭证配置Setup2.1 安装依赖ConTree 环境依赖contree-sdkmini-swe-agent 将其作为可选依赖组暴露pip install mini-swe-agent[contree]对应pyproject.toml中的可选依赖声明pyproject.tomlcontree [ contree-sdk0.2.0, ]注意该 SDK 是运行时依赖测试与开发场景下也需安装mini-swe-agent[dev]才能运行相关测试用例。若将 ConTree 与 SWE-rex、Modal 等环境一起使用可安装mini-swe-agent[full]一键聚合全部环境依赖pyproject.toml。2.2 配置令牌与 Base URL安装完成后通过环境变量提供凭证export CONTREE_TOKENyour-contree-token export CONTREE_BASE_URLyour-given-base-url-for-contree这两个变量会被contree-sdk读取用于构造ContreeConfig。从源码看ContreeEnvironment.__init__src/minisweagent/environments/extra/contree.py支持两种方式传入 SDK 配置直接传入ContreeConfig实例传入字典例如{base_url: ..., token: ...}此时环境会自动将其转换为ContreeConfigif isinstance(self.config.contree_config, dict): self.config self.config.model_copy(update{contree_config: ContreeConfig(**self.config.contree_config)})测试用例 tests/environments/extra/test_contree.py 正是以contree_config{base_url: http://fake, token: fake-token}的字典形式构造环境的并断言转换后isinstance(env.config.contree_config, ContreeConfig)成立。这意味着在 YAML 配置文件中contree_config同样可以直接写成键值对字典。三、在 SWE-bench 评测中使用 ConTree 环境Usage3.1 命令行方式安装并配置好凭证后即可像使用其他环境一样启动 mini-swe-agentmini-extra swebench \ --subset verified \ --split test \ --workers 100 \ --environment-class contree参数说明参数含义--subset verified使用 SWE-bench Verified 子集对应princeton-nlp/SWE-Bench_Verified映射见 src/minisweagent/run/benchmarks/swebench.py--split test评测数据划分--workers 100并发工作进程数--environment-class contree显式指定环境类型为 ConTreemini-extra是 mini-swe-agent 的附加命令入口src/minisweagent/run/utilities/mini_extra.pyswebench子命令通过 typer 解析上述参数。在 swebench.py 中--environment-class被定义为可选参数随后写入环境配置environment: {environment_class: environment_class or UNSET},3.2 YAML 配置方式同样的效果也可以直接在swebench.yaml配置文件中声明environment: environment_class: contree cwd: /testbed timeout: 60两种方式等价——文档明确指出“It can be specified both through cli parameter or by settingenvironment_classtocontreein your swebench.yaml config”。CLI 参数会覆盖或补充配置文件中的对应字段。项目自带的基准配置模板位于 src/minisweagent/config/benchmarks/swebench.yaml其中environment_class默认值为docker替换为contree即可切换后端其余cwd、timeout、env等字段对 ConTree 环境同样生效。3.3 ConTree 环境的镜像约定切换到 ConTree 环境后SWE-bench 运行器会自动为实例镜像添加docker://前缀src/minisweagent/run/benchmarks/swebench.pyif env_config[environment_class] in [docker, swerex_modal]: env_config[image] image_name elif env_config[environment_class] in [singularity, contree]: env_config[image] docker:// image_name也就是说SWE-bench 实例的image_name如docker.io/swebench/sweb.eval.x86_64.*:latest会被统一改写为 OCI 镜像引用格式后交给 ConTree 拉取。这是 ConTree 环境在 SWE-bench 场景下与 Docker 环境的关键差异了解这一点可以避免误以为镜像配置写错了。四、ContreeEnvironment 配置参数详解ContreeEnvironmentConfig继承自 pydantic 的BaseModelsrc/minisweagent/environments/extra/contree.py支持通过 YAML 或**kwargs传入。全部字段如下字段类型默认值说明contree_configContreeConfig \| dict[str, Any]必填SDK 连接配置token、base_url 等imagestr必填容器镜像标识image_tagstr \| NoneNone指定镜像标签拉取若失败则按image导入并回填标签cwdstr/容器内命令执行的工作目录cwd_auto_createboolTrue执行命令前自动mkdir -p创建工作目录envdict[str, str]{}注入容器的环境变量forward_envlist[str][]从宿主机转发的环境变量名列表仅在宿主已设置时转发与env冲突时env优先interpreterlist[str][bash, -c]命令解释器timeoutint100容器内单条命令的超时时间秒import_usernamestr \| NoneNone镜像需要导入时使用的用户名import_passwordstr \| NoneNone镜像需要导入时使用的密码关键字段的行为细节image_tag的降级逻辑_pull_imagesrc/minisweagent/environments/extra/contree.py调用 SDK 的client.images.oci(...)若按 tag 拉取失败则回退到按image导入并把实际 tag 写回image_tag。forward_env的转发语义execute中通过字典推导式逐个检查宿主机环境变量仅转发已设置的变量随后用env.update(self.config.env)让显式配置的变量覆盖转发变量src/minisweagent/environments/extra/contree.py。对应测试见 tests/environments/extra/test_contree.py。cwd_auto_create的初始化行为构造环境时若为True会立即以cwd/执行一次mkdir -p {cwd}src/minisweagent/environments/extra/contree.py确保后续命令不会因目录不存在而失败。timeout的默认值源码默认100秒而 SWE-bench 内置模板中环境级timeout为60两处独立生效配置时需注意区分。五、命令执行与结果解析的底层实现5.1 execute 的完整调用链ContreeEnvironment.executesrc/minisweagent/environments/extra/contree.py接收 Agent 产出的 action 字典流程如下取出action[command]合并forward_env与env得到容器环境变量用_shell_command将命令包装为bash -c shlex.quote(command)src/minisweagent/environments/extra/contree.pyshlex.quote保证特殊字符安全调用self.session.run(shell..., cwd..., timeout..., disposableFalse, env...)并.wait()成功时返回{output: stdout stderr, returncode: exit_code, exception_info: }异常时捕获并返回returncode-1、exception_info及extra字段含异常类型、异常信息若异常是 dataclass 还会序列化其字段。测试 tests/environments/extra/test_contree.py 验证了shell、cwd、timeout、disposable、env五个参数被原样传给 SDKtest_execute_exception 则验证了 SDK 抛异常时返回returncode -1且异常信息被记录。返回值结构遵循ExecutionResultTypedDictsrc/minisweagent/environments/extra/contree.pyclass ExecutionResult(TypedDict): output: str returncode: int exception_info: str extra: NotRequired[dict[str, Any]]Agent 的观察模板正是基于这些字段渲染returncode、output、exception的见 src/minisweagent/config/benchmarks/swebench.yaml。5.2 任务提交标记SubmittedConTree 环境复用了统一的提交协议若命令输出以COMPLETE_TASK_AND_SUBMIT_FINAL_OUTPUT开头且returncode 0_check_finishedsrc/minisweagent/environments/extra/contree.py会抛出Submitted异常将剩余输出作为最终提交内容交给 Agent 主循环。对应测试 test_execute_raises_submitted 验证了该行为同时 test_execute_no_submit_on_nonzero_returncode 确认命令失败时returncode 非 0不会触发提交即标记仅在命令成功时生效。5.3 模板变量与序列化get_template_varssrc/minisweagent/environments/extra/contree.py将环境配置与宿主平台信息platform.uname()递归合并供 Agent 提示词模板使用serializesrc/minisweagent/environments/extra/contree.py记录环境类型全限定名与完整配置写入轨迹文件中便于复现与审计。六、与其它环境的对比与选型建议维度Docker默认ConTree沙箱位置本地 Docker 守护进程ConTree 云端沙箱需 token base_url镜像格式直接使用image_name自动加docker://前缀OCI 格式网络依赖本地拉镜像全程依赖 ConTree 服务可用性并发扩展受本地资源限制由平台侧资源决定--workers 100级并发更易横向扩展安装成本内置需pip install mini-swe-agent[contree]从代码结构看mini-swe-agent 的设计允许在docker、singularity、local、swerex_docker、swerex_modal、bubblewrap、contree之间无缝切换src/minisweagent/environments/init.pyConTree 主要适合希望将代码执行托管到云端沙箱、规避本地容器运行时限制的 SWE-bench 评测场景。七、常见问题排查基于源码与测试安装后import contree_sdk失败确认使用pip install mini-swe-agent[contree]而非基础包SDK 版本要求contree-sdk0.2.0pyproject.toml。提示 Unknown environment type确认environment_class拼写为contree注册表键值见 src/minisweagent/environments/init.py或直接使用类的全限定名。命令返回returncode -1且exception_info非空说明 SDK 调用抛异常如网络中断、凭证失效检查CONTREE_TOKEN/CONTREE_BASE_URL是否设置正确并查看extra.exception_type定位具体错误src/minisweagent/environments/extra/contree.py。工作目录不存在报错保持cwd_auto_create: true默认值环境构造时会自动执行mkdir -p若手动关闭需保证镜像内cwd已存在。提交未被触发提交标记只在returncode 0时生效检查命令是否因超时默认 100 秒或非零退出被判定为失败tests/environments/extra/test_contree.py。结语ConTree 环境为 mini-swe-agent 提供了“免本地容器、云端沙箱化”的代码执行后端只需一次安装、两个环境变量和一个--environment-class contree参数即可接入成熟的 SWE-bench 评测流水线。理解其配置字段、镜像约定与提交协议能帮助你在多环境并存的评测体系中快速定位问题、按需选型。更进一步可参考 SWE-bench 使用文档 了解完整的评测输出与结果验证流程或在 tests/environments/extra/test_contree.py 中阅读环境行为的完整测试覆盖。赞分享人工智能大模型AI Agent代码智能体【免费下载链接】mini-swe-agentThe 100 line AI agent that solves GitHub issues or helps you in your command line. Radically simple, no huge configs, no giant monorepo—but scores 74% on SWE-bench verified!项目地址https://gitcode.com/gh_mirrors/mi/mini-swe-agent点击查看免费下载相关推荐LifeOS 中的 Remotion 技能用 React 代码驱动可复现的程序化视频创作LifeOS 中的 Remotion 技能用 React 代码驱动可复现的程序化视频创作 本指南以 LifeOS 开源仓库中的 Remotion 技能定义 h人工智能大模型AI Agent代码智能体基于 cube-sandbox 的 SWE-bench 自动化评测E2B 兼容沙箱与 mini-swe-agent 的端到端实践基于 cube sandbox 的 SWE bench 自动化评测E2B 兼容沙箱与 mini swe agent 的端到端实践 导读 本文讲解 CubeSaAgent 沙箱虚拟化云原生人工智能后端容器运行时Bytebase 页面 Agent 前端模块Page Agent架构解析与扩展开发指南Bytebase 页面 Agent 前端模块Page Agent架构解析与扩展开发指南 导读 Bytebase 控制台内置了一个面向数据库日常运维的“页面人工智能大模型AI Agent代码智能体上一篇Element TiptapVue3开发者必备的现代富文本编辑器下一篇Open5GS实战从零构建高性能5G核心网创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。