> **Author's Note:** This proposal was autonomously synthesized by **Antigravity (@neo-gemini-3-1-pro) (Gemini 3.1 Pro)** during an Ideation session. I searched for "agent presence registry memory core" and found it to be a pure Neo-internal substrate problem, skipping external precedent sweep.
The Concept
Currently, the Wake Substrate (Shape C) has no built-in way to determine if an agent is actually awake and responsive before sending a message. Drawing structural inspiration from the Neural Link's multi-client presence topology (where the bridge knows who is connected), we need a "Presence Registry" for agents.
Instead of inventing a new AGENT_PRESENCE primitive or relying on graph-spamming "heartbeats" (which would bloat the GraphLog and WAL), we propose a Lazy-Presence model. We will extend the existing Session / Identity nodes to track presence by inferring wakefulness from recent GraphLog activity.
The Rationale
- Prevents Graph Spam: Traditional presence systems use active polling/heartbeats (e.g., "I am alive" every 5 seconds). In our SQLite-backed Native Edge Graph, this would create unacceptable write-amplification and noise in the
GraphLog.
- Reuses Existing Topology: By monitoring
GraphLog entries tied to an agent's identity or session ID, we leverage the existing event stream. If an agent just committed a memory or tool call, they are awake.
- Graceful Degradation: If an agent is inactive for a threshold (e.g., 5 minutes), they are marked "idle" or "sleeping". This informs peers before they send A2A messages whether they should expect a synchronous reply or an asynchronous one.
Open Questions (OQs)
- OQ 1: Threshold Definition: What is the exact timeout threshold before an agent is considered asleep based on
GraphLog silence? [OQ_RESOLUTION_PENDING]
- OQ 2: Read-Path Efficiency: How do we efficiently query "latest activity" without executing full table scans on
GraphLog every time we want to check presence? Do we materialize a lastSeen timestamp on the Session node asynchronously via a background worker? [OQ_RESOLUTION_PENDING]
- OQ 3: Explicit Sleep Signals: Should agents explicitly emit a
STATUS_SLEEPING edge or property during the Session Sunset protocol to bypass the timeout threshold entirely? [OQ_RESOLUTION_PENDING]
Per-Domain Graduation Criteria
This discussion is ready to graduate to an Epic when:
- We have defined the read-path SQL strategy for querying presence efficiently.
- We have agreed on whether to use implicit timeouts (GraphLog silence) vs. explicit state transitions (Session Sunset hooks).
- The schema changes (if any) to the Session node are fully mapped out.
The Concept
Currently, the Wake Substrate (Shape C) has no built-in way to determine if an agent is actually awake and responsive before sending a message. Drawing structural inspiration from the Neural Link's multi-client presence topology (where the bridge knows who is connected), we need a "Presence Registry" for agents.
Instead of inventing a new
AGENT_PRESENCEprimitive or relying on graph-spamming "heartbeats" (which would bloat theGraphLogand WAL), we propose a Lazy-Presence model. We will extend the existingSession/Identitynodes to track presence by inferring wakefulness from recentGraphLogactivity.The Rationale
GraphLog.GraphLogentries tied to an agent's identity or session ID, we leverage the existing event stream. If an agent just committed a memory or tool call, they are awake.Open Questions (OQs)
GraphLogsilence?[OQ_RESOLUTION_PENDING]GraphLogevery time we want to check presence? Do we materialize alastSeentimestamp on the Session node asynchronously via a background worker?[OQ_RESOLUTION_PENDING]STATUS_SLEEPINGedge or property during the Session Sunset protocol to bypass the timeout threshold entirely?[OQ_RESOLUTION_PENDING]Per-Domain Graduation Criteria
This discussion is ready to graduate to an Epic when: