Migration Guide
ARI's checkpoint format has evolved through three releases. This guide walks the upgrade paths.
| From | To | Headline change |
|---|---|---|
| v0.5 | v0.6 | Letta memory backend replaces JSONL |
| v0.6 | v0.7 | ORS / EAR registry / lineage decisions |
| v0.7 | v0.8 (future) | Refactored checkpoint format (ari.public/ boundary) |
| v0.8 | v1.0 (future) | Legacy compatibility shims removed |
v0.5 → v0.6
What changed
- Memory backend.
memory_store.jsonl(per checkpoint) and the global$HOME/.ari/global_memory.jsonl(cross-experiment) are retired. The default backend is now Letta (per-checkpoint agent with archival collectionsari_node_*andari_react_*). $HOME/.ari/removed. v0.5.0 already deleted the global config directory; v0.6 makes the new layout the only writable surface.- Rubric system.
ari-skill-paperadopted a YAML rubric selected byARI_RUBRIC.
Recipe
- Stand up a Letta service. Pick one of the deployment paths from
docs/guides/hpc_setup.md#6-letta-memory-backend-deployment: Apptainer SIF, docker-compose, or pip. - Set the required env vars.bash
export LETTA_BASE_URL=http://127.0.0.1:8283 export LETTA_EMBEDDING_CONFIG=/path/to/embedding.json export ARI_MEMORY_BACKEND=letta - Migrate existing memory. In each v0.5 checkpoint:bashThe migrator reads
ARI_CHECKPOINT_DIR=/path/to/ckpt ari memory migratememory_store.jsonl(and the legacy global JSONL if any), writes to the Letta agent, and snapshots the result intomemory_backup.jsonl.gz. - Delete the legacy JSONLs. After verifying the migration:bash
rm /path/to/ckpt/memory_store.jsonl rm $HOME/.ari/global_memory.jsonl # if it ever existed - Pick a rubric. Choose a YAML from
ari-core/config/reviewer_rubrics/and export it:bashSubsequent paper review and BFTS scoring will use the new axes.export ARI_RUBRIC=neurips2025
Verification
ari memory healthreturnsokand reports the agent name.- A
search_memorycall from the agent loop returns embedding- ranked results. - The dashboard
/api/memory/healthendpoint returns 200.
v0.6 → v0.7
What changed
- ORS (Object Repository Spec). The reproducibility chain moved from
react_driver's ad-hoc replication toari-skill-replicate(rubric generator) plusari-skill-paper-re(PaperBench SimpleJudge grader). - EAR registry. EAR bundles can be published to a self-hosted
ari-registryserver (in addition to local-tarball / Zenodo / GitHub release). - Lineage decisions.
stagnation_rulewatches the BFTS composite score. On CONFIRMED stagnation ARI first pivots deterministically to the strongest unused runner-up idea (switch_to_idea); the LLM judge (continue/switch_to_idea/fanout/terminate) is consulted only as a fallback when no deterministic pivot is available (budget exhausted, recursion limit reached, or no unused alternative remains). Decisions are appended tolineage_decisions.jsonl. - work_dir blacklist. Child node
work_dirno longer inherits result files (results.csv,slurm-*.out, ...). Existing checkpoints keep working but child runs that relied on inheritance must be re-run.
Recipe
- Set up the rubric directory. Make sure
ari-core/config/reviewer_rubrics/contains the rubrics you want.ARI_RUBRICselects the active one. - (Optional) Stand up
ari registry serve. Only required if you want to publish bundles viaari://. SetARI_REGISTRY_DATAfirst;ARI_REGISTRIES_FILEandARI_REGISTRY_TOKENconfigure the client side. - Re-run sub-experiments that relied on result inheritance. The blacklist guarantees children no longer copy
results.csv/slurm-*.out/node_report.json. Code, compiled binaries, and inputs still inherit. - (Optional) Wire up the reproducibility flow. Once a paper is ready, run:bash
ari ear curate <checkpoint> ari ear publish <checkpoint> --backend ari-registry ari replicate generate-rubric <checkpoint> ari paper-re grade <checkpoint>
Verification
lineage_decisions.jsonlis created the first time the stagnation rule fires.manifest.lockandpublish_record.jsonappear afterari ear publish.
v0.7 → v0.8 (future)
Anticipated changes
- Skills can only import from
ari.public.*. Thetests/test_public_api_boundary.pyguard rail is already in place; v0.8 removes the deprecation shims. ari/migrations/v05_to_v07/housekeeping helpers move to a dedicated CLI surface (ari migrate ...) instead of being mixed intoari run.
Pre-emptive steps
- Audit any custom skills for direct
from ari import <internal>imports.python -m ari.dev.public_audit(planned) lists them; for nowgrep -rn 'from ari import\|from ari\.' my-skill/src/works. - Where you find an internal import, switch to the matching
ari.public.*module (seedocs/reference/public_api.md).
v0.8 → v1.0 (future)
The deprecation programme (CONTRIBUTING.md::Deprecation process, docs/about/release_policy.md) schedules:
- Removal of every
$HOME/.ari/...filesystem fallback (currently emittingDeprecationWarning). - Removal of
ari/migrations/v05_to_v07/(forces users to migrate before upgrading). - Removal of legacy
node_reportreconstruct helpers.
If you have not migrated by v1.0, ARI will refuse to launch with a hard error pointing to this guide.
See also
docs/_archive/refactor_audit.md— current state of the migration debt.CHANGELOG.md— per-release notes.ari memory migrate --help— CLI options for the v0.5 → v0.6 migrator.docs/guides/troubleshooting.md— what to do when migration fails.