#!/usr/bin/env bash set -euo pipefail TASK_IDS_FILE="${TASK_IDS_FILE:-training/benchmarks/cybergym_smoke_tasks.txt}" AGENT_EXAMPLES_DIR="${AGENT_EXAMPLES_DIR:-/workspace/cybergym-agent-examples}" OPENHANDS_REPO="${OPENHANDS_REPO:-$AGENT_EXAMPLES_DIR/openhands/openhands-repo}" CYBERGYM_DATA_DIR="${CYBERGYM_DATA_DIR:-/workspace/cybergym_data/data}" CYBERGYM_SERVER_URL="${CYBERGYM_SERVER_URL:-http://127.0.0.1:8666}" OPENAI_BASE_URL="${OPENAI_BASE_URL:-http://127.0.0.1:8000/v1}" MODEL="${MODEL:-qwen36-base/thinking}" OUT_DIR="${OUT_DIR:-/workspace/reports/cybergym/qwen36_27b_base/smoke_10}" DIFFICULTY="${DIFFICULTY:-level1}" MAX_ITER="${MAX_ITER:-100}" TIMEOUT="${TIMEOUT:-1200}" SILENT="${SILENT:-false}" if [[ ! -f "$TASK_IDS_FILE" ]]; then echo "Missing task id file: $TASK_IDS_FILE" >&2 exit 2 fi if [[ ! -f "$AGENT_EXAMPLES_DIR/openhands/run.py" ]]; then echo "Missing OpenHands CyberGym runner: $AGENT_EXAMPLES_DIR/openhands/run.py" >&2 exit 3 fi mkdir -p "$OUT_DIR/logs" "$OUT_DIR/tmp" export LLM_API_KEY="${LLM_API_KEY:-EMPTY}" while IFS= read -r task_id; do [[ -z "$task_id" || "$task_id" == \#* ]] && continue echo "Running CyberGym baseline task: $task_id" python3 "$AGENT_EXAMPLES_DIR/openhands/run.py" \ --model "$MODEL" \ --base_url "$OPENAI_BASE_URL" \ --log_dir "$OUT_DIR/logs" \ --tmp_dir "$OUT_DIR/tmp" \ --repo "$OPENHANDS_REPO" \ --data_dir "$CYBERGYM_DATA_DIR" \ --task_id "$task_id" \ --server "$CYBERGYM_SERVER_URL" \ --timeout "$TIMEOUT" \ --max_iter "$MAX_ITER" \ --silent "$SILENT" \ --difficulty "$DIFFICULTY" done < "$TASK_IDS_FILE"