Pular para o conteúdo principal
Em Python, com langchain-core só: context_runnable() coloca o contexto nas mensagens do prompt, NiadraCallbackHandler registra os turnos e history_tools() entrega o kit como StructuredTools. Em JavaScript, @niadra/sdk/langchain traz niadraContext(), withNiadraContext() para nós de LangGraph.js, NiadraCallbackHandler e niadraTools().

Instalar

A integração em TypeScript está no @niadra/sdk no npm.

As cinco primitivas

Exemplo mínimo

O mesmo código está em examples/langchain_chain.py e examples/langgraph.ts. Para agentes LangGraph em Python, veja LangGraph.

Memória do agente

Em Python, history_tools(conversation, agent_memory=...) acrescenta as ferramentas da memória do agente, e agent_memory=True (ou {"write": True, "max_tokens": 300, "tags": [...]}) no runnable põe as notas do próprio agente logo antes do contexto do cliente, na mesma mensagem de sistema. Veja Memória do agente.

Registros de turno

Com a funcionalidade turns ligada no espaço (ela vem ligada), NiadraCallbackHandler(conversation, turns=True) em Python e new NiadraCallbackHandler(convo, { turns: true }) em JavaScript gravam cada execução de primeiro nível como um registro de turno, com as chamadas de ferramenta pelos ids de chamada do provedor e as chamadas de modelo com os tokens delas. Uma ferramenta envolvida com Niadra.tool() dentro de uma ferramenta do LangChain toma a chamada que o handler já gravou, então cada chamada é gravada uma vez. Num replay, uma ferramenta passada por replayable() (Python) ou recordTools() (JavaScript) responde do registro, e qualquer outra é recusada com ReplayRefusedError (NiadraReplayRefusedError) em vez de rodar ao vivo. Um turno nunca espera pela Niadra e nunca repete o texto da conversa.

Limites

  • Sem BaseChatMessageHistory nem BaseStore próprios: a Niadra não é o armazenamento de estado da cadeia nem do grafo, e o checkpointer nunca guarda um contexto.
  • Nada aqui derruba a cadeia: com a Niadra lenta ou fora, as mensagens vão ao modelo como vieram.
  • Testado contra langchain-core 1.6 e @langchain/core 1.2 com um chat model falso e a Niadra no emulador.

Próximos passos

LangGraph

o middleware para create_agent em Python.

Navegação do histórico

as três ferramentas que o agente recebe.