Skip to main content
NiadraMemoryProcessor é um FrameProcessor que fica entre aggregators.user() e o LLM. Em cada LLMContextFrame ele lê o contexto e o coloca no lugar certo; observe(aggregators) registra os turnos. Só em Python: o pipeline do Pipecat, onde a chamada ao modelo acontece, roda em Python; os pacotes JavaScript do Pipecat e do Daily são clientes de navegador, onde uma chave da Niadra nunca deve ir.

Instalar

As cinco primitivas

conversation_for_call(niadra, call_sid, caller) abre a conversa com o CallSid como id e o número do cliente como sujeito.

Exemplo mínimo

O mesmo código está em examples/pipecat_bot.py.

Memória do agente

Com agent_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, e history_tools(conversation, agent_memory=...) acrescenta search_agent_memory (e remember). Veja Memória do agente.

Limites

  • O processador sempre passa o frame adiante, mesmo quando a Niadra falha: o pipeline nunca para por causa da memória.
  • Usa LLMContext e LLMContextFrame, o contexto universal do Pipecat desde a 1.9; OpenAILLMContext e LLMMessagesFrame não existem mais no main do Pipecat e não são tratados.
  • Só Python 3.11 ou mais novo, porque o Pipecat pede. Os extras pipecat e crewai fixam versões incompatíveis de uma dependência comum; instale um por ambiente.
  • A forma do processador segue o serviço de memória Mem0 do próprio Pipecat (BSD 2-Clause, com atribuição no arquivo); a leitura é a da Niadra: um contexto fixado por conversa, não uma busca por mensagem.
  • Testado contra pipecat-ai 1.11.0 com um pipeline real, LLM falso e frames empurrados à mão, sem áudio e sem rede.

Próximos passos

Agentes de voz

contexto antes do alô, atestado de rede e transbordo.

Twilio

o webhook da ligação e o StirVerstat como prova.