langgraph-project-setup
LangGraph Project Setup
Initialize and configure LangGraph projects for local development and deployment.
Quick Start
Python Project
# Initialize new project
uv run scripts/init_langgraph_project.py my-agent
# Fallback if uv not available
python3 scripts/init_langgraph_project.py my-agent
# Or with options
uv run scripts/init_langgraph_project.py my-agent \
--pattern multiagent \
--python-version 3.12
# Fallback if uv not available
python3 scripts/init_langgraph_project.py my-agent \
--pattern multiagent \
--python-version 3.12
JavaScript Project
# Initialize new project
node scripts/init_langgraph_project.js my-agent
# TypeScript project
node scripts/init_langgraph_project.js my-agent --typescript
# Multi-agent pattern
node scripts/init_langgraph_project.js my-agent \
--pattern multiagent \
--typescript
Setup Workflow
Step 1: Choose Project Pattern
Simple Pattern: Single agent with straightforward workflow
- Best for: Getting started, prototypes, single-purpose agents
- Structure: Minimal files, agent.py/agent.ts at package root
Multi-Agent Pattern: Modular architecture with separated concerns
- Best for: Complex workflows, multiple agents, production applications
- Structure: utils/ directory with state.py, nodes.py, tools.py
Step 2: Initialize Project
Run the init script with your chosen pattern:
# Python - simple
uv run scripts/init_langgraph_project.py my-agent
# Fallback if uv not available
python3 scripts/init_langgraph_project.py my-agent
# Python - multi-agent
uv run scripts/init_langgraph_project.py my-agent --pattern multiagent
# Fallback if uv not available
python3 scripts/init_langgraph_project.py my-agent --pattern multiagent
# JavaScript/TypeScript - simple
node scripts/init_langgraph_project.js my-agent --typescript
# JavaScript/TypeScript - multi-agent
node scripts/init_langgraph_project.js my-agent --pattern multiagent --typescript
The script creates:
- Project directory structure
langgraph.jsonconfiguration.envtemplate- Dependency files (pyproject.toml or package.json)
.gitignore- Boilerplate code with TODO comments
Step 3: Install Dependencies
Python:
cd my-agent
uv venv --python 3.12
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e '.[dev]'
# Fallback if uv not available
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -e '.[dev]'
JavaScript:
cd my-agent
npm install # or: yarn install / pnpm install
Step 4: Configure Environment Variables
Option A: Interactive Setup (Recommended)
uv run scripts/setup_providers.py
Follow the prompts to configure:
- OpenAI
- Anthropic (Claude)
- Google (Gemini)
- AWS Bedrock
- LangSmith (tracing)
- Tavily (search)
Option B: Manual Configuration
Edit .env file directly:
# Required: Choose at least one LLM provider
OPENAI_API_KEY=sk-...
# or
ANTHROPIC_API_KEY=sk-ant-...
# Optional: Enable tracing
LANGSMITH_API_KEY=lsv2_...
LANGSMITH_TRACING=true
LANGSMITH_PROJECT=my-project
See references/provider-configuration.md for provider-specific setup.
Step 5: Implement Agent Logic
Replace TODO comments in generated files:
Python Simple:
- Edit
my_agent/agent.py - Configure LLM in
call_modelfunction
Python Multi-Agent:
- Define state schema in
my_agent/utils/state.py - Implement node logic in
my_agent/utils/nodes.py - Add tools in
my_agent/utils/tools.py - Build graph in
my_agent/agent.py
JavaScript/TypeScript:
- Similar structure in
src/directory - Import appropriate LangChain packages
Step 6: Configure langgraph.json
The init script creates a basic configuration. Customize as needed:
{
"dependencies": ["."],
"graphs": {
"agent": "./my_agent/agent.py:graph"
},
"env": ".env",
"python_version": "3.11"
}
Key configuration options:
dependencies: Package dependencies locationgraphs: Mapping of graph IDs to code pathsenv: Path to environment filepython_versionornode_version: Runtime version
For complete schema reference, see references/langgraph-json-schema.md.
Step 7: Start Development Server
Option A: langgraph dev (Recommended for development)
langgraph dev
- No Docker required
- In-memory state persistence
- Hot reloading enabled
- Default port: 2024
Option B: langgraph up (Production-like testing)
langgraph up
- Docker required
- PostgreSQL state persistence
- Production environment simulation
- Default port: 8123
Step 8: Connect to LangGraph Studio
Access Studio in your browser:
https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
Safari users: Use --tunnel flag:
langgraph dev --tunnel
Validation
Validate Configuration
uv run scripts/validate_langgraph_config.py
Checks:
- Required fields (dependencies, graphs)
- File paths and references
- Optional field formats
- Common configuration errors
Test Agent Locally
# Start server
langgraph dev
# In another terminal, test with curl
curl -X POST http://localhost:2024/invoke \
-H "Content-Type: application/json" \
-d '{"input": {"messages": [{"role": "user", "content": "Hello"}]}}'
Common Configurations
Python with OpenAI
# pyproject.toml
[project.optional-dependencies]
openai = ["langchain-openai>=1.1.0"]
# agent.py
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-4o-mini")
Python with Anthropic
# pyproject.toml
[project.optional-dependencies]
anthropic = ["langchain-anthropic>=1.1.0"]
# agent.py
from langchain_anthropic import ChatAnthropic
model = ChatAnthropic(model="claude-haiku-4-5-20251001")
JavaScript with OpenAI
// package.json
{
"dependencies": {
"@langchain/openai": "^1.1.0"
}
}
// agent.ts
import { ChatOpenAI } from "@langchain/openai";
const model = new ChatOpenAI({ model: "gpt-4o-mini" });
Project Structure Reference
- Python structures:
references/python-project-structure.md - JavaScript structures:
references/javascript-project-structure.md - langgraph.json schema:
references/langgraph-json-schema.md - Provider setup:
references/provider-configuration.md - Deployment options:
references/deployment-targets.md
Troubleshooting
"Module not found" errors
Ensure dependencies are installed:
# Python
uv pip install -e '.[dev]'
# Fallback if uv not available
pip install -e '.[dev]'
# JavaScript
npm install
"Graph not found" in langgraph.json
Check graph path format:
- Python:
./package_name/agent.py:graph - JavaScript:
./src/agent.ts:graph
Validate: uv run scripts/validate_langgraph_config.py (fallback: python3 scripts/validate_langgraph_config.py)
Environment variables not loading
- Check
.envfile exists in project root - Verify
"env": ".env"in langgraph.json - Ensure no quotes around values in .env
- Restart development server after changes
Studio connection issues
- Verify server is running:
langgraph dev - Check correct port (default: 2024)
- Safari users: use
--tunnelflag - Check firewall/security software
Hot reload not working
- Ensure using
langgraph dev(notlanggraph up) - Check file is in correct directory
- Try manual restart if needed
Next Steps
After setup:
- Implement agent logic (replace TODOs)
- Add tools and nodes as needed
- Test with Studio
- Write tests (see langgraph-testing-evaluation skill)
- Deploy to LangSmith (see langsmith-deployment skill)
Scripts Reference
init_langgraph_project.py
Initialize Python project:
uv run scripts/init_langgraph_project.py <name> [--pattern simple|multiagent] [--python-version 3.11|3.12|3.13]
# Fallback if uv not available
python3 scripts/init_langgraph_project.py <name> [--pattern simple|multiagent] [--python-version 3.11|3.12|3.13]
init_langgraph_project.js
Initialize JavaScript project:
node scripts/init_langgraph_project.js <name> [--pattern simple|multiagent] [--typescript]
validate_langgraph_config.py
Validate langgraph.json:
uv run scripts/validate_langgraph_config.py [path/to/langgraph.json]
# Fallback if uv not available
python3 scripts/validate_langgraph_config.py [path/to/langgraph.json]
setup_providers.py
Interactive provider setup:
uv run scripts/setup_providers.py [--output .env]
# Fallback if uv not available
python3 scripts/setup_providers.py [--output .env]
Additional Resources
More from lubu-labs/langchain-agent-skills
langgraph-agent-patterns
Implement multi-agent coordination patterns (supervisor-subagent, router, orchestrator-worker, handoffs) for LangGraph applications. Use when users want to (1) implement multi-agent systems, (2) coordinate multiple specialized agents, (3) choose between coordination patterns, (4) set up supervisor-subagent workflows, (5) implement router-based agent selection, (6) create parallel orchestrator-worker patterns, (7) implement agent handoffs, (8) design state schemas for multi-agent systems, or (9) debug multi-agent coordination issues.
43langgraph-state-management
Design state schemas, implement reducers, configure persistence, and debug state issues for LangGraph applications. Use when users want to (1) design or define state schemas for LangGraph graphs, (2) implement reducer functions for state accumulation, (3) configure persistence with checkpointers (InMemorySaver/MemorySaver, SqliteSaver, PostgresSaver), (4) debug state update issues or unexpected state behavior, (5) migrate state schemas between versions, (6) validate state schema structure, (7) choose between TypedDict and MessagesState patterns, (8) implement custom reducers for lists, dicts, or sets, (9) use the Overwrite type to bypass reducers, (10) set up thread-based persistence for multi-turn conversations, or (11) inspect checkpoints for debugging.
26langgraph-error-handling
Implement LangGraph error handling with current v1 patterns. Use when users need to classify failures, add RetryPolicy for transient issues, build LLM recovery loops with Command routing, add human-in-the-loop with interrupt()/resume, handle ToolNode errors, or choose a safe strategy between retry, recovery, and escalation.
25langgraph-testing-evaluation
Use this skill when you need to test or evaluate LangGraph/LangChain agents: writing unit or integration tests, generating test scaffolds, mocking LLM/tool behavior, running trajectory evaluation (match or LLM-as-judge), running LangSmith dataset evaluations, and comparing two agent versions with A/B-style offline analysis. Use it for Python and JavaScript/TypeScript workflows, evaluator design, experiment setup, regression gates, and debugging flaky/incorrect evaluation results.
24deepagents-setup-configuration
Initialize, validate, and troubleshoot Deep Agents projects in Python or JavaScript using the `deepagents` package. Use when users need to create agents with built-in planning/filesystem/subagents, configure middleware/backends/checkpointing/HITL, migrate from `create_react_agent` or `create_agent`, scaffold projects with repo scripts, validate agent config files, and confirm compatibility with current LangChain/LangGraph/LangSmith docs.
21langsmith-trace-analyzer
Fetch, organize, and analyze LangSmith traces for debugging and evaluation. Use when you need to: query traces/runs by project, metadata, status, or time window; download traces to JSON; organize outcomes into passed/failed/error buckets; analyze token/message/tool-call patterns; compare passed vs failed behavior; or investigate benchmark and production failures.
19