Open measurement infrastructure for agent-facing software

Know what your agent usage metrics actually count.

Separate logical operations from attempts, preserve retry and cost evidence, and show what your telemetry can — and cannot — prove.

Read the Specification →
agentmeasure / trace 0192
USER INTENT
Book a table tonight
OPERATION01
ATTEMPT01
provider_callFAILED
ATTEMPT02
provider_callSUCCESS
OPERATIONS1
ATTEMPTS2
OPERATION SUCCESS100%
ATTEMPT SUCCESS50%
RESULT
RETURNEDYES
CONSUMEDUNKNOWN
USEFULUNKNOWN
1 intent · 2 attempts · 1 operation — it is not “2 operations with 50% success”
Open sourceMIT
SpecDraft 0.4.4
SDKv0.1.1
DeploymentLocal-first

01 — The problem

The software consumer changed.
The measurement stack didn’t.

AvailablePresented
PresentedSelected
SelectedUsed
UsedUseful
UsefulIncremental Value
Measured UsageBillable Usage

Three attempts of one operation are not three billable operations — unless the metering policy says so.

Agent systems collapse these states into vague “tool usage.”
AgentMeasure keeps them separate.

Tool providers

Agents hammer your endpoint; retries inflate every count.

Price by operation, not by noise
Platforms & metering

Billing rides on usage numbers — with CI and synthetic traffic inside them.

Meters that survive an audit
Runtime evaluators

Every runtime counts differently, so comparisons are folklore.

Same semantics across five runtimes

02 — Claim discipline

Similar events. Different facts.

01

AttemptOperation

Attempts are execution facts. Operations are logical intents. Retries are multiple attempts of one operation — not “2 operations with 50% success.”

1 intent
Attempt 01
Attempt 02
= 1 Operation
02

ReturnedConsumed

The tool returned a result. Did the caller actually use it? Returned is observable; consumed needs evidence. Unknown is a valid, first-class answer.

Tool returned result
?
Did the caller actually use it?
RETURNEDobservable
CONSUMEDneeds evidence
03

ObservedInferred

A selection is not a preference — it can be made by the model, a router, a policy, a workflow, or the user. AgentMeasure records what happened before inferring why.

selected_by:
model · router · policy
workflow · user · platform
what happened ≠ why

03 — The measurement model

From reach to value.

Metric families, not a universal KPI — the same semantics map onto search, booking, and compute.

01 Reach Did the capability enter the choice set? Spec · Defined
02 Choice Was it selected? Spec · Defined
03 Use Was it actually executed? Spec · Defined
04 Utility Did the result contribute to the task? Spec · Partial Consumption — partial
Effect confirmation — planned
05 Value Did it improve the outcome? Spec · Draft Incremental value — formula defined

Defined does not mean observable in every runtime. Semantics are spec status; observation depends on the harness — see the observability matrix ↓

04 — How it works

Provider-side measurement.
No agent-side install.

Agent Claude · Codex · any runtime
MCP / API / CLI
Capability Provider
Business handler
AgentMeasure SDK
observations · JSONL
Local Collector
Local analyticsno cloud required
Hosted analyticsopt-in · planned
01

No agent-side install

Third-party agents never need AgentMeasure. Measurement happens where the capability is delivered.

02

Provider-side measurement

The SDK wraps your tool handlers and emits canonical observations — one schema, six payload classes.

03

Not on the critical path

Non-blocking, durable spool with loss accounting. If the SDK fails, your server doesn’t.

04

Your data can stay local

JSONL on your machine, analytics generated locally. Hosted ingestion is explicit opt-in, later.

MCP is the first reference surface, not a requirement. Closed-source software is fine.

Telemetry records events. AgentMeasure defines what those events mean.

05 — Available today

What works today.

Shipped, with tests, conformance vectors, and published profiles.

Provider SDK @agentmeasure/mcp · release tarball v0.1.1
Registry publish npm — pending scope/token Pending
Canonical observations schemas/observation.schema.json · 6 payload classes Shipped
Local analytics product/local-analytics.py Shipped
Conformance vectors CI · conformance workflow Passing
Harness profiles codex · claude-code · dsh · pydantic-ai · otel 5
Hosted ingestion · dashboard next on the product roadmap In development
21 SDK tests Deterministic E2E fixture No cloud required Data stays local

Numbers track releases and the roadmap.

06 — Try it

See the model in two minutes.

sh — demo
$ git clone https://github.com/roy-tong/AgentMeasure
$ cd AgentMeasure
$ ./examples/demo-e2e.sh
42 calls captured — mock MCP server, 3 caller classes
84 canonical observations · 0 rejected
operation correlation — strict, no fallback counting
caller attribution — claude 14 · codex 14 · unknown 14
strict qualified 0% — synthetic traffic excluded
deterministic replay — same fixture, same result
requires node ≥ 18 + python3 · no external deps · isolated workspace

What the demo proves

  • Canonical observations — one portable schema
  • Operation / attempt correlation, fail-closed
  • Caller attribution — correlated · declared · unknown
  • Local analytics without any cloud
  • Deterministic replay — reproducible numbers
Open Quickstart →

07 — External provider trial

Find out what your agent traffic actually is.

7 days. One capability. Your data stays on your machine.

Retry inflation

How many calls are actually one logical operation?

Execution economics

What does one successful operation really cost?

Traffic quality

How much “production” traffic is CI, synthetic, or unknown?

You get: a Measurement Report plus a 45-minute review call — findings as business conclusions, each with its evidence class.

Three providers, one capability each. If the method breaks on your data, we publish that — the discipline already applied to six public claims in Benchmark Run #001.

08 — Open standard

One measurement language
across agent runtimes.

A public record of observation blind spots — what each runtime can and cannot observe.

Runtime Operation Attempt Consumption Delegation
Claude Code
Codex
DeepSeek Harness
Pydantic AI
OTel GenAI
observable partial / derived unavailable

Harness profiles, Draft 0.4.4 — a fixed questionnaire per runtime, with the mapping rules and blind spots in writing. Read the profiles →

09 — Explore Lab

Measure usage. Then measure causality.

AgentMeasure

What happened?

Observation · correlation · evidence-graded facts

AgentMeasure Lab

Did the change actually improve it?

Preregistered experiments · effect sizes · honest nulls

Explore Lab →

10 — Long-term thesis

Software is becoming callable.

Human Software Economy
Human UI App Seat / Month
Agent Capability Economy
Agent Capability Execution Outcome Usage · Value · Transaction

Before capabilities can be priced, compared, or purchased by agents,
they need a shared measurement layer.

That layer is the foundation for Capability as a Service — a direction, not a product sold today. The standard defines economic facts; money movement stays with payment rails.