CoolFace
Datasetpublic

ByteDance-Seed/EdgeBench

Overview EdgeBench is a benchmark of 134 real-world tasks for evaluating how autonomous AI agents learn from real-world environments. Instead of measuring one-shot performance, EdgeBench places agents in executable task environments with realistic, multi-level feedback and lets them iterate for 12+ hours per task — tracking the full trajectory of improvement, not just the final score. We publicly release 51 tasks… See the full description on the dataset page: https://huggingface.co/datasets/ByteDance-Seed/EdgeBench.

sourceHugging Facecc-by-4.0updated 2mo agoView on Hugging Face
84likes7.5kdownloads
smt_solver.json45 linesDownload Raw Back to root
1{2  "task_id": "smt_solver",3  "name": "Smt Solver",4  "category": "Combinatorial Optimization",5  "base_image": "python310",6  "platform": "linux/amd64",7  "internet": false,8  "cwd": "/home/workspace/smt_solver",9  "submit_paths": [10    "build.sh",11    "solve",12    "src/"13  ],14  "submit_exclude": [15    "__pycache__/",16    "*.pyc",17    ".pytest_cache/",18    "benchmarks/",19    "hidden_benchmarks/",20    "expected_answers.json",21    "selection_manifest.json",22    "public_score.json",23    "hidden_score.json",24    "*.log"25  ],26  "work": {27    "image_tag": "ce487a98870f",28    "specs_dir": "/home/workspace/smt_solver",29    "agent_query": "Implement an SMT solver from scratch. Read README.md and smtlib_spec.md. Provide build.sh, solve, and src/. The evaluator calls ./solve path/to/input.smt2 and expects unsat or unknown as exactly one line, and sat followed by a JSON model witness that validates the assertions. The benchmark logics include QF_UF, QF_LRA, QF_LIA, and QF_UFLRA. Use the compact benchmarks/ develop set and scripts/evaluate.py for local feedback. Official hidden evaluation uses a 60 second per-case timeout, 16 evaluator workers, perturbation with a private salt, and a 7200 second whole-run wall-clock budget. Do not call external SMT solvers such as z3/cvc5, online services, or hard-code benchmark answers."30  },31  "judge": {32    "image_tag": "fdce54253c61",33    "eval_cmd": "python3 - <<'PY'\nimport pathlib, shutil, zipfile\nzip_path = pathlib.Path('/home/workspace/smt_judge/SMT-hidden_benchmarks.zip')\ndest = pathlib.Path('/home/workspace/smt_judge/hidden_benchmarks')\nif dest.exists():\n    shutil.rmtree(dest)\ndest.mkdir(parents=True, exist_ok=True)\nwith zipfile.ZipFile(zip_path) as z:\n    z.extractall(dest)\nPY\ncd /home/workspace/smt_solver && rm -rf benchmarks hidden_benchmarks scripts expected_answers.json selection_manifest.json hidden_score.json public_score.json; chmod +x build.sh solve; build_status=0; ./build.sh >/tmp/smt_build.out 2>/tmp/smt_build.err || build_status=$?; if [ \"$build_status\" -eq 0 ]; then python3 /home/workspace/smt_judge/scripts/evaluate.py --solver ./solve --benchmarks /home/workspace/smt_judge/hidden_benchmarks --expected /home/workspace/smt_judge/hidden_benchmarks/expected_answers.json --manifest /home/workspace/smt_judge/hidden_benchmarks/selection_manifest.json --timeout 60 --parallel 16 --perturb --perturb-salt hidden-sebench --submission-root /home/workspace/smt_solver --output /tmp/smt_hidden_score.json >/tmp/smt_eval.out 2>/tmp/smt_eval.err; eval_status=$?; else eval_status=$build_status; fi; if [ -f /tmp/smt_build.out ]; then cat /tmp/smt_build.out; fi; if [ -f /tmp/smt_build.err ]; then cat /tmp/smt_build.err; fi; if [ -f /tmp/smt_eval.out ]; then cat /tmp/smt_eval.out; fi; if [ -f /tmp/smt_eval.err ]; then cat /tmp/smt_eval.err; fi; cat > /tmp/sebench_parse_result.py <<'PY'\nimport json, pathlib\np = pathlib.Path('/tmp/smt_hidden_score.json')\nraw = json.loads(p.read_text()) if p.exists() else {'final_score': 0.0, 'logic_summary': {}}\nraw_score = float(raw.get('final_score', 0.0) or 0.0)\nscore = raw_score / 100.0 if raw_score > 1.0 else raw_score\nby = raw.get('logic_summary', {}) or {}\ndef clean(g):\n    out = {}\n    for k, item in sorted(g.items()):\n        t = int(item.get('total', 0) or 0); c = int(item.get('correct', 0) or 0)\n        out[k] = {'total': t, 'correct': c, 'wrong': int(item.get('wrong', max(0, t-c)) or 0), 'timeout': int(item.get('timeout', 0) or 0), 'unknown': int(item.get('unknown', 0) or 0), 'error': int(item.get('error', 0) or 0), 'no_reference': int(item.get('no_reference', 0) or 0), 'invalid_model': int(item.get('invalid_model', 0) or 0), 'score': float(item.get('score', 0.0) or 0.0)}\n    return out\nby = clean(by)\ntotal = sum(v['total'] for v in by.values()); correct = sum(v['correct'] for v in by.values())\nwrong = max(0, total - correct)\nresult = {'valid': True, 'score': score, 'pass_rate': correct/total if total else 0.0, 'total_tests': total, 'passed': correct, 'failed': wrong, 'errors': 0, 'summary': 'score={:.6f} ({:.2f}/100), correct={}/{}'.format(score, 100*score, correct, total), 'details': [], 'metrics': {'score': score, 'score_percent': 100*score, 'total': total, 'correct': correct, 'wrong_or_failed': wrong, 'by_logic': by}}\nprint('>>>>> Start Structured Result')\nprint(json.dumps(result, ensure_ascii=False))\nprint('>>>>> End Structured Result')\nPY\npython3 /tmp/sebench_parse_result.py",34    "eval_timeout": 7200,35    "parser": "structured_json",36    "score_direction": "maximize",37    "selection": "score_first",38    "rescale": {39      "kind": "linear",40      "lower": 0.0,41      "upper": 1.042    }43  }44}45