The real-time conversation surface — a partner site connects over WebSocket and streams an agent's reply as it is produced.
How an end user actually chats with your agents.
Live chat is the real-time surface where a consumer talks to your agents. A partner's browser application opens a secure WebSocket connection to KeenAgents and runs an agent; the agent's reply streams back token by token as it is produced, so your UI can render the answer as it forms instead of waiting for a finished block. It is a live connection: a single socket carries the whole conversation, message after message.
The chat connection is authenticated the same way every consumer call is — with the consumer's short-lived access_token, from an origin your organization has allow-listed. Everything on the connection is tenant-scoped: a socket opened for one tenant can only ever reach that tenant's agents and data.
wss:// connection.The connection outlives the token — so no message rides on yesterday's proof.
A live socket can outlast logins, policy changes and credential rotations, so KeenAgents re-verifies the access token on every message, not once at connect. On each message the requested space must be both in the consumer's own grant and currently allowed by the tenant's contract — revoke a space and it stops working immediately — and the tenant is resolved from the verified credentials, overwriting anything the client sends. A client can never choose its own tenant partition.
E3002 but leaves the socket open — refresh the token and retry on the same connection. The connection outlives the token by design.E3101 on every outstanding token for that tenant; re-login is the recovery.Keen Agents 2026
Documentation
Release 15