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
examples/pipecat_bot.py.
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, 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
LLMContexteLLMContextFrame, o contexto universal do Pipecat desde a 1.9;OpenAILLMContexteLLMMessagesFramenão existem mais nomaindo Pipecat e não são tratados. - Só Python 3.11 ou mais novo, porque o Pipecat pede. Os extras
pipecatecrewaifixam 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-ai1.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.
