EvalBench is a flexible framework designed to measure the quality of generative AI (GenAI) workflows. It supports two broad classes of evaluation:
Its modular, plug-and-play architecture allows you to seamlessly integrate custom components while leveraging a robust evaluation pipeline, result storage, scoring strategies, and dashboarding capabilities.
Follow the steps below to run EvalBench on your local VM:
Note: Evalbench requires Python 3.10 or higher and uv for dependency management.
Clone the EvalBench repository from GitHub:
git clone git@github.com:GoogleCloudPlatform/evalbench.git
Navigate to the repository directory and create a virtual environment using uv:
cd evalbench
uv venv
source .venv/bin/activate
Install the required Python dependencies using uv:
uv sync
If gcloud is not installed already, follow the steps in gcloud installation guide.
Then, authenticate using the Google Cloud CLI:
gcloud auth application-default login
This step sets up the necessary credentials for accessing Vertex AI resources on your GCP project.
We can globally set our gcp_project_id using
export EVAL_GCP_PROJECT_ID=your_project_id_here
export EVAL_GCP_PROJECT_REGION=your_region_here
For a quick start, let's run NL2SQL on some sqlite DQL queries.
Now, configure your evaluation by setting the EVAL_CONFIG environment variable. For example, to run a configuration using the db_blog dataset on SQLite:
export EVAL_CONFIG=datasets/bat/example_run_config.yaml
Start the evaluation process using the provided shell script:
./evalbench/run.sh
Beyond single-turn NL2SQL, EvalBench evaluates agents — coding CLIs and data agents that reason across multiple turns, call tools, and act on their environment.
Each scenario starts from a prompt and is driven forward by an LLM-based simulated user that follows a conversation_plan until the goal is met, a terminal state is detected, or max_turns is reached. Every turn is captured — text, tool calls, parameters, latency, and tokens — and then scored. Runs are sandboxed, so agents never touch your local CLI settings and scenarios can run concurrently.
| Agent | Generator | Orchestrator | Guide |
|---|---|---|---|
| Gemini CLI | gemini_cli | agent / geminicli | Gemini CLI guide |
| Claude Code | claude_code | agent | Claude Code guide |
| Codex CLI | codex_cli | agent | Codex CLI guide |
| Antigravity (agy) CLI | agy_cli | agent | Antigravity CLI guide |
| Conversational data agents | dataagent | dataagent / interact | Data agent spec |
Agents can be evaluated against tools wired up as MCP servers, plugins, extensions, or skills — or against a fake MCP stub for fast, offline, zero-cost testing. Plugins are installed from a git repo or local directory through each CLI's marketplace and may bundle skills, MCP servers, or both. Trajectories are scored for tool-call accuracy, goal completion, hallucination and clarification behavior, latency, and token cost; see the scorer reference for all of them.
To try it without any cloud resources or cost:
export EVAL_CONFIG=datasets/gemini-cli-tools/example_run_fake_config.yaml
./evalbench/run.sh
Read Agentic evaluations for the execution model, sandboxing, and tool paradigms, and the agentic dataset format for how to write scenarios.
EvalBench's architecture is built around a modular design that supports diverse evaluation needs:
Evalbench allows quickly creating experiments and A/B testing improvements (Available when BigQuery reporting mode set in run_config)
This includes being able to measure and quantify the specific improvements on databases or specific dialects:
And allowing digging deeper into the exact details of the improvements and regressions including highlighting the changes, how they impacted the score and a LLM annotated explanation of the scoring changes if LLM rater is used.
Full reference documentation lives in docs/.
| Doc | Contents |
|---|---|
| Run config | The top-level YAML that drives an evaluation run |
| Scorers | Every available scorer and its configuration options |
| Agentic evaluations | Execution model, sandboxing, and tool paradigms |
| NL2SQL dataset format | Prompts, golden SQL, and eval queries |
| Agentic dataset format | Scenarios, conversation plans, and expected trajectories |
| Database config | Connection details and supported dialects |
| Model config | Model selection and generation settings |
| Examples | Runnable notebooks for SQLite, Cloud SQL, and BigQuery |
Contributions are welcome — see contributing. Enjoy evaluating your GenAI models!
(top 30 of 31)
Python
98.4%
EvalBench is a flexible framework designed to measure the quality of generative AI (GenAI) workflows. It supports two broad classes of evaluation:
Its modular, plug-and-play architecture allows you to seamlessly integrate custom components while leveraging a robust evaluation pipeline, result storage, scoring strategies, and dashboarding capabilities.
Follow the steps below to run EvalBench on your local VM:
Note: Evalbench requires Python 3.10 or higher and uv for dependency management.
Clone the EvalBench repository from GitHub:
git clone git@github.com:GoogleCloudPlatform/evalbench.git
Navigate to the repository directory and create a virtual environment using uv:
cd evalbench
uv venv
source .venv/bin/activate
Install the required Python dependencies using uv:
uv sync
If gcloud is not installed already, follow the steps in gcloud installation guide.
Then, authenticate using the Google Cloud CLI:
gcloud auth application-default login
This step sets up the necessary credentials for accessing Vertex AI resources on your GCP project.
We can globally set our gcp_project_id using
export EVAL_GCP_PROJECT_ID=your_project_id_here
export EVAL_GCP_PROJECT_REGION=your_region_here
For a quick start, let's run NL2SQL on some sqlite DQL queries.
Now, configure your evaluation by setting the EVAL_CONFIG environment variable. For example, to run a configuration using the db_blog dataset on SQLite:
export EVAL_CONFIG=datasets/bat/example_run_config.yaml
Start the evaluation process using the provided shell script:
./evalbench/run.sh
Beyond single-turn NL2SQL, EvalBench evaluates agents — coding CLIs and data agents that reason across multiple turns, call tools, and act on their environment.
Each scenario starts from a prompt and is driven forward by an LLM-based simulated user that follows a conversation_plan until the goal is met, a terminal state is detected, or max_turns is reached. Every turn is captured — text, tool calls, parameters, latency, and tokens — and then scored. Runs are sandboxed, so agents never touch your local CLI settings and scenarios can run concurrently.
| Agent | Generator | Orchestrator | Guide |
|---|---|---|---|
| Gemini CLI | gemini_cli | agent / geminicli | Gemini CLI guide |
| Claude Code | claude_code | agent | Claude Code guide |
| Codex CLI | codex_cli | agent | Codex CLI guide |
| Antigravity (agy) CLI | agy_cli | agent | Antigravity CLI guide |
| Conversational data agents | dataagent | dataagent / interact | Data agent spec |
Agents can be evaluated against tools wired up as MCP servers, plugins, extensions, or skills — or against a fake MCP stub for fast, offline, zero-cost testing. Plugins are installed from a git repo or local directory through each CLI's marketplace and may bundle skills, MCP servers, or both. Trajectories are scored for tool-call accuracy, goal completion, hallucination and clarification behavior, latency, and token cost; see the scorer reference for all of them.
To try it without any cloud resources or cost:
export EVAL_CONFIG=datasets/gemini-cli-tools/example_run_fake_config.yaml
./evalbench/run.sh
Read Agentic evaluations for the execution model, sandboxing, and tool paradigms, and the agentic dataset format for how to write scenarios.
EvalBench's architecture is built around a modular design that supports diverse evaluation needs:
Evalbench allows quickly creating experiments and A/B testing improvements (Available when BigQuery reporting mode set in run_config)
This includes being able to measure and quantify the specific improvements on databases or specific dialects:
And allowing digging deeper into the exact details of the improvements and regressions including highlighting the changes, how they impacted the score and a LLM annotated explanation of the scoring changes if LLM rater is used.
Full reference documentation lives in docs/.
| Doc | Contents |
|---|---|
| Run config | The top-level YAML that drives an evaluation run |
| Scorers | Every available scorer and its configuration options |
| Agentic evaluations | Execution model, sandboxing, and tool paradigms |
| NL2SQL dataset format | Prompts, golden SQL, and eval queries |
| Agentic dataset format | Scenarios, conversation plans, and expected trajectories |
| Database config | Connection details and supported dialects |
| Model config | Model selection and generation settings |
| Examples | Runnable notebooks for SQLite, Cloud SQL, and BigQuery |
Contributions are welcome — see contributing. Enjoy evaluating your GenAI models!
(top 30 of 31)
Python
98.4%