Skip to main content
This guide shows you how to trace Pi coding agent sessions to LangSmith using the @langchain/langsmith-pi-extension extension. Once configured, each Pi session sends traces to LangSmith. Each trace includes user messages, assistant responses, tool calls, and individual LLM invocations, which gives you full observability into your Pi coding agent runs.

Prerequisites

Before setting up tracing, ensure you have:

Installation

Install the extension via Pi:

Quick start

Tracing is disabled by default. Set the following environment variables to enable tracing and connect to your LangSmith account:
Run Pi as usual. When a session starts, the extension reports whether LangSmith tracing is enabled. You can also check the current tracing state at any time from within Pi:
By default, traces are written to the pi-coding-agent LangSmith project.

Configuration

Configuration can come from environment variables or JSON config files. Values are merged in the following order, with later sources taking precedence:
  1. Defaults
  2. ~/.pi/langsmith.json (global config)
  3. <current-working-directory>/.pi/langsmith.json (project config)
  4. Environment variables

Environment variables

Example:

Config file

Create ~/.pi/langsmith.json for global settings or .pi/langsmith.json in a project directory for local overrides:
Config file fields:

Replicas

Use replicas to send traces to multiple LangSmith destinations simultaneously. This is useful for forwarding traces to both a personal workspace and a shared team project, or to a self-hosted LangSmith instance alongside the cloud.
Each replica entry can include an updates object to override metadata or tags on the replicated runs.