NiadraMemory embrulha a memória de chat que o seu agente já usa (um ChatMemoryBuffer, por padrão) e coloca o contexto a cada leitura; history_tools() entrega o kit como ferramentas do LlamaIndex. Em TypeScript, NiadraMemory é uma Memory do LlamaIndex.TS e niadraTools() dá o kit como FunctionTools.
Instalar
@niadra/sdk 0.3.0, pronto no ramo main e no npm quando for publicado; até lá, o pacote do npm é o 0.1.1.
As cinco primitivas
Exemplo mínimo
examples/llamaindex_agent.py.
Em TypeScript
NiadraMemory é uma Memory do LlamaIndex.TS (recebe as mesmas mensagens e opções de createMemory()), então serve a agentes (agent({ memory }), multiAgent) e a chat engines. Em getLLM(), por onde toda chamada ao modelo passa, ela registra a mensagem mais nova do cliente uma vez e devolve uma cópia das mensagens com o contexto depois das mensagens de sistema iniciais e o turn_block no fim da última mensagem do usuário; o histórico guardado fica só com o que foi dito. add() registra a resposta final como turno do agente e um handOff entre agentes como transbordo. Para uma memória que você mesmo monta com outros blocos, NiadraMemoryBlock dá o mesmo contexto como bloco fixo (prioridade 0): um bloco só fica antes do histórico, então o turn_block segue o contexto na mesma mensagem, e as respostas não são registradas por esse caminho. niadraTools(convo) devolve FunctionTools com os esquemas JSON do kit, amarradas ao cliente.
Memória do agente
NiadraMemory(conversation, agent_memory=True) põe as notas do próprio agente antes do contexto do cliente, e history_tools(conversation, agent_memory=...) acrescenta as duas ferramentas. Veja Memória do agente.
Limites
- A forma (uma memória primária embrulhada, uma mensagem de sistema colocada no
get(), escritas repassadas noput()) segue aMem0Memoryda integração Mem0 do LlamaIndex (licença MIT); nenhum código foi copiado. A leitura é a da Niadra: um contexto fixado por conversa em vez de uma busca por mensagem. - Nada aqui derruba o run: sem contexto,
get()devolve só o seu histórico. - Testado contra
llama-index-core0.14.25 com o modelo substituído por um fake e a Niadra no emulador; em TypeScript, contra@llamaindex/core0.6.23 e@llamaindex/workflow1.1.25, com agentes reais sobre um LLM roteirizado.
Próximos passos
Navegação do histórico
as três ferramentas que o agente recebe.
O contexto e as views
o que entra no contexto e por quê.

