Skip to content

AgentMetrics

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

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:174

ParameterType
data?Partial<AgentMetricsData>

AgentMetrics

readonly cycleCount: number;

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

Number of agent loop cycles executed.


readonly accumulatedUsage: Usage;

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

Accumulated token usage across all model invocations.


readonly accumulatedMetrics: Metrics;

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

Accumulated performance metrics across all model invocations.


readonly agentInvocations: InvocationMetricsData[];

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

Per-invocation metrics.


readonly toolMetrics: Record<string, ToolMetricsData>;

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

Per-tool execution metrics keyed by tool name.

get latestAgentInvocation(): InvocationMetricsData;

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

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

InvocationMetricsData


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

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

Accumulated usage and performance metrics across all model invocations.

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

get totalDuration(): number;

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

Total duration of all cycles in milliseconds.

number


get averageCycleTime(): number;

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

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:214

Per-tool execution statistics with computed averages and rates.

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

toJSON(): AgentMetricsData;

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

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