Skip to content

Specification

This specification defines the authoritative protocol requirements for the Signal Gating Protocol (SGP): an executive-function layer for autonomous AI systems, expressed as four primitives — Signal, Gate, Channel, and Mesh.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC 2119] [RFC 8174] when, and only when, they appear in all capitals.

Draft

This specification is currently in draft status. The protocol surface is still moving and is subject to change.

Purpose and Goals

  1. Define the four protocol primitives (Signal, Gate, Channel, Mesh) and their composition rules.
  2. Describe signal schemas, lineage, and state transitions.
  3. Define gate algebra semantics and built-in gate behavior.
  4. Document channel transport, backpressure, and priority semantics.
  5. Specify mesh topology patterns for multi-agent coordination.

Terminology

TermDefinition
SignalA typed, immutable event with a payload, a schema identifier, and a lineage record.
GateA composable predicate that admits, drops, or shapes signals.
ChannelAn async transport carrying signals between producers and consumers, with backpressure.
MeshA directed graph of channels that coordinates multi-agent workflows.
LineageAn append-only record on each signal of the gates it has passed through.

Primitives

Signal

A Signal MUST carry a payload, a schema identifier, and a lineage record. The lineage record MUST NOT be mutable once the signal has been observed downstream. Implementations MAY attach additional metadata (timestamps, priority, source identity) but MUST preserve the original payload.

Gate

A Gate is a function that accepts a signal and produces a decision: admit, drop, or transform. Gates MUST be deterministic with respect to their inputs and internal state. The gate algebra is defined as:

  • chain(g1, g2, ..., gn) — sequential composition; a signal passes only if every gate admits it.
  • or(g1, g2) — a signal passes if at least one gate admits it.
  • and(g1, g2) — a signal passes only if both gates admit it.
  • invert(g) — a signal passes if g rejects it.

Built-in gates MUST include: filter, dedupe, ttl, throttle, batch, and circuit_break. Implementations MAY provide additional gates.

Channel

A Channel MUST provide async iteration semantics, MUST apply backpressure when downstream consumers cannot keep up, and MUST NOT silently drop signals except through an explicit gate. Implementations MAY offer a priority variant that admits higher-priority signals ahead of the queue.

Mesh

A Mesh is a directed graph of Channels. Standard patterns include scatter/gather, map/reduce, race, and branching. A Mesh MUST preserve signal lineage across nodes and SHOULD support partial-failure modes (e.g., continue-on-error for map/reduce branches).

Error Handling

  • Retry behavior and idempotency guarantees MUST be defined per gate.
  • Circuit-break state transitions MUST be observable to operators.
  • Mesh-level failure modes (fail-fast vs. continue-on-error) MUST be explicitly configured.

Security Considerations

  • Signals MAY be cryptographically signed by producers; verification semantics are implementation-defined in this draft.
  • Lineage records MUST NOT disclose payload contents that were redacted earlier in the pipeline.
  • Trust boundaries between producers, gates, channels, and consumers SHOULD be documented by each implementation.

Versioning

  • Version negotiation between producers and consumers.
  • Backwards-compatibility policy for the gate algebra.
  • Deprecation process for built-in gates.

Learn More

Released under open governance.