Memória para crews do CrewAI.
NiadraCrew entrega before_kickoff, que põe o contexto nos inputs da crew como niadra_context, after_kickoff, que registra a resposta final, e tools. A memória de curto prazo, de longo prazo e de entidades da crew continua do CrewAI; a Niadra é a memória da empresa sobre o cliente, compartilhada com todos os outros agentes.
A memória do CrewAI é da crew: o que os agentes dela viram e aprenderam, nos armazenamentos que ela mesma mantém. Ela serve à crew. Não serve ao agente de voz de outro fornecedor que vai atender a mesma cliente amanhã, nem ao agente de cobrança que age no ERP, e não recebe o que esses fizeram.
Com a Niadra, a crew recebe no kickoff o contexto que a empresa tem da cliente, pelo input niadra_context, que a descrição da tarefa ou o backstory do agente usa depois do seu texto. A resposta final da crew volta para a memória, e qualquer agente, de qualquer fornecedor, lê o que ela decidiu.
pip install 'niadra[crewai]' # crewai 1.15 or newer, below 2; Python 3.11 to 3.13"""A CrewAI crew whose task reads the customer's context."""
from crewai import Agent, Crew, Task
from niadra import Niadra, phone
from niadra.integrations.crewai import NiadraCrew
niadra = Niadra(channel="chat")
memory = NiadraCrew(niadra.conversation("thread-81", subject=phone("+5511912345678")))
support = Agent(role="Support", goal="Help the customer", backstory="You work for Acme.", tools=memory.tools)
answer = Task(
description="Answer the customer: {message}\n\nWhat the company knows:\n{niadra_context}",
expected_output="A short, specific answer.",
agent=support,
)
crew = Crew(
agents=[support],
tasks=[answer],
before_kickoff_callbacks=[memory.before_kickoff],
after_kickoff_callbacks=[memory.after_kickoff],
)
print(crew.kickoff(inputs={"message": "Where is my replacement lid?"}).raw)- Python
O mesmo código está em examples/crewai_crew.py nos repositórios dos SDKs, onde roda na CI contra os tipos reais do framework e o emulador da Niadra. Para testar sem a nuvem da Niadra, niadra-mock e NIADRA_BASE_URL=http://127.0.0.1:8765.
Como o adaptador se liga
As cinco primitivas de toda integração da Niadra, nos pontos de extensão deste framework.
- Contexto
- before_kickoff acrescenta niadra_context aos inputs da crew: as notas do agente (com agent_memory=), o contexto e o turn_block. Ponha {niadra_context} na descrição de uma tarefa ou no backstory de um agente, depois do seu texto.
- Turnos
- O input em message (ou message_key=) é o turno do cliente, registrado antes de a crew começar; a resposta final da crew é o turno do agente, registrado quando ela termina.
- Ferramentas
- tools: ferramentas do CrewAI cujo esquema de argumentos é o do kit, amarradas ao cliente.
- Verificação
- conversation.verify() antes do kickoff.
- Transbordo
- transferred_to_agent() e transferred_to_human() registram a transferência.
O que o agente recebe
O contexto é compilado quando a memória muda e servido pronto, sem modelo de IA na leitura. O que outro canal disse durante a conversa chega como delta, no fim do prompt.
- Quem é o cliente, pelo que a conversa já provou: o nível de verificação decide o que entra
- Fatos, pendências e promessas, com a data e o canal de origem
- O que outros agentes fizeram por dentro, confirmado pelo sistema de registro
- Padrões calculados por regra, com as evidências e o prazo
- As três ferramentas do histórico: buscar, linha do tempo e abrir um item, amarradas ao cliente no seu código
- Comprovante de cada leitura, encadeado por SHA-256
O que o adaptador não faz
- A memória da própria crew (curta, longa, de entidades) continua do CrewAI; a Niadra é a memória da empresa sobre o cliente, compartilhada com todos os outros agentes.
- Só Python 3.11 a 3.13: o armazenamento vetorial do CrewAI depende do onnxruntime, que não tem wheels para o 3.10. Os extras crewai, pipecat e openai-agents fixam versões incompatíveis de uma dependência comum: instale um por ambiente.
- Só a resposta final da crew é registrada como turno do agente, não cada passo.
- Testado contra crewai 1.15 com o modelo substituído por um fake e a Niadra no emulador.
Perguntas frequentes
Devo desligar a memória do CrewAI?
Não precisa. A memória da crew guarda o que os agentes dela aprenderam sobre as tarefas; a Niadra guarda o que a empresa sabe de cada cliente, de todos os canais. Uma complementa a outra, e a crew continua rodando como hoje.
Como o agente da crew acha o contexto?
Pelo input niadra_context, que o before_kickoff acrescenta. A descrição da tarefa diz {niadra_context} depois do seu texto, como qualquer input interpolado do CrewAI. As ferramentas do histórico vão em tools, para o agente consultar o que o contexto não responde.
Cada passo da crew vira um turno?
Não. Só a resposta final da crew é registrada como turno do agente, e o input em message como turno do cliente. É o que outros agentes precisam saber: o que a cliente pediu e o que a crew decidiu.
Preciso trocar de modelo, de prompt ou de fornecedor?
Não. O adaptador coloca o contexto depois das suas instruções e o delta no fim do prompt, nos pontos de extensão que o framework já tem. O seu modelo, o seu prompt e o seu fornecedor continuam os mesmos, e trocar qualquer um deles depois não apaga a memória.
Onde ficam os dados e quanto custa?
Os dados ficam numa região só, informada no contrato, cifrados com AES-256-GCM e chave exclusiva por empresa, protegida em HSM FIPS 140-3. O preço é por conversa ou tarefa em que um agente leu a memória: de US$ 2 a 3 a cada mil, conforme o volume, com leituras, buscas e eventos de sistema incluídos. A Niadra está abrindo para empresas por pedido, antes do lançamento.
Conte o que você está construindo.
E-mail corporativo e duas linhas sobre os seus agentes bastam. Quem responde é quem escreve o código, com uma proposta de acesso antecipado para o seu caso.
Prefere contar mais sobre a sua empresa? Use o formulário completo