---
title: "openvibe-sdk/agents/metrics · OpenVibe.Services"
canonical: "https://openvibe.services/docs/sdk/agents-metrics"
updated: null
---

# openvibe-sdk/agents/metrics · OpenVibe.Services

HTML: [openvibe-sdk/agents/metrics · OpenVibe.Services](https://openvibe.services/docs/sdk/agents-metrics)

# `openvibe-sdk/agents/metrics`

Generated at 2026-11-14 06:36:17 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.168.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.168.0).

From `types/agents-metrics.d.ts` (both). Declarations are shown verbatim.

## type Exit

~~~~
export type Exit = 'done' | 'limits' | 'timeout' | 'format_error' | 'refused' | 'tool_error' | 'stopped' | 'error';
~~~~

## interface Evidence

~~~~
export interface Evidence { kind: 'test' | 'schema' | 'grader' | 'person' | 'decision'; passed: boolean; detail?: string; probability?: number; }
~~~~

## interface Metrics

~~~~
export interface Metrics { charged_usd: number | null; estimated_usd: number | null; tokens_in: number; tokens_out: number; cache_read: number; cache_write: number; latency_ms: number; steps: number; exit?: Exit; evidence: Evidence[]; }
~~~~

## interface Usage

~~~~
export interface Usage { tokens_in?: number; tokens_out?: number; cache_read?: number; cache_write?: number; charged_usd?: number | null; estimated_usd?: number | null; }
~~~~

## interface Recorder

~~~~
export interface Recorder { call(u: Usage): Recorder; step(): Recorder; evidence(e: Evidence): Recorder; end(exit?: Exit | string): Metrics; snapshot(): Metrics; }
~~~~

## export export function createRecorder(options?: { now?: () => numbe

~~~~
export function createRecorder(options?: { now?: () => number }): Recorder;
~~~~

## export export function passAtK(results: boolean\[\], k: number): numb

~~~~
export function passAtK(results: boolean[], k: number): number | null;
~~~~

## export export function passHatK(results: boolean\[\], k: number): num

~~~~
export function passHatK(results: boolean[], k: number): number | null;
~~~~

## export export function flakeRate(cases: boolean\[\]\[\]): number | null

~~~~
export function flakeRate(cases: boolean[][]): number | null;
~~~~

## export export const EXITS: Exit\[\];

~~~~
export const EXITS: Exit[];
~~~~

## export export const EVIDENCE: Evidence\['kind'\]\[\];

~~~~
export const EVIDENCE: Evidence['kind'][];
~~~~
