NiadraAgent (ou o mixin NiadraMemory na sua própria classe Agent); em Node, NiadraAgent e NiadraMemory em @niadra/sdk/livekit.
Instalar
@niadra/sdk 0.3.0. Essa versão está pronta no ramo main do repositório e chega ao npm quando for publicada; até lá, o pacote do npm é o 0.1.1, sem os subcaminhos das integrações.
As cinco primitivas
conversation_for(niadra, participant, room=...) abre a conversa com o número SIP como sujeito e o id da ligação (ou o nome da sala) como conversation_id; em Node, sipSubject() e sipConversationId() fazem o mesmo.
Exemplo mínimo
examples/livekit_agent.py e examples/livekit.ts nos repositórios dos SDKs. Rode com NIADRA_API_KEY e as credenciais do LiveKit; para testar sem a nuvem da Niadra, niadra-mock e NIADRA_BASE_URL=http://127.0.0.1:8765.
Memória do agente
Comagent_memory=True (ou {"write": True, "max_tokens": 300, "tags": [...]}), as notas do próprio agente vão logo antes do contexto do cliente, na mesma mensagem de sistema, e search_agent_memory (e remember, com write) entram nas ferramentas. Veja Memória do agente.
Limites
- Nada aqui derruba um turno: um contexto que não chega em 150 ms fica de fora, e uma falha ao registrar vai para o log, sem conteúdo.
- O atestado STIR/SHAKEN não vem nos atributos
sip.*do LiveKit; sem o mapeamento do cabeçalho, a leitura sai em V0 e traz só o que a política libera nesse nível. - Em Python, os extras
livekiteopenai-agentsfixam versões incompatíveis de uma dependência comum; instale um por ambiente. - Testado contra
livekit-agents1.8.3 e@livekit/agents1.9.0, com LLM, STT e TTS substituídos por fakes e a Niadra no emulador, na CI de cada SDK.
Próximos passos
Agentes de voz
contexto antes do alô, atestado de rede e transbordo.
Pipecat
o mesmo desenho, como um processador de frames.

