Sycophant.Agent.Telemetry (sycophant v0.4.2)

Copy Markdown

Telemetry events for the agent lifecycle.

Emits :telemetry events at key points during agent execution, following the standard span pattern.

Agent Events

  • [:sycophant, :agent, :start] - Agent starts. Measurements: %{}. Metadata: caller-provided (e.g. %{model: ...}).

  • [:sycophant, :agent, :stop] - Agent stops. Measurements: caller-provided (e.g. %{duration: integer}). Metadata: caller-provided (e.g. %{reason: atom}).

Turn Events

  • [:sycophant, :agent, :turn, :start] - A turn begins. Measurements: %{}. Metadata: caller-provided (e.g. %{turn_number: integer}).

  • [:sycophant, :agent, :turn, :stop] - A turn completes. Measurements: caller-provided (e.g. %{duration: integer, input_tokens: integer}). Metadata: caller-provided.

Tool Events

  • [:sycophant, :agent, :tool, :start] - Tool execution begins. Measurements: %{}. Metadata: caller-provided (e.g. %{tool_name: string}).

  • [:sycophant, :agent, :tool, :stop] - Tool execution completes. Measurements: caller-provided (e.g. %{duration: integer}). Metadata: caller-provided.

Other Events

  • [:sycophant, :agent, :error] - An error occurs. Measurements: %{}. Metadata: caller-provided (e.g. %{error: term}).

  • [:sycophant, :agent, :state_change] - Agent state transition. Measurements: %{}. Metadata: %{from_state: atom, to_state: atom}.

Attaching Handlers

:telemetry.attach_many("agent-logger", Sycophant.Agent.Telemetry.events(), &handle_event/4, nil)

Summary

Functions

Emits agent start event.

Emits agent stop event with measurements.

Emits error event.

Returns the list of telemetry event names emitted by the agent.

Emits state change event.

Emits tool start event.

Emits tool stop event with measurements.

Emits turn start event.

Emits turn stop event with measurements.

Functions

agent_start(metadata)

@spec agent_start(map()) :: :ok

Emits agent start event.

agent_stop(measurements, metadata)

@spec agent_stop(map(), map()) :: :ok

Emits agent stop event with measurements.

error(metadata)

@spec error(map()) :: :ok

Emits error event.

events()

@spec events() :: [[atom(), ...]]

Returns the list of telemetry event names emitted by the agent.

state_change(from, to)

@spec state_change(atom(), atom()) :: :ok

Emits state change event.

tool_start(metadata)

@spec tool_start(map()) :: :ok

Emits tool start event.

tool_stop(measurements, metadata)

@spec tool_stop(map(), map()) :: :ok

Emits tool stop event with measurements.

turn_start(metadata)

@spec turn_start(map()) :: :ok

Emits turn start event.

turn_stop(measurements, metadata)

@spec turn_stop(map(), map()) :: :ok

Emits turn stop event with measurements.