> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Gateway Runtime Seams • AI Agent SDK

> GatewayRuntimeSeams: The gateway reliability seams handed to a channel adapter at build time.

# GatewayRuntimeSeams

> Defined in the [**protocols**](../modules/protocols) module.

<Badge color="blue">AI Agent</Badge>

The gateway reliability seams handed to a channel adapter at build time.

A single, typed carrier for the four runtime seams the gateway injects so
an adapter wires them up in one place instead of via four duck-typed
private-attribute splices:

Attributes:
identity\_resolver: Cross-platform identity resolver; unifies the same
human across platforms onto one session key.
identity\_canonicalizer: Identity-canonicalization seam (Issue #4661) —
an :class:`IdentityCanonicalizerProtocol`
(`canonicalize(platform, raw_user_id) -&gt; str`) applied *before*
the resolver, e.g. an adapter itself (see
:meth:`BasePlatformAdapter.canonicalize`). Stabilises a volatile
platform id (WhatsApp JID→LID, a number↔UUID alias flip) so the same
human keeps one session instead of silently forking.
delivery\_router: Backing router for the built-in `send_message` tool,
so an agent turn can proactively reach the user mid-task.
admission\_gate: Gateway-wide admission control (concurrency ceiling /
fair queue / backpressure) applied to inbound runs.
turn\_lock\_map: Shared per-turn lock map for cross-platform turn
serialisation on the resolved session id.

A seam left `None` means the gateway has nothing to inject for it and the
adapter should keep whatever it already has.

## Properties

<ResponseField name="identity_resolver" type="Optional">
  No description available.
</ResponseField>

<ResponseField name="identity_canonicalizer" type="Optional">
  No description available.
</ResponseField>

<ResponseField name="delivery_router" type="Optional">
  No description available.
</ResponseField>

<ResponseField name="admission_gate" type="Optional">
  No description available.
</ResponseField>

<ResponseField name="turn_lock_map" type="Optional">
  No description available.
</ResponseField>

## Source

<Card title="View on GitHub" icon="github" href="https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/bots/protocols.py#L329">
  `praisonaiagents/bots/protocols.py` at line 329
</Card>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Gateway Feature" icon="tower-broadcast" href="/docs/docs/features/gateway" />
</CardGroup>
