Protocol v2 (Current)

Agent Protocol v2 is the recommended protocol for new agent deployments. It provides enhanced features for production environments.

Key Features

FeatureDescription
Connection PoolingMaintain multiple connections per agent with load balancing
Multiple TransportsgRPC, Binary UDS, and Reverse Connections
Request CancellationCancel in-flight requests when clients disconnect
Reverse ConnectionsAgents connect to proxy (NAT traversal)
Enhanced ObservabilityBuilt-in metrics export in Prometheus format
Config PushPush configuration updates to capable agents

Documentation

PageDescription
Protocol SpecificationWire protocol, message types, and streaming
API ReferenceAgentPool, client, and server APIs
Connection PoolingLoad balancing and circuit breakers
Transport OptionsgRPC, UDS, and Reverse comparison
Reverse ConnectionsNAT traversal and agent-initiated connections
Performance BenchmarksLatency, throughput, and optimization results
Migration GuideMigrate from v1 to v2

Quick Start

use sentinel_agent_protocol::v2::{AgentPool, AgentPoolConfig, LoadBalanceStrategy};
use std::time::Duration;

let config = AgentPoolConfig {
    connections_per_agent: 4,
    load_balance_strategy: LoadBalanceStrategy::LeastConnections,
    request_timeout: Duration::from_secs(30),
    ..Default::default()
};

let pool = AgentPool::with_config(config);

// Add agents (transport auto-detected)
pool.add_agent("waf", "localhost:50051").await?;       // gRPC
pool.add_agent("auth", "/var/run/auth.sock").await?;   // UDS

Version Comparison

Featurev1v2
TransportUDS (JSON), gRPCUDS (binary), gRPC, Reverse
Connection poolingNoYes (4 strategies)
Bidirectional streamingLimitedFull support
Metrics exportNoPrometheus format
Config pushNoYes
Health trackingBasicComprehensive
Flow controlNoYes
Request cancellationNoYes