A persistent research environment.
Catenation connects a programmable model runtime, reusable research behavior, and a domain-specific evidence system. The three have different responsibilities: execution records what an agent does; the harness carries its reusable behavior; the research ledger records what a result establishes.
Updated September 23, 2026
The research layer around frontier models
Catenation uses frontier models inside a persistent scientific working environment. The model supplies research judgment; the runtime supplies execution, context programs, tool calls, and recursive sessions; the domain harness supplies target identity, evidence relationships, and acceptance rules.
A scientific insight may first appear as a failed construction, a useful reduction, a counterexample, a calculation, or a new connection to a source. The system preserves those intermediate objects with the project, so another person or AI agent can inspect, challenge, and extend them. A finished proof or manuscript is one output of a longer, inspectable research process.
Model connections and authentication
| Connection | Implemented mechanism | Configuration |
|---|---|---|
| Codex subscription authentication | The runtime's OAuth credential store resolves provider credentials and refreshes expiring tokens. | Authenticated provider configuration remains with the host runtime; the research ledger records provider and model identity. |
| API providers | API-key resolution through configured environment values, the runtime auth store, or a configured secret-reading command. | The Math Forge layer includes an explicit metered OpenAI profile and configured fallback profiles. |
| Compatible local or hosted endpoints | The runtime model registry accepts custom providers, base URLs, models, and compatibility settings. | OpenAI-compatible servers can use the completion transport. Each deployment needs an appropriate model definition and working tool interface. |
Model configuration is separate from durable research state. Teams can switch configured providers while retaining their targets, evidence, and model provenance. Deployment profiles connect the chosen model, authentication, and tool interface.
The original September 21 fleet recordings use Astra through an authenticated remote connection. The expanded biology recording uses a locally hosted open-weight 27B model on NCShare, with four concurrent model calls shared by the agent queue. The native sessions run in separate CPU allocations.
Our evaluation focuses on useful research results, faithful reconstruction of prior work, correct handling of evidence changes, and the effort required to inspect outputs. The evaluation record brings together benchmark results, captured workloads, reproducible methods, and system checks.
Programmable context in a persistent REPL
The model-facing execution surface is IPython: a persistent Python REPL. Variables, imports, functions, intermediate results, and admitted agent handles remain available across turns. The model can write a context program that searches a corpus, inspects exact records, computes over selected material, and returns a focused result to its language context.
Model writes Python → host executes a kernel cell → retained objects + selected output
Next turn → reuse variables, call tools, inspect another source, or delegate a subproblem
from fractions import Fraction
from mantis_forge import ctx
# retrieve a bounded source selection and its resource map
sources = await ctx.search("boundary cases", limit=4)
source_map = await ctx.cartography()
# ordinary working objects remain in this kernel
weights = [Fraction(1, 3), Fraction(2, 3)]
mass = sum(weights)
# a later turn can reuse the objects
assert mass == 1
print({"total": str(mass), "sources": len(sources)})
The runtime's context bridge also provides inspection of exact resource revisions, structural diffs, bounded dataset slices, filtering, provenance-linked derivation, collections, and pinning. These are function calls over external research state. The model decides what to materialize, transform, and show in the next prompt.
| Mechanism | Role in the research process | State carried forward |
|---|---|---|
| IPython namespace | Compose tools, execute code, inspect data, and retain intermediate objects. | Working variables, functions, results, and agent handles. |
| SOTA Context Map | An orientation cache for long-context work: locate relevant resources before inspecting them in detail. | A compact, reusable map of the workspace and its resource structure. |
| Knowledge Base / Knowledge Graph / Ontology | Organize knowledge and trace relationships across sources, concepts, and claims. | Source-linked knowledge structures and typed relationships; inferred links remain discovery aids. |
| Exact resource handles | Address a particular object or revision instead of relying on a prose recollection. | Versioned identity and provenance relationships. |
| Research-ledger context | Retrieve the dependency closure around a claim, obligation, or route. | Target-bound claims, evidence, refutations, computations, and relevant open work. |
Compaction and kernel state have separate lifecycles. Conversation summaries preserve access to the live namespace and retained worker registry. Durable resource records, saved artifacts, and campaign snapshots support reconstruction when a kernel restarts.
Recursive teams through function calls
Delegation uses the same programmable environment as ordinary research. agents.spawn admits a child and returns a handle containing its identity, name, session directory, and model. The child has its own context, kernel, and transcript; the parent can continue useful work before collecting a result.
from mantis_forge import agents
import agent_message
worker = await agents.spawn(
"Search for a counterexample under the locked assumptions.",
name="boundary-check",
)
# follow up through the host-owned message router
await agent_message.send(
"Check the zero case before the general construction.",
receiver_role="child",
receiver_name=worker.name,
)
# the parent can perform other work before waiting
children = await agents.list()
completed = await agents.wait(worker)
The message bridge addresses a parent, a named child, or a named sibling; a separate broadcast form targets the permitted agent family. The host owns routing, sender identity, and delivery receipts. Retained workers can be revisited through later messages, and agents.delete removes a child from the retained registry. Admission, message delivery, and scientific completion are distinct events.
Locked target → route root → admitted children → further bounded delegation
Child messages + artifacts → bound root inspection → typed research record
A route records a durable research approach. A root session binds execution to its goal version, target hash, role, and assigned subject. The adaptive director uses the open frontier, existing ownership, activity observations, and certification debt to propose discovery, falsification, certification, incorporation, or recovery work. The model chooses research tactics inside that allocation.
Returned objects can include a precise lemma, a refuting witness, a source-backed observation, an executable calculation, or a statement of the unresolved step. Recursive execution makes those investigations concurrent; recording and reviewing their scientific meaning remains a separate operation.
Continual harness refinement
The runtime carries an editable layer of reusable behavior around each AI agent. It maintains four entry kinds: supplemental prompt notes, durable memories, executable skills, and subagent role specifications. A trajectory review can propose a small, evidence-backed change to that layer.
| Entry kind | What can be retained | Example revision |
|---|---|---|
| Prompt | Supplemental instructions for the research workflow. | Ask for explicit assumptions before interpreting a numerical observation. |
| Memory | A reusable observation from previous work. | Preserve a boundary obstruction and the conditions under which it applies. |
| Skill | A Python-callable procedure with its import, callable reference, arguments, and description. | Extend a computation procedure to compare an independent replay. |
| Subagent role | A reusable specification for delegated work. | Define a boundary reviewer that returns an exact witness or missing assumption. |
The state can be read and inspected; edit proposals support create, update, and delete. Every entry carries identity, scope, timestamps, version, and provenance. Local entries are combined with global state for the current session, while automatic trajectory refinement is directed toward local changes. Global promotion is explicit.
from mantis_forge import harness
await harness.refine(
"Use the observed boundary failure to improve the local "
"reviewer role. Retain the exact scope of the observation."
)
status = await harness.status()
Trajectory → review whether a change is justified → proposed edits
Structure + conflict checks → commit at a turn boundary → revised next turn
Recorded before / after state → inspect history or roll back
Planning is separated from application. At commit time, the runtime compares the current entry with the baseline captured before planning and rejects conflicting edits. Structural validation checks the edit action and kind, required fields, and the callable description for skills. The base system prompt is protected.
Refinement results retain the applied edits, before-and-after entries, checksums, scope, and rollback identity. Session-local history and explicit global history support inspection and reversal. Refinement operates on the agent’s prompts, memory, skills, and roles. The evidence ledger continues to decide which claims and reviews belong to the research record.
Catenation’s RLM management combines a persistent programmable context with recursive agent execution and inspectable harness state.
Source-separated research scouting
The accompanying mathematics, physics, and computational-biology scouting workflows begin with literature evidence. Corpus builders retrieve Crossref and OpenAlex metadata, retain the raw provider responses, and reconcile records while preserving coverage and provenance. Source data and research synthesis remain distinguishable throughout the funnel.
Provider snapshots → reconciled literature corpus → candidate questions
Closest-work and freshness checks → rapid kill tests → research dossiers
Selected direction → fresh source audit → locked campaign target
| Stage | Retained material | Research decision |
|---|---|---|
| Corpus construction | Raw provider responses, reconciled records, source and coverage ledgers. | Which literature does the collection cover, and where are the gaps? |
| Candidate generation | A named object, source gap, concrete target, and candidate scorecard. | Is there a sufficiently precise question to investigate? |
| Freshness and kill tests | Closest prior work, novelty searches, boundary tests, and rejected directions. | Does a known result or rapid counterexample eliminate this approach? |
| Dossier preparation | Primary sources, distinct attacks, proof dependencies, stopping conditions, and a first bounded task. | What should the first AI agents attempt, and what would make them stop? |
A rejected direction remains useful: its source collision, obstruction, or failed test explains why later work should start elsewhere. A surviving dossier provides a concrete handoff rather than a free-form suggestion to “research this topic.” Each campaign begins with a current source audit and a precise target lock.
The dynamic dependency graph
The SQLite ledger records targets, routes, claims, obligations, artifacts, computations, reviews, checkpoints, and events. Its dependency graph keeps the relationships between research objects explicit. A promising calculation or failed construction can be retained as an intermediate artifact before there is a complete argument.
Target amendments create a new version and hash. Claims carry both an evidence grade and current validity, so a historically exact result can later be retracted or invalidated while retaining its original provenance. Typed DEPENDS_ON and refutation relationships determine which later claims must be reconsidered. Invalidated supporting claims reopen affected obligations.
| Object | What it records |
|---|---|
| Claim | A precise statement, evidence grade, declared assumptions, validity, and target identity. |
| Obligation | A specific requirement or missing step that the research must address. |
| Artifact | Immutable source bytes, content hash, role, import provenance, and verification assertions. |
| Computation | A typed input, execution identity, backend, result bundle, and replay record. |
| Review | An attributed verdict about a specified subject and the evidence actually cited. |
| Candidate | One exact goal claim and its target-connected dependency and evidence closure. |
A strict obligation discharge requires a valid exact claim and a matching PROVES link. Candidate acceptance checks obligation closure, a unique goal root, current target binding, exact evidence grades, and artifact authority. Completion additionally requires passing final reviews bound to that candidate, assigned to distinct sessions that did not produce it.
Artifact verification can also be withdrawn. Current evidence authority is checked again at candidate admission and completion, and relevant withdrawal history changes the candidate hash so an old review cannot silently authorize a changed candidate. Each result follows the review standard for its domain: proof, computational reconstruction, or experiment.
The resulting record supports outputs at every scale: a useful reduction, an exact counterexample, a computational certificate, an audited partial result, or a complete proof assembled from the work. Catenation’s research campaign proved Nivat’s conjecture, open since 1997, and the proof has been independently verified by researchers in symbolic dynamics. Explore the Nivat case study.
Compute: NCShare, MIT ORCD, and exact replay
Catenation’s compute tooling spans NCShare and MIT ORCD (Engaging). Slurm supplies bounded allocations for research jobs; the biology cluster tools maintain a heartbeat registry of model endpoints, atomic campaign checkpoints, and resumable work. Durable state is kept separate from replaceable model weights and transient compute.
Research task → Slurm allocation on NCShare / MIT ORCD
Live endpoint registry → bounded execution → durable artifacts → independent review
The ORCD mathematics offload path accepts target-bound research and falsification tasks. Returned artifacts retain task hashes and target identity, then pass through independent revalidation before incorporation into the research ledger.
The original fleet recordings ran isolated native sessions and Python kernels on NCShare CPU allocations with authenticated Astra calls. The expanded biology teams use a local open-weight 27B model, served from shared H200-backed NCShare hardware, through a bounded four-call queue. Both preserve the actual model identity and recorded session state. MIT ORCD is an available compute workflow; these particular recordings were made on NCShare.
Scientific tools and inspectable intermediate artifacts
Python functions and callable skills provide a common execution surface for file inspection, literature retrieval, data transformations, and scientific code. The supplied runtime includes arXiv and bioRxiv retrieval, PubMed tooling, H5AD source inspection, and computational-biology skills. Each campaign configures its packages, services, and data for the research question. Each tool return can be kept as a source record, script, calculation, or intermediate artifact for later inspection.
Flexible IPython exploration is distinct from proof-critical computation. The typed broker accepts bounded operations over exact inputs, including rational expression trees, polynomial identities, factorization, characteristic polynomials, Gröbner bases, and specialized random-walk calculations.
Typed request → primary backend + independent replay → canonical result comparison
Hash-verified bundle → provenance collection → interpreted claim → review
Python/SymPy and Wolfram workers can run the same semantic request. The bundle records engine versions, exact inputs and outputs, worker scripts, replay comparison, timing, and file hashes. A semantic hash identifies the mathematical request separately from its execution metadata.
The computation record links each calculation to its interpreted claim and review, making its relationship to the research target explicit.
Formal proof tools
Optional Lean packaging and smoke-check support let teams use formal proof assistants as external checkers. The typed computation broker handles Python and Wolfram operations. Claim-specific review connects checker outputs and computational evidence to the argument they support.
Durable execution and recovery
The Rust interface uses Tokio for asynchronous coordination and Ratatui/Crossterm for the terminal. A daemon owns resident sessions and provider calls. The viewer loads the selected root or child transcript rather than scanning all transcripts on every refresh.
Persistent goals, bounded autonomous continuations, scheduled prompts, heartbeats, agent messages, and compaction support long-running work. Resident research sessions can continue after the terminal closes. A replacement agent can reconstruct the current target and evidence from the ledger.
The recovery guardian uses consistent SQLite backups, integrity checks, complete transcript capture, content-addressed workspace snapshots, and artifact hash verification. Health reports track runtime operations, while the evidence ledger tracks scientific claims and reviews.
The programmable kernel runs with its worker’s operating-system permissions. Each deployment configures the host environment and access to its research tools and data.
Mathematics: the Kunz pair-index campaign
The current capture focuses on a standalone lattice-combinatorics question: under the precise MAX, genuine hidden-contact, and all-five full-complement fixedness hypotheses for an actual strict cyclic staircase, must the selected pair normals generate the full relation lattice?
The capture explores independent approaches to the standalone pair-index question, under the exact hypotheses recorded in its campaign brief.
Recorded sessions, runtime counts, and thread selections let readers follow the captured work. Mathematical results proceed through reconstruction and review in the research ledger.
Computational biology
The local portfolio contains 30 compiled campaign specifications. The gallery opens actual terminal captures for individual campaigns. Launch audits establish the estimand, study design, source requirements, and validation criteria for each campaign.
The biology harness adds identification-specific grades and four central failure modes: triviality, vacuity, leakage, and post-hoc drift. It can check exact identified sets, LP certificates, sign-robustness radii, contamination bounds, monotone-link invariance, holdout leakage, vacuity, and structured permutation nulls.
The biology ledger connects supporting claims to independent reviews and grades results by their supporting evidence. It distinguishes held-out replication, symbolic identities, and proposed mechanisms so readers can inspect the basis of each finding.
Product directions
| Direction | Foundation | Application |
|---|---|---|
| Domain-specific harnesses | Typed tools, evidence objects, failure modes, and stopping rules; mathematics and biology provide current implementations. | Domain-specific research workflows. |
| Managed research and insight products | Inspectable artifacts, reproducible computation, source provenance, and negative knowledge. | Research deliverables with customer-specific acceptance standards. |
| Private orchestration platform | Programmable context, recursive workers, messages, state, and recovery. | Long-running investigations in a team’s own environment. |
| Human and agent collaboration | Durable object identities, event history, review subjects, and shared research state. | Review and reuse of shared research records. |
Foundation-model improvements strengthen the AI agents while Catenation preserves the working environment, evidence, and continuity around them.
The Mantis integration
Mantis Discovery pilots a focused Catenation integration with Mantis in the MIT CSAIL ecosystem. Explore Mantis Discovery ↗
Source and capture provenance
Implementation descriptions were checked against the current mathematics and biology source trees, the supplied Mantis Forge 0.7.1 runnable JavaScript/Python implementation, and the preserved recording evidence.
| Implementation area | Source checked |
|---|---|
| Programmable context and agents | Runtime Python bridge mantis_forge/__init__.py; IPython execution and kernel lifecycle code; agent_message/__init__.py. |
| Continual harness | core/refinement/refinement.js, its declared types, and serialized refinement handling in core/agent-session.js. |
| Provider integration | core/auth-storage.js, core/model-registry.js, and the Math Forge profile and provider installers. |
| Research state and computation | Rust ledger.rs, model.rs, broker.rs, director.rs, and the registered research tools. |
| Scouting | The q1_journal_scout, q1_phys_journal_scout, and q1_bio_journal_scout corpus builders, source ledgers, candidate funnels, and dossiers. |
Code examples use the runtime’s Python APIs. Recorded-run counts and tested-binary identity are documented in the evaluation record.
The research material draws on the Kunz campaign brief, the biology broker and ledger, and the compiled campaign specifications. Public captures connect these mechanisms to actual research sessions.