mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
The index, its boards and the shelf's pages wrap their prose: server pages with <T>, the boards and the library with t(), and copy held in data with phrase(). Figures read from the runs are values, and the fields lib/kai, lib/tools, lib/coding and lib/tally hand a board are drawn through t(), so they translate once those files emit keys. The shared parts (Chapter, Fold, Stat, Tile, Panel, Mark) translate a string where they draw it and take a node from a server page. figures.spec lets the index import @hanzo/i18n: words in, words out, never a figure.
87 lines
4.0 KiB
TypeScript
87 lines
4.0 KiB
TypeScript
/**
|
||
* /benchmarks/fleet — what a dormant agent costs, at a million of them.
|
||
*
|
||
* The table renders the fleet pass of lib/data/benchmarks-runtime.json. The
|
||
* prose quotes figures from that pass by hand, so a rerun edits both.
|
||
*/
|
||
import { T } from '@hanzo/i18n/react'
|
||
import { pageMeta } from '@/lib/page-meta'
|
||
import { BENCHMARKS, DORMANT, bench, paperUrl } from '@/lib/benchmarks'
|
||
import { BenchJsonLd } from '@/components/benchmarks/JsonLd'
|
||
import { Grid, H2, Meta, More, Note, P, Shell, Spec, type Col } from '@/components/benchmarks/kit'
|
||
import { RUNTIME, shots, type Shot } from '@/lib/bench-data'
|
||
|
||
const B = bench('fleet')!
|
||
|
||
export const metadata = pageMeta({
|
||
title: 'Dormant agent cost benchmark',
|
||
description:
|
||
"Benchmark 1M dormant AI agents: 477 bytes of state each, 309k written/sec, and 0.034 ms resume times on Hanzo's high-speed agent engine.",
|
||
path: '/benchmarks/fleet',
|
||
})
|
||
|
||
const MEASURES = ['bytes per dormant agent', 'write rate', 'resume latency']
|
||
|
||
/* The storage-cost row this table used to carry is gone: $0.01 a month against $22 is list-price
|
||
arithmetic over a competitor's modelled agent size, which is a derivation of a
|
||
derivation and not something the command below prints. The row above it says
|
||
the same thing without the assumption. */
|
||
const ROWS = shots('fleet')
|
||
const cols: Col<Shot>[] = [
|
||
{ head: <T>measurement</T>, get: (r) => r.what, left: true },
|
||
{ head: <T>Hanzo, measured</T>, get: (r) => r.ours },
|
||
{ head: <T>the published figure</T>, get: (r) => r.theirs ?? '—', left: true },
|
||
]
|
||
|
||
export default function Page() {
|
||
return (
|
||
<>
|
||
<BenchJsonLd b={B} measures={MEASURES} />
|
||
<Shell b={B}>
|
||
<Spec b={B} />
|
||
|
||
<H2><T>What is measured</T></H2>
|
||
<P>
|
||
<T values={{ dormant: <em><T>dormant</T></em> }}>
|
||
{'A million agents are created, written to disk, and read back. What is counted is the state a {dormant} agent occupies — the row that has to exist for an agent to be resumable at all — the rate at which those rows can be written, and the time to bring one back. Nothing is running while the measurement is taken, which is the point: an agent platform’s floor is what it costs to keep an agent that is doing nothing.'}
|
||
</T>
|
||
</P>
|
||
|
||
<H2><T>Results</T></H2>
|
||
<Meta>
|
||
<T values={{ machine: RUNTIME.passes.fleet.machine }}>{'one million agents · {machine} · the pass of 2026-09-07'}</T>
|
||
</Meta>
|
||
<Grid cols={cols} rows={ROWS} keyOf={(r) => r.what} />
|
||
<Note>
|
||
<T>{'The right-hand column is not a competitor’s measurement. It is the per-agent figure a competing platform assumes in its own published arithmetic, marked there as modelled and never billed. Ours is a directory you can list. The distance between the two is about 2,200× and most of it is the difference between an assumption and a file.'}</T>
|
||
</Note>
|
||
|
||
<H2><T>What this does not measure</T></H2>
|
||
<P>
|
||
<strong>
|
||
<T>A dormant agent is not a running one.</T>
|
||
</strong>{' '}
|
||
<T values={{ live: <a href="/benchmarks/goroutine"><T>601 bytes of heap and 125 ns to spawn</T></a> }}>
|
||
{'This number is the floor, and the floor is the easy part. What a live agent costs is a different measurement with a different command — {live}.'}
|
||
</T>
|
||
</P>
|
||
<P>
|
||
<strong>
|
||
<T>One machine, one day.</T>
|
||
</strong>{' '}
|
||
<T>
|
||
{'This is a single pass on one laptop. It is reproducible by one command and it is not a fleet of machines under load, so read it as a floor that has been established rather than as a service level.'}
|
||
</T>
|
||
</P>
|
||
|
||
<More b={B} all={BENCHMARKS} />
|
||
<Meta>
|
||
<T values={{ harness: <a href={B.harness.url}>{B.harness.repo}</a>, paper: <a href={paperUrl(DORMANT)}>{DORMANT.title}</a> }}>
|
||
{'harness and the committed table: {harness} · the paper: {paper}'}
|
||
</T>
|
||
</Meta>
|
||
</Shell>
|
||
</>
|
||
)
|
||
}
|