Skip to main content

Ops

An Op is a versioned, tracked function. When you decorate a function with @weave.op() (Python) or wrap it with weave.op() (TypeScript), Weave automatically captures its code, inputs, outputs, and execution metadata. Ops are the building blocks of tracing, evaluation scorers, and any tracked computation.
    @weave.op
    async def my_function(){
      ...  }

Calls

A Call is a logged execution of an Op. Every time an Op runs, Weave creates a Call that captures:
  • Input arguments
  • Output value
  • Timing and latency
  • Parent-child relationships (for nested calls)
  • Any errors that occurred
Calls show up as Traces in the Weave UI and provide the data for debugging, analysis, and evaluation. Calls are similar to spans in the OpenTelemetry data model. A Call can:
  • Belong to a Trace (a collection of calls in the same execution context)
  • Have parent and child Calls, forming a tree structure