Skip to content

AgentMetrics

Defined in: src/telemetry/meter.ts:160

Read-only snapshot of aggregated agent metrics.

Returned by Meter.metrics and stored on AgentResult. Provides access to cycle counts, tool usage, token consumption, and per-invocation breakdowns. Supports serialization via toJSON.

const result = await agent.invoke('Hello')
console.log(result.metrics?.cycleCount)
console.log(result.metrics?.totalDuration)
console.log(result.metrics?.accumulatedData)
console.log(result.metrics?.toolMetrics)
console.log(JSON.stringify(result.metrics))
  • JSONSerializable<AgentMetricsData>
new AgentMetrics(data?): AgentMetrics;

Defined in: src/telemetry/meter.ts:200

ParameterType
data?Partial<AgentMetricsData>

AgentMetrics

readonly cycleCount: number;

Defined in: src/telemetry/meter.ts:164

Number of agent loop cycles executed.


readonly accumulatedUsage: Usage;

Defined in: src/telemetry/meter.ts:169

Accumulated token usage across all model invocations.


readonly accumulatedMetrics: Metrics;

Defined in: src/telemetry/meter.ts:174

Accumulated performance metrics across all model invocations.


readonly agentInvocations: InvocationMetricsData[];

Defined in: src/telemetry/meter.ts:179

Per-invocation metrics.


readonly toolMetrics: Record<string, ToolMetricsData>;

Defined in: src/telemetry/meter.ts:184

Per-tool execution metrics keyed by tool name.


readonly latestContextSize: number;

Defined in: src/telemetry/meter.ts:191

The most recent input token count from the last model invocation. Represents the current context window utilization. Returns undefined when no invocations have occurred.


readonly projectedContextSize: number;

Defined in: src/telemetry/meter.ts:198

Projected context size for the next model call (inputTokens + outputTokens from the last call). Represents the baseline token count the next invocation will start with. Returns undefined when no invocations have occurred.

get latestAgentInvocation(): InvocationMetricsData;

Defined in: src/telemetry/meter.ts:213

The most recent agent invocation, or undefined if none exist.

InvocationMetricsData


get accumulatedData(): {
usage: Usage;
metrics: Metrics;
};

Defined in: src/telemetry/meter.ts:220

Accumulated usage and performance metrics across all model invocations.

{
usage: Usage;
metrics: Metrics;
}
NameTypeDefined in
usageUsagesrc/telemetry/meter.ts:220
metricsMetricssrc/telemetry/meter.ts:220

get totalDuration(): number;

Defined in: src/telemetry/meter.ts:227

Total duration of all cycles in milliseconds.

number


get averageCycleTime(): number;

Defined in: src/telemetry/meter.ts:234

Average cycle duration in milliseconds, or 0 if no cycles exist.

number


get toolUsage(): Record<string, ToolMetricsData & {
averageTime: number;
successRate: number;
}>;

Defined in: src/telemetry/meter.ts:242

Per-tool execution statistics with computed averages and rates.

Record<string, ToolMetricsData & { averageTime: number; successRate: number; }>

toJSON(): AgentMetricsData;

Defined in: src/telemetry/meter.ts:260

Returns a JSON-serializable representation of all collected metrics. Called automatically by JSON.stringify().

AgentMetricsData

A plain object suitable for round-trip serialization

JSONSerializable.toJSON