Skip to main content
Install the optional integration in your application environment:
Call init() and auto_instrument() before running your graphs. Each attachment attempt prints a result to stderr. LangGraph uses OpenInference’s LangChain callbacks, so related LangChain runs are also captured. It uses the same OTel provider and OTLP exporter as the rest of the SDK; it does not create a second exporter or change the parent IDs after capture.
The trace contains a graph root and two child spans. Sync/async invocation and streaming use the same callbacks. Calling auto_instrument() again does not add another callback. Inputs, outputs, prompts, invocation parameters and embedding vectors are hidden by this integration; graph names and custom metadata can still be recorded. Do not put credentials in names or metadata. If another component already instrumented LangChain, its configuration is retained and the diagnostic says so; its content-capture policy may differ.

Manual fallback

If the diagnostic says unavailable or could not instrument, verify that the optional dependency is present and compatible. You can instead explicitly wrap a compiled graph:
This fallback emits graph-level spans for invoke, ainvoke, and stream; it does not capture the child tree automatically. Choose the automatic integration or the manual wrapper to avoid extra graph-level spans. SDK/OTLP spans are captured, not chained in the gateway audit ledger.