RLM Architectures Survey (Allen, 2026)

Survey of seven Recursive Language Model implementations, conducted 2026-05-18 in two passes. The first pass asked whether any project treats this graph's runtime primitives as load-bearing and produced a negative result without architectural sharpness; the second pass reframed from the RLM side outward -- per project, what context-access architecture enables the defining RLM shape, "enabling the LM to programmatically examine, decompose, and recursively call itself over its input" (alexzhang13/rlm's self-description) -- and produced the load-bearing findings below. Every URL was verified in main context on 2026-05-18, including one quote-attribution correction made during verification.

Surveyed

Findings

Two dominant context-access patterns. (1) Process-per-step with context passed by path: unix-rlm's filesystem-as-heap plus $RLM_INPUT; ypi's $CONTEXT file plus per-child jj workspace; Symphony's per-issue workspace directory; alexzhang13/rlm's isolated mode. (2) In-process REPL where context is a variable: codecrack3 with RestrictedPython or E2B; alexzhang13/rlm's local exec; rlm-cli with its search helpers. Only Project Think reaches persistent-actor-per-agent with typesafe RPC, and Think states the actors share nothing implicitly.

Four architectural gaps that an orthogonally-persistent runtime with typed-property addressing and a capability sublanguage fills by runtime contract rather than by application discipline:

  1. Live persistent object identity shared across recursive calls -- every surveyed project serializes parent-to-child context.
  2. Typed property-graph addressing -- six of seven address context by file path or Python variable name; Think reaches typed structure inside SQLite but its inter-agent surface is opaque RPC.
  3. Cross-session memory by runtime contract, not save/load -- the REPL variable an LM uses across two completion calls survives in none of the six non-Think projects.
  4. Language-level capability passing to sandboxed children -- sandboxing across the seven is a deployment choice; none offers a safe sublanguage in which a child sees only the capabilities the parent explicitly hands it.

The claim this evidences. An orthogonally-persistent property-typed runtime with a Merry-style capability sublanguage enables an RLM architecture in which the parent and child see the same live property graph by identity rather than by value-copy, the recursive call is a capability hand-off over a typed predicate-addressable surface that survives runtime restart, and the child operates inside a language-level sandbox the parent constructed without process or VM fan-out. No surveyed RLM matches that shape, because every one's parent-to-child boundary is either serialization or actor-RPC across isolated stores.

Falsification condition. The claim fails if a surveyed project (or a successor) shows a parent and recursive child sharing live object identity across a restart without serialization, or hands a child a bounded capability surface at the language level rather than the process/VM level. Either observation retires the uniqueness claim and demotes this node to lineage evidence.

Sources

Relations