Documentation
¶
Overview ¶
Package telemetry defines the observability exporter boundary for AgentKit. Session JSONL remains the source of truth; exporters mirror turn/step/tool activity to external systems such as Langfuse.
Index ¶
- func BeginObservation(ctx context.Context, meta ObservationMeta) (context.Context, func(ObservationEnd))
- func BeginTurn(ctx context.Context, meta TurnMeta) (context.Context, func(TurnEnd))
- func EnrichEventAttrs(ctx context.Context, attrs map[string]string) map[string]string
- func FormatMessage(msg agentkit.ModelMessage) string
- func ParentObservationIDFrom(ctx context.Context) string
- func PreparePayload(raw string, maxBytes int, redact bool) string
- func RecordEvent(ctx context.Context, name string, attrs map[string]string)
- func RecordTurnOutput(ctx context.Context, msg agentkit.ModelMessage)
- func RecordTurnUsage(ctx context.Context, usage Usage)
- func RedactJSON(raw string) string
- func ScopeParentFrom(ctx context.Context) string
- func SummarizeMessage(msg agentkit.ModelMessage) string
- func SummarizeMessages(messages []agentkit.ModelMessage, maxBytes int, redact bool) string
- func ToolNamesFromSpecs(specs []agentkit.ToolSpec) []string
- func ToolParentFrom(ctx context.Context) string
- func TruncatePayload(raw string, maxBytes int) string
- func TurnIDFrom(ctx context.Context) string
- func WithExporter(ctx context.Context, exp Exporter) context.Context
- func WithParentObservationID(ctx context.Context, observationID string) context.Context
- func WithScopeParent(ctx context.Context, observationID string) context.Context
- func WithToolParent(ctx context.Context, observationID string) context.Context
- func WithTurnAccum(ctx context.Context) context.Context
- func WithTurnID(ctx context.Context, turnID string) context.Context
- func WrapOutboundEmit(ctx context.Context, emit agentkit.OutboundEmit) agentkit.OutboundEmit
- type Exporter
- type ObservationEnd
- type ObservationKind
- type ObservationMeta
- type RecordedEvent
- type RecordedObservation
- type RecordedTurn
- type RecordingExporter
- func (r *RecordingExporter) BeginObservation(ctx context.Context, meta ObservationMeta) (context.Context, func(ObservationEnd))
- func (r *RecordingExporter) BeginTurn(ctx context.Context, meta TurnMeta) (context.Context, func(TurnEnd))
- func (r *RecordingExporter) Flush(context.Context) error
- func (r *RecordingExporter) RecordEvent(_ context.Context, name string, attrs map[string]string)
- func (r *RecordingExporter) Shutdown(context.Context) error
- func (r *RecordingExporter) Snapshot() (turns []RecordedTurn, observations []RecordedObservation, ...)
- type TurnEnd
- type TurnMeta
- type Usage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BeginObservation ¶
func BeginObservation(ctx context.Context, meta ObservationMeta) (context.Context, func(ObservationEnd))
BeginObservation starts a nested observation on the exporter stored in ctx.
func EnrichEventAttrs ¶ added in v0.1.5
EnrichEventAttrs adds agent_id and session_id from ctx when missing.
func FormatMessage ¶ added in v0.1.10
func FormatMessage(msg agentkit.ModelMessage) string
FormatMessage JSON-encodes a model message for trace input/output display.
func ParentObservationIDFrom ¶ added in v0.1.5
ParentObservationIDFrom is an alias for ToolParentFrom.
func PreparePayload ¶
PreparePayload applies optional redaction and truncation for exporter payloads.
func RecordEvent ¶
RecordEvent records a point-in-time event on the active trace.
func RecordTurnOutput ¶ added in v0.1.10
func RecordTurnOutput(ctx context.Context, msg agentkit.ModelMessage)
RecordTurnOutput appends one final assistant reply to the turn trace output.
func RecordTurnUsage ¶ added in v0.1.10
RecordTurnUsage adds one step's token usage to the active turn total.
func RedactJSON ¶
RedactJSON scrubs sensitive keys from JSON objects before export.
func ScopeParentFrom ¶ added in v0.1.5
ScopeParentFrom returns the active scope parent observation id when present.
func SummarizeMessage ¶
func SummarizeMessage(msg agentkit.ModelMessage) string
SummarizeMessage returns a compact text summary of a model message.
func SummarizeMessages ¶
func SummarizeMessages(messages []agentkit.ModelMessage, maxBytes int, redact bool) string
SummarizeMessages JSON-encodes a message list for exporter input.
func ToolNamesFromSpecs ¶ added in v0.1.10
ToolNamesFromSpecs returns tool names exposed to the model for one step.
func ToolParentFrom ¶ added in v0.1.5
ToolParentFrom returns the active tool parent observation id when present.
func TruncatePayload ¶
TruncatePayload limits payload size for external export.
func TurnIDFrom ¶
TurnIDFrom returns the active turn id when present.
func WithExporter ¶
WithExporter stores an exporter on the context for downstream runtime code.
func WithParentObservationID ¶ added in v0.1.5
WithParentObservationID is an alias for WithToolParent.
func WithScopeParent ¶ added in v0.1.5
WithScopeParent marks the span that should parent nested generations.
func WithToolParent ¶ added in v0.1.5
WithToolParent marks the observation that should parent nested tool spans.
func WithTurnAccum ¶ added in v0.1.10
WithTurnAccum stores per-turn output and usage accumulators on ctx.
func WithTurnID ¶
WithTurnID stores the active turn id for slog and exporter correlation.
func WrapOutboundEmit ¶ added in v0.1.10
func WrapOutboundEmit(ctx context.Context, emit agentkit.OutboundEmit) agentkit.OutboundEmit
WrapOutboundEmit records user-visible outbound events on the active turn trace.
Types ¶
type Exporter ¶
type Exporter interface {
BeginTurn(ctx context.Context, meta TurnMeta) (context.Context, func(TurnEnd))
BeginObservation(ctx context.Context, meta ObservationMeta) (context.Context, func(ObservationEnd))
RecordEvent(ctx context.Context, name string, attrs map[string]string)
Flush(ctx context.Context) error
Shutdown(ctx context.Context) error
}
Exporter mirrors agent activity to an external observability backend.
var Noop Exporter = noopExporter{}
Noop is the default exporter that discards all telemetry.
func ExporterFrom ¶
ExporterFrom returns the exporter on ctx, or Noop when unset.
type ObservationEnd ¶
ObservationEnd closes an observation.
type ObservationKind ¶
type ObservationKind string
ObservationKind selects how an observation is exported.
const ( KindSpan ObservationKind = "span" KindGeneration ObservationKind = "generation" KindTool ObservationKind = "tool" )
type ObservationMeta ¶
type ObservationMeta struct {
Name string
Kind ObservationKind
Model string
Input string
// ToolNames lists model-visible tools for an LLM generation.
ToolNames []string
// AgentID labels which agent produced this observation.
AgentID string
// SessionID labels the session that produced this observation.
SessionID string
// Scope marks a span that should parent nested generations (e.g. subagent.turn).
Scope bool
}
ObservationMeta describes a nested observation such as an LLM call or tool.
func ObservationMetaFromContext ¶ added in v0.1.5
func ObservationMetaFromContext(ctx context.Context, meta ObservationMeta) ObservationMeta
ObservationMetaFromContext fills agent and session ids from ctx when unset.
type RecordedEvent ¶
type RecordedObservation ¶
type RecordedObservation struct {
ID string
Meta ObservationMeta
End ObservationEnd
ParentID string
}
type RecordedTurn ¶
type RecordingExporter ¶
type RecordingExporter struct {
Turns []RecordedTurn
Observations []RecordedObservation
Events []RecordedEvent
FlushCalls int
ShutdownCalls int
// contains filtered or unexported fields
}
RecordingExporter captures telemetry calls for tests.
func (*RecordingExporter) BeginObservation ¶
func (r *RecordingExporter) BeginObservation(ctx context.Context, meta ObservationMeta) (context.Context, func(ObservationEnd))
func (*RecordingExporter) RecordEvent ¶
func (*RecordingExporter) Snapshot ¶
func (r *RecordingExporter) Snapshot() (turns []RecordedTurn, observations []RecordedObservation, events []RecordedEvent)
type TurnEnd ¶
TurnEnd closes a turn trace.
func TurnEndFromAccum ¶ added in v0.1.10
TurnEndFromAccum reads accumulated turn output and usage for trace closure.