nemo_flow.integrations.langchain#

NeMo Flow integrations for LangChain.

Submodules#

Classes#

NemoFlowCallbackHandler

Bridge LangChain chain run IDs to NeMo Flow Agent scopes.

NemoFlowMiddleware

Route LangChain agent model and tool calls through NeMo Flow.

Package Contents#

class nemo_flow.integrations.langchain.NemoFlowCallbackHandler#

Bases: langchain_core.callbacks.base.BaseCallbackHandler

Bridge LangChain chain run IDs to NeMo Flow Agent scopes.

run_inline = True#
on_chain_start(
serialized: dict[str, Any],
inputs: dict[str, Any],
*,
run_id: uuid.UUID,
parent_run_id: uuid.UUID | None = None,
tags: list[str] | None = None,
metadata: dict[str, Any] | None = None,
**kwargs: Any,
) Any#

Push a NeMo Flow Agent scope for a LangChain chain run.

on_chain_end(
outputs: dict[str, Any],
*,
run_id: uuid.UUID,
parent_run_id: uuid.UUID | None = None,
**kwargs: Any,
) Any#

Pop the NeMo Flow scope associated with a LangChain chain run.

on_chain_error(
error: BaseException,
*,
run_id: uuid.UUID,
parent_run_id: uuid.UUID | None = None,
**kwargs: Any,
) Any#

Pop the NeMo Flow scope associated with a failed LangChain chain run.

class nemo_flow.integrations.langchain.NemoFlowMiddleware(*, name: str = 'NemoFlowMiddleware')#

Bases: langchain.agents.middleware.AgentMiddleware

Route LangChain agent model and tool calls through NeMo Flow.

This uses LangChain’s public AgentMiddleware hooks. It applies to agents built with langchain.agents.create_agent(..., middleware=[...]).

property name: str#

Middleware name used by LangChain graph nodes and traces.

wrap_model_call(
request: langchain.agents.middleware.ModelRequest[Any],
handler: collections.abc.Callable[[langchain.agents.middleware.ModelRequest[Any]], langchain.agents.middleware.ModelResponse[Any]],
) langchain.agents.middleware.ModelResponse[Any]#

Wrap a sync LangChain agent model call in NeMo Flow LLM execution.

async awrap_model_call(
request: langchain.agents.middleware.ModelRequest[Any],
handler: collections.abc.Callable[[langchain.agents.middleware.ModelRequest[Any]], collections.abc.Awaitable[langchain.agents.middleware.ModelResponse[Any]]],
) langchain.agents.middleware.ModelResponse[Any]#

Wrap an async LangChain agent model call in NeMo Flow LLM execution.

wrap_tool_call(
request: langchain.agents.middleware.ToolCallRequest,
handler: collections.abc.Callable[[langchain.agents.middleware.ToolCallRequest], langchain_core.messages.ToolMessage | langgraph.types.Command[Any]],
) langchain_core.messages.ToolMessage | langgraph.types.Command[Any]#

Wrap a sync LangChain agent tool call in NeMo Flow tool execution.

async awrap_tool_call(
request: langchain.agents.middleware.ToolCallRequest,
handler: collections.abc.Callable[[langchain.agents.middleware.ToolCallRequest], collections.abc.Awaitable[langchain_core.messages.ToolMessage | langgraph.types.Command[Any]]],
) langchain_core.messages.ToolMessage | langgraph.types.Command[Any]#

Wrap an async LangChain agent tool call in NeMo Flow tool execution.