Skip to main content
The LiveKit Agents adapter reads the context before each model call, records every final utterance as a turn, hands over the history tools bound to the caller, records the carrier’s attestation and the handoff. In Python, NiadraAgent (or the NiadraMemory mixin on your own Agent class); in Node, NiadraAgent and NiadraMemory from @niadra/sdk/livekit.

Install

The TypeScript integration ships with @niadra/sdk 0.3.0. That version is ready on the repository’s main branch and reaches npm when it is published; until then the npm package is 0.1.1, without the integration subpaths.

The five primitives

conversation_for(niadra, participant, room=...) opens the conversation with the SIP number as subject and the call id (or the room name) as conversation_id; in Node, sipSubject() and sipConversationId() do the same.

Minimal example

The same code is in examples/livekit_agent.py and examples/livekit.ts in the SDK repositories. Run it with NIADRA_API_KEY and your LiveKit credentials; to try it without Niadra’s cloud, start niadra-mock and set NIADRA_BASE_URL=http://127.0.0.1:8765.

Agent memory

With agent_memory=True (or {"write": True, "max_tokens": 300, "tags": [...]}), the agent’s own notes go right before the customer’s context, in the same system message, and search_agent_memory (and remember, with write) join the tools. See Agent memory.

Limits

  • Nothing here fails a turn: a context that does not arrive within 150 ms is left out, and a failure to record is logged without content.
  • The STIR/SHAKEN attestation is not among LiveKit’s sip.* attributes; without the header mapping, the read is at V0 and carries only what the policy releases at that level.
  • In Python, the livekit and openai-agents extras pin incompatible versions of a shared dependency; install one per environment.
  • Tested against livekit-agents 1.8.3 and @livekit/agents 1.9.0, with the LLM, STT and TTS replaced by fakes and Niadra on the emulator, in each SDK’s CI.

Next steps

Voice agents

context before hello, network attestation and handoff.

Pipecat

the same design, as one frame processor.