Skip to main content
Every node in your graph lives on a plane. Planes partition one graph by role, and they control what retrieval sees by default. This is how your canonical knowledge, an agent’s working memory, and retired history coexist without polluting each other.

The planes

PlaneWhat lives hereHow you reach it
SemanticYour canonical, active knowledge. The primary reasoning surface.The default. pb.search, pb.dq, and capture all work here.
MemoryAgent working memory. Invisible to general retrieval.pb.memory reads and writes it.
ArchivalRetired snapshots and decision trail. Out of the active surface, kept for history.pb.memory.archive moves memory here.
A fourth plane, meta, holds internal infrastructure (shape blueprints). It is hidden from retrieval and not something you write to.

How the SDK maps to planes

You rarely set a plane by hand; the verb you call puts data on the right one.
What you doPlane it lands on
pb.capture, pb.extractSemantic
pb.memory.remember, pb.memory.observeMemory
pb.memory.archiveArchival
pb.search, pb.dq.checkReads Semantic by default
pb.memory.recall, pb.memory.synthesizeReads Memory

Why it matters

Separation keeps your canonical graph clean. An agent’s scratch memory and your retired decisions do not show up when you search your knowledge, so retrieval stays sharp. But nothing is lost: each plane is reachable on purpose, through the verb built for it. You get a tidy reasoning surface and a full history at the same time. This is why pb.memory is its own surface rather than just more entities: memory lives on its own plane, so it is there when an agent recalls it and absent when you are reasoning over canonical knowledge.