nemo_flow.integrations.deepagents#

NeMo Flow integrations for Deep Agents.

Submodules#

Classes#

NemoFlowDeepAgentsCallbackHandler

Bridge Deep Agents LangGraph lifecycle events to NeMo Flow marks.

NemoFlowDeepAgentsMiddleware

Route Deep Agents model/tool calls through NeMo Flow and emit semantic events.

Functions#

add_nemo_flow_integration([kwargs, instrument_subagents])

Receives the keyword arguments for create_deep_agent and returns them with NeMo Flow observability attached.

Package Contents#

class nemo_flow.integrations.deepagents.NemoFlowDeepAgentsCallbackHandler(*args: Any, **kwargs: Any)#

Bases: nemo_flow.integrations.langgraph.callbacks.NemoFlowCallbackHandler

Bridge Deep Agents LangGraph lifecycle events to NeMo Flow marks.

class nemo_flow.integrations.deepagents.NemoFlowDeepAgentsMiddleware(
*,
name: str = 'NemoFlowDeepAgentsMiddleware',
agent_name: str | None = None,
skills: collections.abc.Sequence[str] | None = None,
subagents: collections.abc.Sequence[collections.abc.Mapping[str, Any]] | None = None,
backend_name: str | None = None,
)#

Bases: nemo_flow.integrations.langchain.middleware.NemoFlowMiddleware

Route Deep Agents model/tool calls through NeMo Flow and emit semantic events.

Deep Agents is built on LangChain AgentMiddleware and LangGraph. This middleware keeps the existing NeMo Flow LangChain wrapping behavior, then emits Deep Agents configuration marks.

before_agent(state: Any, runtime: Any) None#

Emit run configuration metadata for sync Deep Agents runs.

async abefore_agent(state: Any, runtime: Any) None#

Emit run configuration metadata for async Deep Agents runs.

nemo_flow.integrations.deepagents.add_nemo_flow_integration(
kwargs: collections.abc.Mapping[str, Any] | None = None,
*,
instrument_subagents: bool = True,
**overrides: Any,
) dict[str, Any]#

Receives the keyword arguments for create_deep_agent and returns them with NeMo Flow observability attached.

Use this helper as create_deep_agent(**add_nemo_flow_integration(...)). It injects Deep Agents-aware middleware at the top level, adds the same middleware to dictionary-style custom subagents that do not inherit parent middleware, and leaves any provided backend unchanged.