Benchmarks

Every number on this page is reproducible. Dataset is public, harness is MIT-licensed, latency is raw curl wall-clock against the live production endpoints. Methodology beats marketing — if you can't re-run it, it isn't a benchmark.

If you only read three sentences: AgentOracle's accuracy is measured on a public academic benchmark, not a number we made up. Anyone can re-run our results, the dataset is public, the harness is MIT-licensed. That's the difference between verification you can trust and verification you have to take on faith.

Accuracy — AVeriTeC 2024 Reproducible

Public academic fact-checking benchmark from Schlichtkrull et al., EMNLP 2024. 500-claim dev set with 4-label space: Supported / Refuted / Not Enough Evidence / Conflicting Evidence. AgentOracle's /evaluate pipeline was run end-to-end against the live API, identical inference path to paid x402 settles. Calibration / held-out split is 250/250 by deterministic dataset index.

The benchmark is brutal. AgentOracle is roughly 2× the academic state of the art.

SystemAccuracy on dev
BERT-base classifier (paper)~25%
T5 (paper)~30–35%
Best paper-provided baseline~30%
AgentOracle /evaluate57.6%

AVeriTeC is multi-evidence fact-checking with a 4-label space. Published academic systems land near 30%. AgentOracle's pipeline scores roughly double the strongest paper-provided baseline on the same dev set. The score is high because the benchmark is hard, not because the bar is low.

Headline

SplitNOverall accuracy
Full dev set49857.6%
Calibration half25057.6%
Held-out half24857.7%

Held-out matches calibration → verdict mapping is not overfit. Selected via inspection on the calibration half; held-out is untouched during selection.

Per-category accuracy (held-out half)

Claim categoryAccuracy
Supported70.6%
Refuted61.6%
Not Enough Evidence27.3%
Conflicting Evidence / Cherrypicking13.6%

Why the lower numbers on Conflicting / NEE are a safety property, not a model failure: when evidence genuinely conflicts, AgentOracle leans skeptical — most misclassified Conflicting claims received Refuted verdicts, not falsely-confident Supported ones. That is the right failure mode for regulated content. A verifier that fails toward caution is safer than a verifier that fails toward confident-wrong. We publish the absolute numbers as-is so a buyer can audit the failure shape themselves.

Reproduce

git clone https://github.com/TKCollective/agentoracle-eval-harness
cd agentoracle-eval-harness
curl -sL https://raw.githubusercontent.com/MichSchli/AVeriTeC/main/data/dev.json -o dev.json
python3 scripts/run_dev_eval.py
python3 scripts/score.py results/2026-05-28-dev/results.jsonl

Run completes in ~25 minutes at 3 concurrent workers against the live /evaluate endpoint. Submission registered at TKCollective/agentoracle-benchmark. MIT-licensed. Open submissions — see submission-format.md.

Footnote on inference path

The harness uses the unauthenticated /evaluate tier. Inference path is identical to paid x402 settles; payment gates the response, not the model.

What's coming — deterministic-first grounding. The 57.6% number above measures AgentOracle's probabilistic pipeline on AVeriTeC's full claim mix. The next architectural step (spec) routes claims that resolve via structural lookup — field match, range check, comparison, set membership, citation existence — through a deterministic path that doesn't invoke an LLM at all and resolves at near-100%. The LLM tier becomes the small probabilistic slice. Every receipt will disclose resolution_path: deterministic | probabilistic | hybrid so the buyer can see exactly how each verdict was reached. Not yet implemented — scoped, repo-visible, on the roadmap.
Why we publish this honestly: the value of a benchmark is that anyone can re-run it and check. If we picked numbers that flatter and hid the rest, the benchmark would be marketing. The point is the opposite — falsifiability is the moat. Run it yourself.

Latency — /v1 endpoints Live production

Raw curl wall-clock from a single sandbox client against the live production hosts. Includes TCP + TLS + HTTP + handler + crypto + response. Sequential, single-connection-per-request. Measured 2026-06-25T22:14:00Z. Re-run yourself with the commands shown below — these numbers are what you will see.

POST /v1/sign — single Ed25519 signature

Takes one canonical_bytes_b64u, returns one JWS signature entry. The primitive every composed envelope leg uses.

Statisticms
min120.8
p50136.2
p90156.2
p99400.8
max400.8
mean146.1

n=50 sequential calls. Host: https://agentoracle.co (Vercel edge). Dominated by network round-trip and TLS, not crypto — the Ed25519 sign itself is sub-millisecond.

curl -w "\n%{time_total}s\n" -X POST https://agentoracle.co/v1/sign \
  -H "Content-Type: application/json" \
  -d '{"canonical_bytes_b64u":"eyJ0ZXN0IjoidHJ1ZSJ9"}'

POST /v1/compose — full 2-signer composed envelope

Single HTTP call. Orchestrates AT /v1/compose → v_gate_skill, AO computes v_gate, builds canonical bytes once, AT /v1/sign for AT's signature, AO signs locally, assembles JWS general serialization. Returns full 2-signer envelope verifiable against both published JWKS.

Statisticms
min380.2
p50401.8
p90417.6
p99745.0
mean417.3

n=20 sequential calls. Includes one round-trip to AT /v1/compose + one to AT /v1/sign over the public internet from the AO origin region to the AT origin region. Co-location would cut this further; published as-is.

curl -w "\n%{time_total}s\n" -X POST https://agentoracle.co/v1/compose \
  -H "Content-Type: application/json" \
  -d '{"claim_hash":"sha256-yourclaim","mcp_content":{"tool":"web.search"}}'

POST /v1/sign/batch — N canonical bytes, N signatures

Bulk signing primitive for high-frequency agent loops. Max 100 items per request. Returns one signature entry per input; all entries share the same kid (issuer is constant). Useful when an agent needs to anchor many envelopes in one network round-trip.

curl -X POST https://agentoracle.co/v1/sign/batch \
  -H "Content-Type: application/json" \
  -d '{"canonical_bytes_b64u":["...","...","..."]}'

Latency is dominated by HTTP round-trip, not crypto. Batched cost-per-item drops linearly with N for any N ≥ 2.

What this is and isn't: these are wall-clock numbers from one sandbox client against the live production endpoints. They include network and TLS overhead. They are not the verification accuracy (see AVeriTeC above), they are not isolated crypto benchmarks (Ed25519 sign is <1ms on any modern CPU), and they are not the latency you would see from a co-located client. They are what an off-network caller sees today. Re-run them yourself — your numbers should land in the same ballpark.

Conformance — composed envelope 11/11 vectors

Parallel Node + Python verifiers, both byte-identical on Phase 1 (4 accept + 3 reject) and Phase 2 (3 accept + 1 reject). Independently verified end-to-end on 2026-06-24 by @giskard09 (IETF action-ref maintainer at argentum-core).

VectorWhat it coversResult
comp-001…0042-signer accept (both-act, AT-halt, AO-halt, trail-resolved)PASS
comp-r01…r032-signer reject (tampered sig, null mycelium_trail_id, AND_PRESENT mismatch)PASS
comp-005…0073-signer accept (with Presidio screen_ref, comp-006 = PII_BLOCKED halts a payment both gates approved)PASS
comp-r-screenscreen_ref recompute mismatchPASS

Full suite + verifiers at TKCollective/agentoracle-receipt-spec. Spec anchor: draft-krausz-verification-state-01 (IETF Internet-Draft).