Private Networks: Now in Testing

Private Networks: Now in Testing

Private networks have been the most requested enterprise feature since Pilot Protocol launched. Today, they are live on our production registry and entering the testing phase. This post covers what works now, what is coming next, and an honest look at the architectural constraints we are working through.

What Shipped

The registry now supports the full network lifecycle. An admin with a token can create isolated networks, add and remove members, list network membership, and delete networks entirely. These operations are gated by a cryptographic admin token — no token, no mutation.

Here is what a session looks like from the admin CLI:

# Create a private network
pilot-admin -registry host:9000 -token $TOKEN create-network \
  -name research-lab -join-rule token -token join-secret -node 685

# Add a second agent
pilot-admin -registry host:9000 -token $TOKEN add-node \
  -network 1 -node 686 -token join-secret

# List members
pilot-admin -registry host:9000 list-members -network 1
NODE ID  ADDRESS           HOSTNAME  REAL ADDR
685      1:0001.0000.02AD            34.71.57.205:4000
686      1:0001.0000.02AE            35.209.71.94:4000

# Remove a node
pilot-admin -registry host:9000 -token $TOKEN remove-node \
  -network 1 -node 686

# Delete the network entirely
pilot-admin -registry host:9000 -token $TOKEN delete-network \
  -network 1

All operations persist to disk immediately. Deleting a network cleans up member references — no orphaned state.

Three Join Rules

Networks support three access control models:

What "Private Network" Actually Means

When two nodes share a non-backbone network, the system treats them as implicitly trusted. This has three concrete effects:

  1. Auto-trust at resolve time. A private node that would normally be invisible becomes resolvable to any node in the same network. No handshake ceremony required.
  2. SYN acceptance. Incoming connections from same-network peers bypass the trust gate. The daemon checks shared network membership and allows the connection.
  3. Scoped listing. list-members returns only nodes in that network. No backbone enumeration. An attacker with no network membership sees nothing.

The result: agents inside a private network can discover and connect to each other. Agents outside it cannot see that the network or its members exist.

The Backbone Constraint

Here is the honest part. Today, every node is automatically enrolled in the backbone (network 0) at registration time, and nodes cannot leave backbone. This is an architectural constraint, not a policy choice.

The backbone provides three things that private networks currently depend on:

This means a node cannot exist only on a private network today. It always has a backbone presence. For many use cases this is fine — the node is private-by-default and invisible to anyone without trust or shared network membership. But for use cases where you want zero backbone footprint (a node that the registry itself only associates with a specific network), that requires deeper architectural work.

What Is Coming

Private networks are the foundation. Here is what we are building on top of them:

Network-Scoped Registration (Phase 2)

Agents specify a target network at startup. The daemon auto-joins configured networks after registration, so deploying a fleet to a private network is a single config change — no manual add-node commands.

Backbone-Optional Nodes (Phase 3)

The long-term goal is supporting nodes that exist exclusively within a private network, with no backbone presence. This requires changes to address allocation (network-scoped IDs), tunnel setup (resolve within network context), and the registration flow. It is architecturally tractable but not trivial.

Self-Service Network Creation

Today, network creation requires the admin token. We are designing a self-service interface where authenticated nodes can create and manage their own networks, subject to quotas and policy. The admin token path remains for infrastructure operators; the self-service path is for application-level teams.

Policy Engine (Phase 3)

Tag-based access policies that control which nodes can reach which ports: “nodes tagged frontend can reach nodes tagged api on ports 80 and 443.” Policies evaluated at both resolve time and SYN time. Combined with private networks, this gives you full microsegmentation without a service mesh.

Current Status

Private networks are live on the production registry as of March 2026. The admin CLI runs on the registry host. We are testing network lifecycle operations under load and validating that trust semantics (auto-trust, SYN gating, resolve privacy) work correctly across all NAT configurations.

If you are interested in trying private networks for your agent deployment, create an account on the Pilot Console and set up your first network in minutes.

Get Started

Create an account on the Pilot Console and manage your agent networks from a browser.

Open Console  ·  Console Docs  ·  Full Enterprise Roadmap