The GAIA benchmark can be used for evaluating agents and workflows built using the Agent Framework. It includes built-in benchmarks as well as utilities for running custom evaluations.
Note: This module is part of the consolidated
agent-framework-labpackage. Install the package with thegaiaextra to use this module.
Install from source with GAIA dependencies:
git clone https://github.com/microsoft/agent-framework.git
cd agent-framework/python/packages/lab
pip install -e ".[gaia]"Set up Hugging Face token:
export HF_TOKEN="hf\*..." # must have access to gaia-benchmark/GAIACreate a Python script (e.g., run_gaia.py) with the following content:
from agent_framework.lab.gaia import GAIA, Task, Prediction, GAIATelemetryConfig
async def run_task(task: Task) -> Prediction:
return Prediction(prediction="answer here", messages=[])
async def main() -> None:
# Optional: Enable telemetry for detailed tracing
telemetry_config = GAIATelemetryConfig(
enable_tracing=True,
trace_to_file=True,
file_path="gaia_traces.jsonl"
)
runner = GAIA(telemetry_config=telemetry_config)
await runner.run(run_task, level=1, max_n=5, parallel=2)See the gaia_sample.py for more detail.
Run the evaluation script using uv:
uv run python run_gaia.pyBy default, the script will first look for cached GAIA data in the data_gaia_hub directory,
and download it if not found.
The result will be saved to gaia_results_<timestamp>.jsonl.
Don't run the script inside this directory because it will confuse the local agent_framework namespace
package with the real one.
We provide a console viewer for reading GAIA results:
uv run gaia_viewer "gaia_results_<timestamp>.jsonl" --detailed