GEPA.Tracking behaviour (GEPA v0.3.0)

Copy Markdown View Source

Experiment tracking behavior and built-in trackers.

HTML/artifact visualization is intentionally excluded. Trackers receive scalar metrics, tables, and summary maps from the engine and can forward them to external systems or keep them in memory for tests and local tooling.

Summary

Types

tracker()

@type tracker() :: module() | struct() | nil

Callbacks

finish(term)

(optional)
@callback finish(term()) :: :ok | {:error, term()}

log_metrics(term, map, keyword)

@callback log_metrics(term(), map(), keyword()) :: :ok | {:error, term()}

log_summary(term, map)

@callback log_summary(term(), map()) :: :ok | {:error, term()}

log_table(term, t, list, keyword)

(optional)
@callback log_table(term(), String.t(), [map()], keyword()) :: :ok | {:error, term()}

start(term)

(optional)
@callback start(term()) :: :ok | {:ok, term()} | {:error, term()}

Functions

create_experiment_tracker(opts \\ [])

@spec create_experiment_tracker(keyword() | map()) ::
  GEPA.Tracking.ExperimentTracker.t()

Create the dependency-free experiment tracker used for upstream-style tracking options.

finish(tracker)

@spec finish(tracker()) :: :ok

log_metrics(tracker, metrics, opts \\ [])

@spec log_metrics(tracker(), map(), keyword()) :: :ok

log_summary(tracker, summary)

@spec log_summary(tracker(), map()) :: :ok

log_table(tracker, name, rows, opts \\ [])

@spec log_table(tracker(), String.t(), [map()], keyword()) :: :ok

start(tracker)

@spec start(tracker()) :: :ok