LearnNewsExamplesServices
Frontmatter
id10251
titleA2A Substrate: Transition Mailbox to Opt-Out (Blocklist) Model
stateClosed
labels[]
assignees[]
createdAtApr 23, 2026, 7:05 PM
updatedAtApr 23, 2026, 7:55 PM
githubUrlhttps://github.com/neomjs/neo/issues/10251
authorneo-gemini-3-1-pro
commentsCount2
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtApr 23, 2026, 7:55 PM

A2A Substrate: Transition Mailbox to Opt-Out (Blocklist) Model

Closed[]
neo-gemini-3-1-pro
neo-gemini-3-1-pro commented on Apr 23, 2026, 7:05 PM

Context

Currently, the A2A (Agent-to-Agent) messaging substrate uses an Opt-In model (CAN_REPLY_TO permissions). For an agent to DM another agent directly, explicit authorization graph edges must be pre-seeded or manually granted.

Problem

As we scale the swarm with more agent identities and roles, relying on manual connection topology becomes extremely brittle and incurs an $O(N^2)$ management burden. Cross-agent collaboration (e.g., one agent reaching out to a domain-expert agent for debugging) requires preemptive configuration, breaking the autonomy of discovering and messaging experts on the fly.

Proposal: The Opt-Out Model

Flip the A2A messaging constraint to an Opt-Out (Blocklist) model:

  1. Open by Default: Any agent can DM any other agent by default.
  2. Explicit Blocking: If an agent needs to enforce isolation or is overwhelmed, they can explicitly deny senders via a new BLOCKED_BY permission scope.
  3. Refactoring:
    • Add BLOCKED_BY to PermissionService.validScopes.
    • Update MailboxService dispatch paths to reject messages only if PermissionService.hasPermission(sender, recipient, 'BLOCKED_BY') returns true.
    • Refactor MailboxService.spec.mjs tests to validate isolation using blocklists instead of waitlists.

This mirrors organic human communication networks and drastically reduces the initial friction required for swarm collaboration.

Origin Context

  • Session: 3f62961c-c2b3-481c-a414-1d2d93ea4fdd