A documentation assistant deployed as a Managed Deep Agent.
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.
- 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
- Python 3.11+
- uv (recommended) or pip
# 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 .# Copy environment template
cp .env.example .env
# Edit .env with your API keys| 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 |
# Build the Managed Deep Agent bundle
uv run mda dev .
# Or with pip
mda dev .cd frontend
npm ci
npm run dev:localPoint 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.
├── 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 configThe agent uses a docs-first research strategy:
- Guardrails Check - Validates the query is LangChain-related
- Documentation Search - Searches official docs via the managed MCP connector
- Knowledge Base - Searches Pylon for known issues/solutions
- Link Validation - Verifies any URLs before including them
- Response Generation - Synthesizes a helpful answer
mda deploy .What MDA owns in this deployment:
- Identity —
identity.pyverifies Supabase access tokens (multi-region) and issues/verifies guest tokens viaPOST /identity/guest. - HTTP surface — managed ingress; no custom FastAPI app.
- LangSmith browser ops —
connectors/langsmith.pyproxies feedback and trace read/share soLANGSMITH_API_KEYnever reaches the browser. - Docs MCP —
connectors/mcp.pyattaches the LangChain docs MCP tools. - Thread titles — generated in the browser (deterministic truncation).
- Checkpointer — managed by the Managed Deep Agents runtime.
MIT