Skip to main content
mini_swe_agent Harness 运行 mini-SWE-agent,处理 SWE-bench 式的仓库修复任务。 AgentCompass 根据 model 命令行参数和 Harness 参数生成 mini-SWE-agent 配置,让 agent 通过所选环境编辑、测试仓库,最后回收目标补丁并把原生轨迹转换为 RunResult。model 协议支持 openai-chat 与 openai-responses。 agent 安装/执行所需变量统一通过 --env-params '{"run_env_variables":{"MY_VARIABLE":"value"}}' 配置,不再接受旧 Harness env 字段。这些变量用于安装、agent 执行及其工具,不延续到后续产物命令和 verifier。详见任务环境变量。

工作原理

  1. 准备 mini-SWE-agent:install_strategy=install_if_missing 会先导入或查找 mini-SWE-agent,仅在缺失时执行 install_command;preinstalled 在包或可执行文件不存在时直接报错。
  2. 运行修复循环:agent 请求 model,在准备好的仓库中调用终端工具,直到提交、触达限制或报错。
  3. 回收补丁与轨迹:目标输出文件优先作为 final_answer;没有回收到目标文件时,使用原生提交结果或命令输出。原生轨迹也会作为产物保留。

本地与远程启动模式

launch_mode 决定 mini-SWE-agent Python 循环在哪里运行,并不决定仓库命令在哪里运行: 通常使用 local,它是 AgentCompass 的标准集成路径,并能稳定转换实时轨迹。只有当目标镜像已经包含 mini-SWE-agent,或能在镜像内安装并运行时,才使用 remote。 当前 Harness 用于 swebench_verified、swebench_pro、swebench_pro_verified 或 swebench_multilingual 时,会选择 mini-SWE-agent 的 swebench.yaml 基础配置;其他 Benchmark 使用 mini.yaml。随后 AgentCompass 再覆盖下列参数。

超时与限制层级

阶段超时与请求超时的作用范围不同:--execution-params.run_timeout_seconds 限制整个 agent 运行,--model-params.timeout 只限制单次 model 请求。 哪个适用的限制先触发,就先终止对应运行。例如 execution run_timeout_seconds=7200、model timeout=9000 时,整题超时可以在单次 model 请求达到自身上限前取消运行。

参数

通过 --harness-params '{...}' 传入 JSON,或写入 --config 指定 YAML 的 harness.params;同名字段以命令行为准。合并优先级见 Harness 概览。

参数总览

参数类型默认值可选值 / 取值说明
binary字符串mini可执行文件名或路径remote 模式使用的 CLI;本地模式直接导入 Python 包。
version字符串2.4.5版本号要求使用的 mini-SWE-agent 版本;已安装版本不符时直接报错。
launch_mode字符串locallocal / remotemini-SWE-agent 循环的运行位置;仓库命令始终使用所选任务环境。
install_strategy字符串install_if_missingpreinstalled / install_if_missing要求预装,或仅在缺失时安装。
install_command字符串python -m pip install mini-swe-agent==2.4.5命令remote 模式缺少 CLI 时在任务 Environment 中执行;本地模式不使用该字段。留空时根据 version 生成。
step_limit整数250整数 ≥ 1单任务最大 agent 步数。
cost_limit浮点数3.0数值 > 0mini-SWE-agent/LiteLLM 累计上报的成本上限。
cost_tracking字符串ignore_errorsdefault / ignore_errors缺失或未知 provider 成本元数据时是否终止运行。
interleaved_thinking布尔值falsetrue / false是否把上一轮模型请求返回的工具使用等推理状态放进下一轮请求。
command_timeout整数 / 空值2400整数 ≥ 1 或 null单个命令工具调用超时,单位为秒;null 表示不设置。

model 配置

model 凭据来自 --model-base-url 与 --model-api-key,请求选项来自 --model-params。OpenAI 兼容端点的基础 URL 通常应以 /v1 结尾。 AgentCompass 会把 --model-params 写入 mini-SWE-agent 的 model.model_kwargs。openai-chat 路径把这些字段交给 litellm.completion,openai-responses 路径交给 litellm.responses。Harness 默认补充 drop_params=true 与 parallel_tool_calls=true,显式 model 参数可以覆盖它们;提供自定义基础 URL 时还会设置 custom_llm_provider=openai。

思考 / 推理配置

mini-SWE-agent Harness 没有名为 thinking 的参数;应通过 --model-params 传入 provider 对应的格式。
对支持推理强度的对话补全端点:
特别地,使用 openai-chat 时,interleaved_thinking==true 会保留每轮 assistant 的 reasoning_content,并将其发回服务端。
推理字段与 provider 有关;除非服务端明确支持,否则不要混用对话补全、响应与对话模板三种写法。思考词元会占用输出/上下文预算。

运行示例

使用默认本地启动模式:控制器运行 agent 循环,任务命令在专属 Docker 环境中执行。
如需改为在任务环境中运行 mini CLI,可设置 launch_mode=remote;install_strategy=install_if_missing 会在缺失时安装。

输出

Harness 为每个任务返回一个 RunResult:
  • final_answer:第一个目标输出文件,通常是 patch.txt;否则使用原生提交结果或标准输出;
  • trajectory:标准化后的 model/工具轨迹;本地模式若在工具执行中超时,会追加未完成命令步骤;
  • artifacts.file:从工作区回收的目标文件;
  • artifacts.mini_swe_agent_raw_trajectory:mini-SWE-agent 原生轨迹;
  • metrics:启动模式、工作区、原生配置/轨迹路径、退出/标准输出/标准错误、model 协议、输出路径与超时诊断。
agent 非零退出、整题超时或缺少目标输出文件都会产生 RUN_ERROR。Benchmark 会把 Harness 结果和评测数据一起写入 运行目录中的 details/ 子目录,详见结果。 任务执行 deadline 统一通过 --execution-params 中的 run_timeout_seconds 和 run_timeout_multiplier 设置。详见阶段超时。