Files
agent-framework/python/packages/lab/gaia/README.md
T
Eric Zhu aba505df77 Python: Update lab packages and installation instructions (#1687)
* update lab packages and installation instructions

* fix dep
2025-10-24 21:12:08 +00:00

68 lines
1.8 KiB
Markdown

# Agent Framework Lab - GAIA
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-lab` package. Install the package with the `gaia` extra to use this module.
## Setup
Install the `agent-framework-lab` package with GAIA dependencies:
```bash
pip install "agent-framework-lab[gaia]"
```
Set up Hugging Face token:
```bash
export HF_TOKEN="hf\*..." # must have access to gaia-benchmark/GAIA
```
## Create an evaluation script
Create a Python script (e.g., `run_gaia.py`) with the following content:
```python
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](./samples/gaia_sample.py) for more detail.
### Run the evaluation
Run the evaluation script using `uv`:
```bash
uv run python run_gaia.py
```
By 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.**
## View results
We provide a console viewer for reading GAIA results:
```bash
uv run gaia_viewer "gaia_results_<timestamp>.jsonl" --detailed
```