Importer

OpenTelemetry

Many agent frameworks emit OpenTelemetry GenAI spans with the model and token usage of every call. Point their exporter at a collector you run, save the traces to a file, and import it.

  1. Run the OpenTelemetry Collector with the file exporter (config below).
  2. Point your framework's OTLP exporter at the collector.
  3. Run your agents; traces collect in traces.jsonl.
  4. Run import-otel. Span names are matched to the blueprint's step names, and unmatched spans are listed so you can rename steps.

Collector config

# otel-collector.yaml: run the OpenTelemetry Collector (contrib) on your machine or server
receivers:
  otlp:
    protocols: { http: {}, grpc: {} }
exporters:
  file:
    path: ./traces.jsonl
service:
  pipelines:
    traces: { receivers: [otlp], exporters: [file] }

Import

python harness.py import-otel traces.jsonl --blueprint .harness/harness.yaml --out .harness/runs/otel.jsonl.gz
python harness.py check-logs .harness/harness.yaml --runs .harness/runs

Where the log lands

In the trace file your collector writes.

How it reaches the harness

It is already on your machine or server; copy it to where you run the harness.

The importer reads both the older and newer GenAI attribute names, counts cache reads as input, and keeps cost when the span carries it.

Read the full guide on GitHub

Import what you already have

20 platform guides in total.