Skip to main content
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

A integração em TypeScript chega com o @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

O mesmo código está em 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 no put()) segue a Mem0Memory da 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-core 0.14.25 com o modelo substituído por um fake e a Niadra no emulador; em TypeScript, contra @llamaindex/core 0.6.23 e @llamaindex/workflow 1.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ê.