Skip to main content
A step records one unit of work inside a trace: usually an LLM call, a tool call, or a stage of your pipeline. You create a step by wrapping the work in ctx.TrackStepAsync with a name and an input.

How steps fit in

Steps belong to a trace. The step name is how Veval matches steps across runs:
  • Replay serves recorded outputs by step name.
  • Assertions like StepExists and ToolCalled look steps up by name.
  • Snapshots align steps by name and position to find what changed.
Give each step a stable name that describes what it does, like classify or answer.

What a step records

See StepHandle metadata keys for the full list.

Deep dives

Instrument your agent

Record steps and attach metadata.

Traces

The run that steps belong to.