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
@spec agent_start(map()) :: :ok
Emits agent start event.
Emits agent stop event with measurements.
@spec error(map()) :: :ok
Emits error event.
@spec events() :: [[atom(), ...]]
Returns the list of telemetry event names emitted by the agent.
Emits state change event.
@spec tool_start(map()) :: :ok
Emits tool start event.
Emits tool stop event with measurements.
@spec turn_start(map()) :: :ok
Emits turn start event.
Emits turn stop event with measurements.