Skip to content

Repository files navigation

Chat LangChain

A documentation assistant deployed as a Managed Deep Agent.

LangGraph Python License

Overview

This is a documentation assistant agent that helps answer questions about LangChain, LangGraph, and LangSmith. It demonstrates how to build a production-ready agent using:

  • Managed Deep Agents - For managed deployment, identity, and connectors
  • LangChain Agents - For agent creation with middleware support
  • Guardrails - To keep conversations on-topic

The repo also includes a Next.js frontend in frontend/ for the public chat UI.

Features

  • Documentation Search - Searches official LangChain docs via managed MCP
  • Support KB - Searches the Pylon knowledge base for known issues
  • Link Validation - Verifies URLs before including in responses
  • Guardrails - Filters off-topic queries

Quick Start

Prerequisites

  • Python 3.11+
  • uv (recommended) or pip

Installation

# Clone the repository
git clone https://github.com/langchain-ai/chat-langchain.git
cd chat-langchain

# Install dependencies with uv
uv sync

# Or with pip
pip install -e .

Configuration

# Copy environment template
cp .env.example .env

# Edit .env with your API keys

Required Environment Variables

Variable Description
ANTHROPIC_API_KEY Anthropic API key (or use another provider)
PYLON_API_KEY Pylon API key for support KB
PYLON_KB_ID Pylon knowledge base ID for support articles
USE_LOCAL_PROMPTS Optional. Set to true to use local prompt files instead of pulling Prompt Hub prompts

Running Locally

Backend

# Build the Managed Deep Agent bundle
uv run mda dev .

# Or with pip
mda dev .

Frontend

cd frontend
npm ci
npm run dev:local

Point the frontend at the local MDA deployment via NEXT_PUBLIC_LANGGRAPH_API_URL (see frontend/.env.local.example). Auth, guest issuance, and LangSmith operations go through the managed identity and connector surface.

Project Structure

├── agent.py                    # Managed Deep Agent entrypoint
├── identity.py                 # MDA identity contract (Supabase + guest)
├── instructions.md             # Managed Deep Agent system prompt
├── connectors/
│   ├── langsmith.py            # LangSmith feedback + trace connector
│   └── mcp.py                  # Managed MCP docs connector
├── src/
│   ├── agent/
│   │   └── config.py           # Model configuration
│   ├── tools/
│   │   ├── pylon_tools.py      # Support KB tools
│   │   ├── pricing_tools.py    # Pricing fetch
│   │   └── link_check_tools.py # URL validation
│   ├── prompts/
│   │   ├── docs_agent_prompt.py # Hub push / eval mirror of instructions.md
│   │   ├── guardrails_prompts.py
│   │   └── context_summary_prompt.py
│   └── middleware/
│       ├── guardrails_middleware.py
│       ├── ingress_guards_middleware.py
│       └── retry_middleware.py
├── frontend/                   # Next.js public chat UI
└── pyproject.toml              # Python project config

How It Works

The agent uses a docs-first research strategy:

  1. Guardrails Check - Validates the query is LangChain-related
  2. Documentation Search - Searches official docs via the managed MCP connector
  3. Knowledge Base - Searches Pylon for known issues/solutions
  4. Link Validation - Verifies any URLs before including them
  5. Response Generation - Synthesizes a helpful answer

Deployment

Managed Deep Agents

mda deploy .

What MDA owns in this deployment:

  • Identityidentity.py verifies Supabase access tokens (multi-region) and issues/verifies guest tokens via POST /identity/guest.
  • HTTP surface — managed ingress; no custom FastAPI app.
  • LangSmith browser opsconnectors/langsmith.py proxies feedback and trace read/share so LANGSMITH_API_KEY never reaches the browser.
  • Docs MCPconnectors/mcp.py attaches the LangChain docs MCP tools.
  • Thread titles — generated in the browser (deterministic truncation).
  • Checkpointer — managed by the Managed Deep Agents runtime.

Resources

License

MIT

Used by

Contributors

Languages