{"id":48854878,"url":"https://github.com/ac12644/langgraph-starter-kit","last_synced_at":"2026-05-01T12:00:37.430Z","repository":{"id":349352075,"uuid":"1052829117","full_name":"ac12644/langgraph-starter-kit","owner":"ac12644","description":"Boilerplate for building multi-agent AI systems with LangGraph. Includes Swarm and Supervisor patterns, memory, tools, and HTTP API out of the box.","archived":false,"fork":false,"pushed_at":"2026-04-05T13:12:03.000Z","size":131,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-05T15:13:10.226Z","etag":null,"topics":["langchain","langgraph","langsmith","starter-kit"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ac12644.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-08T15:53:09.000Z","updated_at":"2026-04-05T14:12:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ac12644/langgraph-starter-kit","commit_stats":null,"previous_names":["ac12644/langgraph-starter-kit"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ac12644/langgraph-starter-kit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ac12644%2Flanggraph-starter-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ac12644%2Flanggraph-starter-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ac12644%2Flanggraph-starter-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ac12644%2Flanggraph-starter-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ac12644","download_url":"https://codeload.github.com/ac12644/langgraph-starter-kit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ac12644%2Flanggraph-starter-kit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32495949,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["langchain","langgraph","langsmith","starter-kit"],"created_at":"2026-04-15T12:00:31.254Z","updated_at":"2026-05-01T12:00:37.386Z","avatar_url":"https://github.com/ac12644.png","language":"TypeScript","funding_links":[],"categories":["🌟 Community Projects"],"sub_categories":["📋 Templates \u0026 Starters"],"readme":"\u003cp align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003eLangGraph Starter Kit\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    The fastest way to build production-ready multi-agent apps with LangGraph.\n    \u003cbr /\u003e\n    \u003cstrong\u003e7 patterns. 5 providers. One command.\u003c/strong\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ac12644/langgraph-starter-kit/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/ac12644/langgraph-starter-kit/actions/workflows/ci.yml/badge.svg\" alt=\"CI\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://opensource.org/licenses/Apache-2.0\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-Apache_2.0-blue.svg\" alt=\"License\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.typescriptlang.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/TypeScript-5.9+-3178C6.svg\" alt=\"TypeScript\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://langchain-ai.github.io/langgraphjs/\"\u003e\u003cimg src=\"https://img.shields.io/badge/LangGraph-1.2+-7C3AED.svg\" alt=\"LangGraph\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/ac12644/langgraph-starter-kit/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/ac12644/langgraph-starter-kit?style=social\" alt=\"Stars\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#quick-start\"\u003eQuick Start\u003c/a\u003e \u0026bull;\n  \u003ca href=\"#agent-patterns\"\u003ePatterns\u003c/a\u003e \u0026bull;\n  \u003ca href=\"#llm-providers\"\u003eProviders\u003c/a\u003e \u0026bull;\n  \u003ca href=\"#examples\"\u003eExamples\u003c/a\u003e \u0026bull;\n  \u003ca href=\"#api-reference\"\u003eAPI\u003c/a\u003e \u0026bull;\n  \u003ca href=\"CONTRIBUTING.md\"\u003eContributing\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Why This Exists\n\nBuilding multi-agent systems with LangGraph means writing the same boilerplate over and over — setting up supervisors, wiring handoff tools, configuring providers, adding persistence. This starter kit gives you all of that out of the box so you can focus on your agent logic, not infrastructure.\n\n```bash\nnpx create-langgraph-app\n```\n\n**What you get:**\n- Pick your LLM provider (OpenAI, Anthropic, Google, Groq, or local Ollama)\n- Choose which agent patterns you need\n- Get a ready-to-run project with tests, types, and a Fastify server\n\nOr clone the full kit with all 7 patterns included.\n\n## Architecture\n\n```mermaid\ngraph TD\n    A[LangGraph Starter Kit] --\u003e B[\"CLI Demo · npm run dev\"]\n    A --\u003e C[\"HTTP Server · npm run dev:http\"]\n    A --\u003e D[LangGraph Studio]\n\n    B --\u003e P\n    C --\u003e P\n    D --\u003e P\n\n    subgraph P[\"7 Agent Patterns\"]\n        P1[Supervisor]\n        P2[Swarm]\n        P3[HITL]\n        P4[Structured Output]\n        P5[Research Agent]\n        P6[RAG]\n        P7[Customer Support]\n    end\n\n    subgraph F[\"Agent Factory\"]\n        F1[\"makeAgent()\"]\n        F2[\"makeSupervisor()\"]\n        F3[\"makeSwarm()\"]\n    end\n\n    subgraph T[\"Tools\"]\n        T1[Local]\n        T2[Web Search]\n        T3[RAG]\n        T4[Support]\n        T5[MCP]\n    end\n\n    P --\u003e L\n    F --\u003e L\n    T --\u003e L\n\n    subgraph L[\"5 LLM Providers\"]\n        L1[OpenAI]\n        L2[Anthropic]\n        L3[Google]\n        L4[Groq]\n        L5[\"Ollama · local\"]\n    end\n```\n\n## Features\n\n| | Feature | Description |\n|---|---|---|\n| **Patterns** | 7 Agent Patterns | Swarm, Supervisor, HITL, Structured Output, Research, RAG, Customer Support |\n| **CLI** | Scaffolder | `npx create-langgraph-app` — interactive project generator |\n| **Providers** | 5 LLM Providers | OpenAI, Anthropic, Google, Groq, Ollama — switch with one env var |\n| **Tools** | MCP Integration | Connect external tools via Model Context Protocol |\n| **Server** | HTTP + SSE | Fastify server with invoke, streaming, resume, and thread history |\n| **Debug** | LangGraph Studio | `langgraph.json` included for visual graph debugging |\n| **Observe** | LangSmith Tracing | Full observability with one env var |\n| **Persist** | Memory + Postgres | In-memory for dev, PostgreSQL-ready for production |\n| **Deploy** | Docker + CI | Docker Compose with Postgres, GitHub Actions CI |\n| **Test** | 34+ Tests | Tools, config, agents — all tested with vitest |\n\n## Quick Start\n\n### Option A: Scaffold a new project (recommended)\n\n```bash\nnpx create-langgraph-app\n```\n\nInteractive CLI — pick your provider, choose your patterns, get a project:\n\n```\n  ╔═══════════════════════════════════════╗\n  ║     create-langgraph-app              ║\n  ╚═══════════════════════════════════════╝\n\n  Project name (my-langgraph-app): my-agents\n  \n  LLM provider?\n    1. OpenAI (gpt-4o-mini)\n    2. Anthropic (Claude Sonnet)\n    3. Google (Gemini 2.0 Flash)\n    4. Groq (Llama 3.3 70B)\n    5. Ollama (local, no API key)\n\n  Which patterns?\n    1. Supervisor\n    2. Swarm\n    3. Human-in-the-Loop\n    4. Structured Output\n    5. RAG\n\n  Done! cd my-agents \u0026\u0026 npm run dev\n```\n\n### Option B: Clone the full starter kit\n\n```bash\ngit clone https://github.com/ac12644/langgraph-starter-kit.git\ncd langgraph-starter-kit\nnpm install\ncp .env.example .env    # Add your API key\nnpm run dev             # Run all 7 patterns\nnpm run dev:http        # Start HTTP server on :3000\n```\n\n## LLM Providers\n\nSwitch providers with one env var. Each has a sensible default model:\n\n| Provider | `LLM_PROVIDER` | Default Model | API Key |\n|---|---|---|---|\n| **OpenAI** | `openai` | gpt-4o-mini | `OPENAI_API_KEY` |\n| **Anthropic** | `anthropic` | claude-sonnet-4-20250514 | `ANTHROPIC_API_KEY` |\n| **Google** | `google` | gemini-2.0-flash | `GOOGLE_API_KEY` |\n| **Groq** | `groq` | llama-3.3-70b-versatile | `GROQ_API_KEY` |\n| **Ollama** | `ollama` | llama3.2 | None (runs locally) |\n\n```bash\n# .env — just two lines to switch\nLLM_PROVIDER=anthropic\nANTHROPIC_API_KEY=sk-ant-...\n```\n\n## Agent Patterns\n\n### 1. Supervisor\n\nA central coordinator routes tasks to specialized workers. Best for: **structured workflows with clear task delegation**.\n\n```bash\ncurl -X POST http://localhost:3000/supervisor/invoke \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\": [{\"role\": \"user\", \"content\": \"sum 10 and 15, then write a summary\"}]}'\n```\n\n### 2. Swarm\n\nAgents hand off to each other peer-to-peer using transfer tools. Best for: **open-ended conversations where the right agent depends on context**.\n\n```bash\ncurl -X POST http://localhost:3000/swarm/invoke \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\": [{\"role\": \"user\", \"content\": \"talk to bob then add 5 and 7\"}]}'\n```\n\n### 3. Human-in-the-Loop\n\nPauses the graph for human approval before dangerous actions. Best for: **high-stakes operations — deletions, payments, emails**.\n\n```bash\n# Trigger an action that needs approval\ncurl -X POST http://localhost:3000/interrupt/invoke \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\": [{\"role\": \"user\", \"content\": \"delete record rec_2\"}], \"thread_id\": \"hitl-1\"}'\n\n# Approve it\ncurl -X POST http://localhost:3000/interrupt/resume \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"thread_id\": \"hitl-1\", \"decision\": \"yes\"}'\n```\n\n### 4. Structured Output\n\nReturns typed JSON validated by Zod. Best for: **extracting structured data — summaries, classifications, entities**.\n\n```bash\ncurl -X POST http://localhost:3000/analyst/invoke \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\": [{\"role\": \"user\", \"content\": \"Analyze: Revenue grew 25% but churn increased 8%\"}]}'\n```\n\n### 5. Research Agent\n\nWeb search + URL scraping coordinated by a supervisor. Best for: **gathering and synthesizing information from the web**.\n\n```bash\ncurl -X POST http://localhost:3000/researcher/invoke \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\": [{\"role\": \"user\", \"content\": \"Research multi-agent AI systems\"}]}'\n```\n\n### 6. RAG (Retrieval-Augmented Generation)\n\nIn-memory vector store with semantic search. Best for: **answering questions about your own documents/knowledge base**.\n\n```bash\ncurl -X POST http://localhost:3000/rag/invoke \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\": [{\"role\": \"user\", \"content\": \"What is the supervisor pattern?\"}]}'\n```\n\n### 7. Customer Support Bot\n\nMulti-agent support system with a router that delegates to billing, tech support, and returns specialists. Includes escalation to human operators. Best for: **customer-facing products with different support domains**.\n\n```bash\ncurl -X POST http://localhost:3000/support/invoke \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\": [{\"role\": \"user\", \"content\": \"I am customer C-1002. I was charged $29.99 but my plan is free. Can you help?\"}]}'\n```\n\n## Streaming\n\nEvery app supports SSE for real-time token streaming:\n\n```bash\ncurl -N http://localhost:3000/supervisor/stream \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\": [{\"role\": \"user\", \"content\": \"what is 2+2?\"}]}'\n```\n\n## MCP Integration\n\nExtend your agents with external tools via [Model Context Protocol](https://modelcontextprotocol.io/):\n\n```bash\ncp mcp-servers.example.json mcp-servers.json\n# Edit mcp-servers.json with your MCP server configs\n# Set MCP_SERVERS_PATH=./mcp-servers.json in .env\n```\n\nSupports both `stdio` (local) and `http` (remote) transports. Tools are auto-injected into swarm and supervisor apps.\n\n## Observability\n\n### LangGraph Studio\n\n```bash\nlanggraph dev    # Visual graph debugging\n```\n\n### LangSmith Tracing\n\n```env\nLANGCHAIN_TRACING_V2=true\nLANGSMITH_API_KEY=ls_...\nLANGSMITH_PROJECT=langgraph-starter-kit\n```\n\n## API Reference\n\n| Route | Method | Description |\n|---|---|---|\n| `/:app/invoke` | POST | Invoke agent, return final result |\n| `/:app/stream` | POST | SSE token streaming |\n| `/:app/resume` | POST | Resume paused graph (HITL) |\n| `/:app/threads/:id` | GET | Get thread state |\n| `/:app/threads/:id/history` | GET | Full state history |\n| `/health` | GET | Health check |\n\n**Apps:** `swarm` `supervisor` `interrupt` `analyst` `researcher` `rag` `support`\n\n## Examples\n\nReal-world agent apps with full documentation:\n\n| Example | Description | Patterns |\n|---|---|---|\n| **[Customer Support Bot](examples/customer-support/)** | Billing, tech support, returns routing with human escalation | Supervisor, HITL |\n| **[Research Agent](examples/research-agent/)** | Web search + report writing pipeline | Supervisor |\n| **[RAG Agent](examples/rag-agent/)** | Document indexing + semantic retrieval | Supervisor, RAG |\n\nEach example has its own README with architecture diagrams, tool reference, usage examples, and customization guide.\n\n## Project Structure\n\n```\nsrc/\n├── config/\n│   ├── env.ts              # Environment + provider validation\n│   ├── llm.ts              # Multi-provider LLM factory\n│   ├── embeddings.ts       # Multi-provider embeddings factory\n│   └── checkpointer.ts     # Memory (dev) / Postgres (prod)\n├── tools/\n│   ├── local.ts            # Built-in tools (add, multiply, echo)\n│   ├── web.ts              # Web search + URL scraping\n│   ├── rag.ts              # Vector store + retrieval\n│   ├── support.ts          # Customer support tools\n│   └── mcp.ts              # MCP external tool loader\n├── agents/\n│   ├── factory.ts          # makeAgent() — agent builder\n│   ├── supervisor.ts       # makeSupervisor() wrapper\n│   ├── swarm.ts            # makeSwarm() wrapper\n│   └── handoff.ts          # createHandoffTool() — transfers\n├── apps/\n│   ├── supervisor.ts       # Supervisor pattern\n│   ├── swarm.ts            # Swarm pattern\n│   ├── interrupt.ts        # Human-in-the-loop\n│   ├── analyst.ts          # Structured output\n│   ├── researcher.ts       # Research agent\n│   ├── rag.ts              # RAG agent\n│   └── support.ts          # Customer support bot\n├── server/index.ts         # Fastify HTTP server\n└── index.ts                # CLI demo\nexamples/\n├── customer-support/       # Full customer support bot docs\n├── research-agent/         # Research agent docs\n└── rag-agent/              # RAG agent docs\n```\n\n## Deploy\n\n```bash\n# Docker Compose (includes Postgres)\ndocker compose up\n\n# Standalone Docker\ndocker build -t langgraph-starter .\ndocker run -p 3000:3000 --env-file .env langgraph-starter\n```\n\n| Platform | How |\n|---|---|\n| **Railway** | [Deploy](https://railway.com/new) with this repo URL |\n| **Render** | Connect repo — uses `render.yaml` |\n| **Docker** | `docker compose up` anywhere |\n\n## Adding Your Own Agent\n\nCreate a file, wire it up, done:\n\n```typescript\n// src/apps/my-agent.ts\nimport { llm } from \"../config/llm\";\nimport { makeAgent } from \"../agents/factory\";\nimport { makeSupervisor } from \"../agents/supervisor\";\n\nexport function createMyApp() {\n  const agent = makeAgent({\n    name: \"my_agent\",\n    llm,\n    tools: [/* your tools */],\n    system: \"You are a helpful assistant.\",\n  });\n\n  return makeSupervisor({\n    agents: [agent],\n    llm,\n    outputMode: \"last_message\",\n    supervisorName: \"my_supervisor\",\n  });\n}\n```\n\nRegister in `src/server/index.ts` and you're live.\n\n## Contributing\n\nContributions are welcome! Whether it's a new agent pattern, bug fix, documentation improvement, or just a typo — every bit helps.\n\nSee **[CONTRIBUTING.md](CONTRIBUTING.md)** for guidelines.\n\n**First time contributing?** Look for issues labeled [`good first issue`](https://github.com/ac12644/langgraph-starter-kit/labels/good%20first%20issue).\n\n## Community\n\n- **Questions?** Open a [Discussion](https://github.com/ac12644/langgraph-starter-kit/discussions)\n- **Bug?** File an [Issue](https://github.com/ac12644/langgraph-starter-kit/issues)\n- **Want to contribute?** See [CONTRIBUTING.md](CONTRIBUTING.md)\n- **Like it?** Give it a star — it helps others find the project\n\n## License\n\n[Apache License 2.0](LICENSE) — same license as LangChain. Use it freely in personal and commercial projects.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fac12644%2Flanggraph-starter-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fac12644%2Flanggraph-starter-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fac12644%2Flanggraph-starter-kit/lists"}