馃搻 GAGE: General AI evaluation and Gauge Engine

June 2, 2026View on GitHub

馃搻 GAGE: General AI evaluation and Gauge Engine

Python Code Style License Status

English涓枃

馃摟 Contact: zhangrongjunchen@myhexin.com

OverviewSample SchemaSmart DefaultsRun ReportsGame ArenaArena Visual ControlAgentKitV2External HarnessBenchmarkContributingStandards


GAGE is a unified, extensible evaluation framework for large language models, multimodal models, audio models, diffusion models, agents, and game environments. It provides one evaluation engine for datasets, model backends, metrics, arena runtimes, structured outputs, and replayable artifacts.

Game Arena Showcase

Gomoku GameArena demoDoudizhu GameArena demoMahjong GameArena demo

Space Invaders demo Mario demo VizDoom demo

Why GAGE?

  • Fast evaluation engine: Run local smoke tests, model-backed jobs, and larger benchmark batches through the same pipeline shape.
  • Unified evaluation surface: Datasets, backends, role adapters, metrics, and output contracts are configured instead of hand-wired per benchmark.
  • Game and agent sandboxing: Game Arena, AgentKitV2, AppWorld, SWE-bench-style agent tasks, GUI interaction, and tool-augmented workflows share the same run/output model.
  • External harness integration: Delegate task-batch benchmarks to Harbor, then import trial evidence back into standard GAGE samples, metrics, reports, and raw artifacts.
  • Replayable GameKit runtime: Gomoku, Tic-Tac-Toe, Doudizhu, Mahjong, PettingZoo Space Invaders, Retro Mario, and ViZDoom now emit structured arena traces plus arena_visual sessions.
  • Operational visibility: Runs write summary.json, sample outputs, logs, visual artifacts, and a static report pack so failures can be inspected after the fact.

Design Overview

Core design philosophy: everything is a step, everything is configurable.

Architecture Design

End-to-end flow

Orchestration Design

Step view

Game Arena Design

GameArena runtime core design

AgentKitV2 Design

AgentKit v2 pipeline design

External Harness Design

External Harness (Harbor) pipeline design

Quick Start

1. Installation

# If you are in the mono-repo root:
cd gage-eval-main

# Python 3.10+ recommended
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

For Game Arena LLM configs, use the *_openai_gamekit.yaml variants and export OPENAI_API_KEY. The model defaults to gpt-5.4; set GAGE_GAME_ARENA_LLM_MODEL to override it, or set OPENAI_API_BASE for an OpenAI-compatible endpoint.

2. Run a Basic Demo

python run.py \
  --config config/run_configs/demo_echo_run_1.yaml \
  --output-dir runs \
  --run-id demo_echo

3. View Reports

Default output structure:

runs/<run_id>/
  events.jsonl
  samples.jsonl
  summary.json
  samples/
    <namespace>/
      <sample_id>.json
  report_pack/
    report.html
    report_context.json
    report_context.md
    prompt.txt
    diagnostics.json
    assets_manifest.json

Open runs/<run_id>/report_pack/report.html for the execution-aware report: primary metrics, key findings, scenario profiles, evidence links, media previews, diagnostics, and reason-code explanations. See Run Reports.

Advanced Configurations

ScenarioConfig ExampleDescription
GameArena Human-vs-AIconfig/custom/doudizhu/doudizhu_human_visual_gamekit.yamlBrowser-controlled Doudizhu match against LLM players
GameArena Pure Human Controlconfig/custom/retro_mario/retro_mario_human_visual_gamekit.yamlBrowser-controlled real-time Retro Mario session
AgentKitV2 Tau2config/custom/manual_e2e/agentkit_v2_tau2_local_lmstudio.yamlNative per-sample local-process Tau2 1-case smoke run
AgentKitV2 SWE-bench Proconfig/custom/manual_e2e/agentkit_v2_swebench_pro_docker_lmstudio_smoke1_qutebrowser.yamlNative Docker-backed SWE-bench Pro smoke run
External Harness Harborconfig/custom/external_harness_kits/harbor_terminal_bench2_lmstudio_1case.yamlDelegates a Terminal-Bench 2.0 task to Harbor and imports results
AgentKitV2 AppWorldconfig/custom/appworld/appworld_official_jsonl.yamlAppWorld sandbox evaluation through the native AgentKitV2 path
Textconfig/custom/aime24/aime2024_chat.yamlAIME, GPQA, Math500, and related text benchmarks
Multimodalconfig/custom/mathvista/chat.yamlMathVista and related multimodal benchmarks
LLM Judgeconfig/custom/examples/single_task_local_judge_qwen.yamlLocal LLM judge example

Roadmap

  • Agent evaluation: Continue hardening AgentKitV2 and External Harness trace import, failure diagnostics, and reproducible live smoke configs.
  • Game Arena expansion: Grow the GameKit catalog and keep browser control, replay, and output contracts consistent.
  • Gage-Client: Add a client tool for configuration management, failure diagnostics, and benchmark onboarding.
  • Distributed inference: Support multi-node task sharding and load balancing for large runs.
  • Benchmark expansion: Continue adding benchmark configs, metrics, and troubleshooting guidance.

Status

This project is in internal validation; APIs, configs, and docs may change rapidly.