> ## Documentation Index
> Fetch the complete documentation index at: https://futureagi.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Experiment

> Learn how to set up experiments with evaluation in Future AGI platform

## 1. Installation

Install the traceAI package to access the observability framework:

```bash theme={null}
pip install traceai_experiment
```

## 2. Environment Configuration

Set up your environment variables to authenticate with FutureAGI services. These credentials enable:

* Authentication with FutureAGI's observability platform
* Encrypted telemetry data transmission
* Access to experiment tracking features

```python theme={null}
import os
os.environ["FI_API_KEY"] = "your-futureagi-api-key"
os.environ["FI_SECRET_KEY"] = "your-futureagi-secret-key"
```

## 3. Configure Evaluation Tags

Define evaluation criteria for monitoring experiment responses. Evaluation tags allow you to:

* Define custom evaluation criteria
* Set up automated response quality checks
* Track model performance metrics

> Click here [here](/future-agi/get-started/evaluation/builtin-evals/overview) to learn how to configure eval tags for observability.

```python theme={null}
from fi_instrumentation.fi_types import EvalName, EvalSpanKind, EvalTag, EvalTagType

eval_tags = [
    EvalTag(
        eval_name=EvalName.DETERMINISTIC_EVALS,
        value=EvalSpanKind.TOOL,
        type=EvalTagType.OBSERVATION_SPAN,
        config={
            "multi_choice": False,
            "choices": ["Yes", "No"],
            "rule_prompt": "Evaluate if the experiment result is valid",
        },
        custom_eval_name="det_eval_experiment_1"
    )
]
```

## 4. Initialize Trace Provider

Set up the trace provider to establish the observability pipeline. The trace provider:

* Creates a new project in FutureAGI
* Establishes telemetry data pipelines
* Configures version tracking
* Sets up evaluation frameworks

```python theme={null}
from fi_instrumentation import register
from fi_instrumentation.fi_types import ProjectType

trace_provider = register(
    project_type=ProjectType.EXPERIMENT,
    project_name="my_experiment",
    project_version_name="v1",
    eval_tags=eval_tags
)
```

## 5. Configure Experiment Instrumentation

Initialize the Experiment instrumentor to enable automatic tracing:

```python theme={null}
from fi_instrumentation import ExperimentInstrumentor

ExperimentInstrumentor().instrument(tracer_provider=trace_provider)
```

## 6. Create Experiment Components

Set up your experiment with built-in observability:

```python theme={null}
from futureagi import Experiment

experiment = Experiment(
    name="my_experiment",
    description="Testing model performance on classification tasks",
    dataset_id="your-dataset-id"
)
```

## 7. Execute

Run your experiment with observability enabled:

```python theme={null}
def run_experiment():
    try:
        # Configure experiment parameters
        experiment.configure(
            model_config={
                "model": "claude-3-sonnet-20240229",
                "temperature": 0.7,
                "max_tokens": 1000
            },
            prompt_template="Your task is to classify the following text: {{input}}",
            evaluation_metrics=["accuracy", "f1_score"]
        )
        
        # Run the experiment
        results = experiment.run()
        print(f"Experiment results: {results}")
    except Exception as e:
        print(f"Error: {str(e)}")

if __name__ == "__main__":
    run_experiment()
```
