A benchmark of memory for long-lived agents
Does your agent wake up as itself?
Bicentennial runs an agent through a generated life of about 200 sessions, inside the harness it really runs in. The headline comes from what the agent does in later sessions, checked against the world's state. A confident false memory costs more than an honest "I don't remember".
How a run works
- 01
Generate a life
One evolving world, rendered into sessions: a software partner (G1) or a personal assistant (G2). Every answer key is computed from the world's state, never labelled by a person.
- 02
Live it in the real harness
The memory system runs inside the agent harness it really ships in, through restarts, compactions, crashes, model swaps and weeks of silence.
- 03
Judge what the agent does
Later sessions need the agent to act. The action is checked against the world: +1 when it is right, 0 for a miss or an honest "I don't know", −1 when it acts on a false or stale memory.
- 04
Find where it broke
Each failure is attributed to the stage that broke: stored, retained, retrieved or used (or unknown, when that stage cannot be observed). The developer loop gives a rerun command for each changed item; repro bundles come in v0.3.
A result is a map, not a single number
| Track | Remember diagnostic | Survive diagnostic | Act headline |
|---|---|---|---|
| Wake | not yet run | not yet run | not yet run |
| Rachael | not yet run | not yet run | not yet run |
| Tuesday | not yet run | not yet run | not yet run |
| Drift | not yet run | not yet run | not yet run |
| Keep | not yet run | not yet run | not yet run |
| Flatten | not yet built | not yet built | not yet built |
| Hands | World profiles, after v1 | World profiles, after v1 | World profiles, after v1 |
- CLEARabove its gate
- UNRESOLVEDtoo close to call
- FAILbelow its gate
- N/A · BLOCKEDoutside the profile, or the benchmark's own failure
Published runs
- 2026-11-02T1 determinism on the release commitv0.2 Developer loopmeasured
- 2026-11-02T1 loop time per armv0.2 Developer loopmeasured
- 2026-11-02T2-lite live smoke, Hermes native, runs A and A′v0.2 Developer loopq₀ 0/11; 11 of 17 items scored
- 2026-11-01v0.1 Kit official run, 2026-11-01-run3v0.1 Kitaccepted
- 2026-11-01v0.1 Kit official run, 2026-11-01-run2v0.1 Kitrejected: t1_identical
- 2026-10-30v0.1 Kit official run, 2026-10-30v0.1 Kitrejected: t0_identical, t1_identical
What makes it different
- The whole system runs inside a real agent harness, across a life, not a store answering queries.
- Compactions, crashes and model swaps are injected, and the agent wakes up cold.
- Actions are judged by their outcomes in the world. Questions with citations stay as diagnostics.
- Governance is tested: forgetting through derived copies, consent and revocation, standing rules.
- Agents run it end to end. Mechanical checks come first, and panels of agents from different model families judge what is left.
- The pre-registration is frozen and hashed before any real system's first pilot run, and every change is disclosed.
What it does not claim
Firstness, multimodal novelty, or a better score for any system before the results exist. Scores are expected to be low, and many cells are hard on purpose. No target is set on any system's score, and valid zeros are published.
How the benchmark stays independent of the systems it tests →