Skip to content

Graph-driven lazy realization: spin up only what the agent can reach #235

@larstalian

Description

@larstalian

What this is

A mechanism to reach enterprise scale (#212) without paying to realize the whole estate at once: use the WorldGraph to decide what gets simulated, when.

Because the graph already encodes reachability — what the agent can see and reach from where it currently is — we don't need every service running. We spin up only the things close to the agent (by graph distance / reachability frontier), on demand, and tear down / leave cold what's out of reach. The agent experiences a world of hundreds-to-thousands of entities; the runtime only ever has a small live set.

Why it matters

cyber.webapp realizes one app.py per build (packs/cyber_webapp/cyber_webapp/realize.py, WebappRuntime, only Backing.PROCESS wired). That does not survive 100–1000× the entity count (#212). Turning up priors doesn't help — you can't run 1000 services in a process. Graph-driven lazy realization is the load-bearing trick that makes enterprise scale tractable while keeping per-episode cost bounded.

Shape to work out (design-needed)

  • Reachability frontier from the graph. Given the agent's current position/credentials, compute the reachable set (and a near-frontier to pre-warm).
  • Tiered realization. hot (live process) for the reachable set, warm (synthetic/in-graph responses) for the frontier, cold (graph-only) for the rest. Promote on reach.
  • Where it lives. Pack concern, core concern, or a shared runtime primitive? The Backing enum (packages/openrange-pack-sdk/.../_types.py) and Pack.realize(graph, backing) seam are the natural hook.
  • Determinism / admission. Admission verifies an oracle path today; lazy realization must not change verifier outcomes vs. a fully-realized world.

Relationship to other work

Acceptance

A design doc / ADR on the reachability model + tier transitions + admission-equivalence guarantee, plus an issue tree for implementation. No code before the design lands.

Metadata

Metadata

Assignees

No one assigned

    Labels

    coreCore library / runtime / admissiondesign-neededNeeds a design pass before codepack-cyberCyber pack workresearchExploratory / no near-term planroadmapTracked on the public roadmap

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions