# `GEPA.Tracking.ExperimentTracker`
[🔗](https://github.com/nshkrdotcom/gepa_ex/blob/v0.3.0/lib/gepa/tracking/experiment_tracker.ex#L1)

Dependency-free experiment tracker compatible with the upstream tracker API.

The tracker stores metrics, tables, config, summary, and HTML artifacts in an
Agent.  It can be used directly as `tracker:` in `GEPA.optimize/1` because it
implements the callbacks expected by `GEPA.Tracking`.

# `t`

```elixir
@type t() :: %GEPA.Tracking.ExperimentTracker{
  agent: pid(),
  attach_existing: boolean(),
  key_prefix: String.t(),
  mlflow_attach_existing: boolean(),
  mlflow_experiment_name: String.t() | nil,
  mlflow_tracking_uri: String.t() | nil,
  use_mlflow: boolean(),
  use_wandb: boolean(),
  wandb_api_key: String.t() | nil,
  wandb_attach_existing: boolean(),
  wandb_init_kwargs: map() | nil,
  wandb_step_metric: String.t() | nil
}
```

# `active?`

# `end_run`

# `finish`

# `initialize`

# `is_active`

# `log_config`

# `log_html`

# `log_metrics`

# `log_summary`

# `log_table`

# `new`

```elixir
@spec new(keyword() | map()) :: t()
```

# `snapshot`

```elixir
@spec snapshot(t()) :: map()
```

# `start`

# `start_run`

# `with_run`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
