Skip to main content
As you build and run agents with LangChain, you need visibility into how they behave: which tools they call, what prompts they generate, and how they make decisions. LangChain agents built with create_agent automatically support tracing through LangSmith, a platform for capturing, debugging, evaluating, and monitoring LLM application behavior. Traces record every step of your agent’s execution, from the initial user input to the final response, including all tool calls, model interactions, and decision points. This execution data helps you debug issues, evaluate performance across different inputs, and monitor usage patterns in production. This guide shows you how to enable tracing for your LangChain agents and use LangSmith to analyze their execution.

Prerequisites

Before you begin, ensure you have the following:

Enable tracing

All LangChain agents automatically support LangSmith tracing. To enable it, set the following environment variables:

Quickstart

No extra code is needed to log a trace to LangSmith. Just run your agent code as you normally would:
By default, the trace will be logged to the project with the name default. To configure a custom project name, see Log to a project.

Trace selectively

You may opt to trace specific invocations or parts of your application using LangSmith’s tracing_context context manager:

Log to a project

You can set a custom project name for your entire application by setting the LANGSMITH_PROJECT environment variable:
You can set the project name programmatically for specific operations:

Add metadata to traces

You can annotate your traces with custom metadata and tags:
tracing_context also accepts tags and metadata for fine-grained control:
This custom metadata and tags will be attached to the trace in LangSmith.
To learn more about how to use traces to debug, evaluate, and monitor your agents, see the LangSmith documentation.