Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
b92b18c
install docker in images
Jul 2, 2026
89b6558
install docker in images
Jul 2, 2026
f936a06
install docker in images
Jul 2, 2026
38b052b
install docker in images
Jul 2, 2026
62a58af
update configs of agent runtime
Jul 23, 2026
b78c945
update docker doc of agent runtime
Jul 23, 2026
9b43e5f
add docs and dep of agent runtime
Jul 23, 2026
51551ca
add agent runtime build
Jul 23, 2026
875cebb
add auto scripts
Jul 23, 2026
cc126be
update docs of agent runtime
Jul 23, 2026
da3f8fb
swe bench docs update
Jul 23, 2026
25af9e0
commit -m update en doc
Jul 23, 2026
7875023
A1: ARM64 host 适配(qemu-user-static build-time 装包)
Aug 25, 2026
abb9024
A2: harbor 0.6.1 → 0.20.0(J1 决策)
Aug 25, 2026
c2663f9
A3: DinD registry-mirrors env 参数化
Aug 25, 2026
848ec98
A4: ENTRYPOINT + ARM64 binfmt 注册 + daemon.json 写 + agent-patches 注入
Aug 25, 2026
ce8a1f9
A5: /opt/swebench/{jobs,tasks,config,logs,agent-patches} 预创建
Aug 25, 2026
21200a4
B1: bootstrap.sh 新增 8 个参数(5 层 DinD L5 bind mount 接入)
Aug 25, 2026
7f36db1
B2: bootstrap.sh 支持 --data-image 创建只读 data container
Aug 25, 2026
3f89ec6
B3: bootstrap.sh 把 5 层 DinD bind mount + env 接入 docker run
Aug 25, 2026
ead9f51
B4: bootstrap.sh --production 启用 --restart unless-stopped
Aug 25, 2026
c6fe5ad
B5: bootstrap.sh inner dockerd 显式 export DOCKER_DEFAULT_PLATFORM
Aug 25, 2026
3a6ded5
B6: bootstrap.sh [7/7] 下一步 改为推荐 harbor jobs start
Aug 25, 2026
05e6221
C1: ais_bench_agent_run.sh — harbor jobs start 包装 + filter
Aug 25, 2026
6b17bcd
C2: ais_bench_agent_watch.sh — 阻塞等 results.json + 解析统计
Aug 25, 2026
08e3f0f
C3: ais_bench_agent_summarize.sh — 聚合 jobs/*/result.json 到 md/csv/json
Aug 25, 2026
638d17b
C4: ais_bench_agent_orchestrator_status.sh — runtime 容器状态查询
Aug 25, 2026
d65f44d
D1: build_l2_baked_image.sh — 5 层 DinD L1/L2 baked image 一键 build
Aug 25, 2026
f0d0871
D2: 5 个 Jinja2 模板搬进 docker/agent_runtime/dockerfiles/
Aug 25, 2026
c59c4f8
D3: bootstrap.sh 加 --l2-image <tag> — harbor trial 跳过 trial 内装 agent
Aug 25, 2026
6cf5edb
feat: bootstrap.sh --qemu auto|yes|no — 运行时按需装 qemu-user-static
Aug 26, 2026
43ebb27
v3 F 批:bootstrap.sh 移除 --cgroupns=host(防 ELOOP)
Aug 27, 2026
085a826
v3 G 批:safe_start_ais_bench_agent_bootstrap.sh(3 分钟 watchdog)
Aug 27, 2026
1e523aa
v3 H 批:新增 ais_bench_agent.sh 统一入口 wrapper + harbor wheel 可替换
Aug 28, 2026
2a80af9
fix: 默认 harbor 版本从 0.6.1 → 0.20.0(与 A2 批 abb9024 一致)
Aug 28, 2026
6647a1f
docs: 新增复现手册 REPRODUCE.md
zengziyu Aug 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion ais_bench/configs/agent_example/harbor_terminal_bench_2_task.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,27 @@
with read_base():
from ais_bench.benchmark.configs.summarizers.example import summarizer

# 数据集路径:用 mmengine 的 {{$VAR:default}} 占位符从环境变量读取。
# mmengine 在执行本文件前,会先用 os.environ['VAR'] 的值替换整个 {{$VAR:default}}
# 占位符;如果环境变量未设置,则替换为 default 部分。
#
# 这里 AISBENCH_AGENT_DATASET_PATH 的值就是 bootstrap.sh --datasets 传入的完整路径,
# 由 bootstrap.sh 自动注入到容器环境变量中,无需 import sys / import os 任何库。
#
# 使用流程:
# 1. 物理机: bash bootstrap.sh --datasets /data/datasets/harbor/mini-0.10/terminal-bench-2-offline-selected_0.10
# 2. 容器内: ais_bench <此配置> --debug # path 自动从 env var 读
#
# 切到其它 tier 时只改 bootstrap.sh --datasets 参数即可(4 套常用路径):
# full: /data/datasets/harbor/full/terminal-bench-2 (89 case)
# mini-0.10: /data/datasets/harbor/mini-0.10/terminal-bench-2-offline-selected_0.10 (7 case, 默认)
# mini-0.14: /data/datasets/harbor/mini-0.14/terminal-bench-2-offline-selected_0.14 (10 case)
# mini-0.20: /data/datasets/harbor/mini-0.20/terminal-bench-2-offline-selected_0.20 (14 case)
#
# 不使用 agent_runtime 容器方案时:直接 export AISBENCH_AGENT_DATASET_PATH=<path> 即可;
# 不 export 时使用下方 DEFAULT_DATASET_FALLBACK 兜底。
DEFAULT_DATASET_PATH = '{{$AISBENCH_AGENT_DATASET_PATH:/data/datasets/harbor/mini-0.10/terminal-bench-2-offline-selected_0.10}}'

models = [
dict(
abbr="terminus-2",
Expand Down Expand Up @@ -59,7 +80,8 @@
environment_type="docker", # -e/--env: 环境类型 (docker, daytona, e2b, modal)
environment_force_build=False, # --force-build/--no-force-build: 是否强制重建环境
environment_delete=False, # --delete/--no-delete: 完成后是否删除环境
path="/path/to/terminal-bench-2/", # -p/--path: 本地数据集路径
path=DEFAULT_DATASET_PATH, # -p/--path: 本地数据集路径(需与 bootstrap.sh --datasets 传入路径对齐)
# 切换 tier:把上面 DEFAULT_DATASET_PATH 改成 full / mini-0.14 / mini-0.20 对应路径
dataset_name_version=None, # -d/--dataset: 远程数据集名称@版本
task_names=None, # --include-task-name: 包含的任务名称(支持glob模式)例如 ["task_name1", "task_name2"]
exclude_task_names=None, # --exclude-task-name: 排除的任务名称
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,21 @@
from ais_bench.benchmark.tasks import SWEBenchInferTask, SWEBenchEvalTask
from ais_bench.benchmark.summarizers import SWEBenchSummarizer

# 数据集路径:用 mmengine 的 {{$VAR:default}} 占位符从环境变量读取。
# mmengine 在执行本文件前,会先用 os.environ['VAR'] 的值替换整个 {{$VAR:default}}
# 占位符;如果环境变量未设置,则替换为 default 部分(此处为空 → 沿用 HF 在线下载)。
#
# 这里 AISBENCH_AGENT_DATASET_PATH 的值就是 bootstrap.sh --datasets 传入的完整路径,
# 由 bootstrap.sh 自动注入到容器环境变量中,无需 import sys / import os 任何库。
#
# 使用流程:
# 1. 物理机: bash bootstrap.sh --datasets /data/datasets/swebench/<...>
# 2. 容器内: ais_bench <此配置> --debug # path 自动从 env var 读
#
# 不使用 agent_runtime 容器方案时:直接 export AISBENCH_AGENT_DATASET_PATH=<path> 即可;
# 不 export 时回落到 HF 在线下载(默认行为)。
DEFAULT_DATASET_PATH = '{{$AISBENCH_AGENT_DATASET_PATH:}}'

STEP_LIMIT = 200

models = [
Expand Down Expand Up @@ -31,7 +46,8 @@
type=SWEBenchDataset,
abbr="swebench_full",
# Relative to AIS_BENCH_DATASETS_CACHE (default: project root); missing dir -> HF snapshot_download
path="",
# 本字段通过环境变量 AISBENCH_AGENT_DATASET_PATH 注入;不设置时为空,沿用 HF 在线下载
path=DEFAULT_DATASET_PATH,
name="full",
split="test",
step_limit=STEP_LIMIT,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,21 @@
from ais_bench.benchmark.tasks import SWEBenchInferTask, SWEBenchEvalTask
from ais_bench.benchmark.summarizers import SWEBenchSummarizer

# 数据集路径:用 mmengine 的 {{$VAR:default}} 占位符从环境变量读取。
# mmengine 在执行本文件前,会先用 os.environ['VAR'] 的值替换整个 {{$VAR:default}}
# 占位符;如果环境变量未设置,则替换为 default 部分(此处为空 → 沿用 HF 在线下载)。
#
# 这里 AISBENCH_AGENT_DATASET_PATH 的值就是 bootstrap.sh --datasets 传入的完整路径,
# 由 bootstrap.sh 自动注入到容器环境变量中,无需 import sys / import os 任何库。
#
# 使用流程:
# 1. 物理机: bash bootstrap.sh --datasets /data/datasets/swebench/<...>
# 2. 容器内: ais_bench <此配置> --debug # path 自动从 env var 读
#
# 不使用 agent_runtime 容器方案时:直接 export AISBENCH_AGENT_DATASET_PATH=<path> 即可;
# 不 export 时回落到 HF 在线下载(默认行为)。
DEFAULT_DATASET_PATH = '{{$AISBENCH_AGENT_DATASET_PATH:}}'

STEP_LIMIT = 200

models = [
Expand All @@ -30,8 +45,9 @@
dict(
type=SWEBenchDataset,
abbr="swebench_lite",
# Relative to AIS_BENCH_DATASETS_CACHE (default: project root); missing -> HF download
path="",
# Relative to AIS_BENCH_DATASETS_CACHE (default: project root); missing dir -> HF snapshot_download
# 本字段通过环境变量 AISBENCH_AGENT_DATASET_PATH 注入;不设置时为空,沿用 HF 在线下载
path=DEFAULT_DATASET_PATH,
name="lite",
split="test",
filter_spec="",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,21 @@
from ais_bench.benchmark.tasks import SWEBenchInferTask, SWEBenchEvalTask
from ais_bench.benchmark.summarizers import SWEBenchSummarizer

# 数据集路径:用 mmengine 的 {{$VAR:default}} 占位符从环境变量读取。
# mmengine 在执行本文件前,会先用 os.environ['VAR'] 的值替换整个 {{$VAR:default}}
# 占位符;如果环境变量未设置,则替换为 default 部分(此处为空 → 沿用 HF 在线下载)。
#
# 这里 AISBENCH_AGENT_DATASET_PATH 的值就是 bootstrap.sh --datasets 传入的完整路径,
# 由 bootstrap.sh 自动注入到容器环境变量中,无需 import sys / import os 任何库。
#
# 使用流程:
# 1. 物理机: bash bootstrap.sh --datasets /data/datasets/swebench/<...>
# 2. 容器内: ais_bench <此配置> --debug # path 自动从 env var 读
#
# 不使用 agent_runtime 容器方案时:直接 export AISBENCH_AGENT_DATASET_PATH=<path> 即可;
# 不 export 时回落到 HF 在线下载(默认行为)。
DEFAULT_DATASET_PATH = '{{$AISBENCH_AGENT_DATASET_PATH:}}'

STEP_LIMIT = 200

models = [
Expand Down Expand Up @@ -31,7 +46,8 @@
type=SWEBenchDataset,
abbr="swebench_multilingual",
# Relative to AIS_BENCH_DATASETS_CACHE (default: project root); missing -> HF download
path="",
# 本字段通过环境变量 AISBENCH_AGENT_DATASET_PATH 注入;不设置时为空,沿用 HF 在线下载
path=DEFAULT_DATASET_PATH,
name="multilingual",
split="test",
step_limit=STEP_LIMIT,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,22 @@
from ais_bench.benchmark.tasks import SWEBenchInferTask, SWEBenchEvalTask
from ais_bench.benchmark.summarizers import SWEBenchSummarizer

# 数据集路径:用 mmengine 的 {{$VAR:default}} 占位符从环境变量读取。
# mmengine 在执行本文件前,会先用 os.environ['VAR'] 的值替换整个 {{$VAR:default}}
# 占位符;如果环境变量未设置,则替换为 default 部分(此处为空 → HF 在线下载会失败)。
#
# 这里 AISBENCH_AGENT_DATASET_PATH 的值就是 bootstrap.sh --datasets 传入的完整路径,
# 由 bootstrap.sh 自动注入到容器环境变量中,无需 import sys / import os 任何库。
#
# 使用流程:
# 1. 物理机: 下载 mini 数据集并准备目录(HF 无该数据集)
# https://modelers.cn/datasets/AISBench/SWE-Bench_Multilingual_mini
# 2. 物理机: bash bootstrap.sh --datasets /data/datasets/swebench/<mini路径>
# 3. 容器内: ais_bench <此配置> --debug # path 自动从 env var 读
#
# 不使用 agent_runtime 容器方案时:直接 export AISBENCH_AGENT_DATASET_PATH=<path> 即可。
DEFAULT_DATASET_PATH = '{{$AISBENCH_AGENT_DATASET_PATH:}}'

STEP_LIMIT = 200

models = [
Expand Down Expand Up @@ -31,7 +47,8 @@
type=SWEBenchDataset,
abbr="swebench_multilingual_mini",
# Relative to AIS_BENCH_DATASETS_CACHE (default: project root); missing -> HF download
path="", # Set local path to the mini dataset. Download from https://modelers.cn/datasets/AISBench/SWE-Bench_Multilingual_mini
# 本字段通过环境变量 AISBENCH_AGENT_DATASET_PATH 注入;mini 数据集 HF 无,必须 env var 注入本地路径
path=DEFAULT_DATASET_PATH,
name="multilingual",
split="test",
step_limit=STEP_LIMIT,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,21 @@
from ais_bench.benchmark.tasks import SWEBenchInferTask, SWEBenchEvalTask
from ais_bench.benchmark.summarizers import SWEBenchSummarizer

# 数据集路径:用 mmengine 的 {{$VAR:default}} 占位符从环境变量读取。
# mmengine 在执行本文件前,会先用 os.environ['VAR'] 的值替换整个 {{$VAR:default}}
# 占位符;如果环境变量未设置,则替换为 default 部分(此处为空 → 沿用 HF 在线下载)。
#
# 这里 AISBENCH_AGENT_DATASET_PATH 的值就是 bootstrap.sh --datasets 传入的完整路径,
# 由 bootstrap.sh 自动注入到容器环境变量中,无需 import sys / import os 任何库。
#
# 使用流程:
# 1. 物理机: bash bootstrap.sh --datasets /data/datasets/swebench/<...>
# 2. 容器内: ais_bench <此配置> --debug # path 自动从 env var 读
#
# 不使用 agent_runtime 容器方案时:直接 export AISBENCH_AGENT_DATASET_PATH=<path> 即可;
# 不 export 时回落到 HF 在线下载(默认行为)。
DEFAULT_DATASET_PATH = '{{$AISBENCH_AGENT_DATASET_PATH:}}'

STEP_LIMIT = 200

models = [
Expand Down Expand Up @@ -31,7 +46,8 @@
type=SWEBenchDataset,
abbr="swebench_verified",
# Relative to AIS_BENCH_DATASETS_CACHE (default: project root); missing -> HF download
path="",
# 本字段通过环境变量 AISBENCH_AGENT_DATASET_PATH 注入;不设置时为空,沿用 HF 在线下载
path=DEFAULT_DATASET_PATH,
name="verified",
split="test",
step_limit=STEP_LIMIT,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,21 @@
from ais_bench.benchmark.tasks import SWEBenchInferTask, SWEBenchEvalTask
from ais_bench.benchmark.summarizers import SWEBenchSummarizer

# 数据集路径:用 mmengine 的 {{$VAR:default}} 占位符从环境变量读取。
# mmengine 在执行本文件前,会先用 os.environ['VAR'] 的值替换整个 {{$VAR:default}}
# 占位符;如果环境变量未设置,则替换为 default 部分(此处为空 → 沿用 HF 在线下载)。
#
# 这里 AISBENCH_AGENT_DATASET_PATH 的值就是 bootstrap.sh --datasets 传入的完整路径,
# 由 bootstrap.sh 自动注入到容器环境变量中,无需 import sys / import os 任何库。
#
# 使用流程:
# 1. 物理机: bash bootstrap.sh --datasets /data/datasets/swebench/<...>
# 2. 容器内: ais_bench <此配置> --debug # path 自动从 env var 读
#
# 不使用 agent_runtime 容器方案时:直接 export AISBENCH_AGENT_DATASET_PATH=<path> 即可;
# 不 export 时回落到 HF 在线下载(默认行为)。
DEFAULT_DATASET_PATH = '{{$AISBENCH_AGENT_DATASET_PATH:}}'

STEP_LIMIT = 200

models = [
Expand Down Expand Up @@ -31,7 +46,8 @@
type=SWEBenchDataset,
abbr="swebench_verified_mini",
# Relative to AIS_BENCH_DATASETS_CACHE (default: project root); missing -> HF download
path="",
# 本字段通过环境变量 AISBENCH_AGENT_DATASET_PATH 注入;不设置时为空,沿用 HF 在线下载
path=DEFAULT_DATASET_PATH,
name="verified_mini",
split="test",
step_limit=STEP_LIMIT,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,21 @@
from ais_bench.benchmark.tasks import SWEBenchProInferTask, SWEBenchProEvalTask
from ais_bench.benchmark.summarizers import SWEBenchProSummarizer

# 数据集路径:用 mmengine 的 {{$VAR:default}} 占位符从环境变量读取。
# mmengine 在执行本文件前,会先用 os.environ['VAR'] 的值替换整个 {{$VAR:default}}
# 占位符;如果环境变量未设置,则替换为 default 部分(此处为空 → 沿用 HF 在线下载)。
#
# 这里 AISBENCH_AGENT_DATASET_PATH 的值就是 bootstrap.sh --datasets 传入的完整路径,
# 由 bootstrap.sh 自动注入到容器环境变量中,无需 import sys / import os 任何库。
#
# 使用流程:
# 1. 物理机: bash bootstrap.sh --datasets /data/datasets/swebench_pro/<...>
# 2. 容器内: ais_bench <此配置> --debug # path 自动从 env var 读
#
# 不使用 agent_runtime 容器方案时:直接 export AISBENCH_AGENT_DATASET_PATH=<path> 即可;
# 不 export 时回落到 HF 在线下载(默认行为)。
DEFAULT_DATASET_PATH = '{{$AISBENCH_AGENT_DATASET_PATH:}}'

STEP_LIMIT = 250

models = [
Expand Down Expand Up @@ -33,7 +48,8 @@
dict(
type=SWEBenchProDataset,
abbr="swebench_pro_full_data",
path="",
# 本字段通过环境变量 AISBENCH_AGENT_DATASET_PATH 注入;不设置时为空,沿用 HF 在线下载
path=DEFAULT_DATASET_PATH,
name="full",
split="test",
step_limit=STEP_LIMIT,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,22 @@
from ais_bench.benchmark.tasks import SWEBenchProInferTask, SWEBenchProEvalTask
from ais_bench.benchmark.summarizers import SWEBenchProSummarizer

# 数据集路径:用 mmengine 的 {{$VAR:default}} 占位符从环境变量读取。
# mmengine 在执行本文件前,会先用 os.environ['VAR'] 的值替换整个 {{$VAR:default}}
# 占位符;如果环境变量未设置,则替换为 default 部分(此处为空 → mini 无 HF 源会失败)。
#
# 这里 AISBENCH_AGENT_DATASET_PATH 的值就是 bootstrap.sh --datasets 传入的完整路径,
# 由 bootstrap.sh 自动注入到容器环境变量中,无需 import sys / import os 任何库。
#
# 使用流程:
# 1. 物理机: 下载 mini 数据集并准备目录
# https://modelers.cn/datasets/AISBench/SWE-Bench_Pro_mini
# 2. 物理机: bash bootstrap.sh --datasets /data/datasets/swebench_pro/<mini路径>
# 3. 容器内: ais_bench <此配置> --debug # path 自动从 env var 读
#
# 不使用 agent_runtime 容器方案时:直接 export AISBENCH_AGENT_DATASET_PATH=<path> 即可。
DEFAULT_DATASET_PATH = '{{$AISBENCH_AGENT_DATASET_PATH:}}'

STEP_LIMIT = 250

models = [
Expand Down Expand Up @@ -33,7 +49,8 @@
dict(
type=SWEBenchProDataset,
abbr="swebench_pro_mini_data",
path="",
# 本字段通过环境变量 AISBENCH_AGENT_DATASET_PATH 注入;mini 数据集 HF 无,必须 env var 注入本地路径
path=DEFAULT_DATASET_PATH,
name="mini",
split="test",
step_limit=STEP_LIMIT,
Expand Down
Loading
Loading