site_name: "" site_description: Build language agents as graphs site_url: https://langchain-ai.github.io/langgraphjs/ repo_url: https://github.com/langchain-ai/langgraphjs theme: name: material custom_dir: overrides logo_dark_mode: static/wordmark_light.svg logo_light_mode: static/wordmark_dark.svg favicon: static/favicon.png features: - announce.dismiss - content.code.annotate - content.code.copy - content.code.select - content.tabs.link - content.tooltips - header.autohide - navigation.expand - navigation.footer - navigation.indexes - navigation.instant - navigation.instant.prefetch - navigation.instant.progress - navigation.sections - navigation.path - navigation.prune - navigation.tabs - navigation.top - navigation.tracking - search.highlight - search.share - search.suggest - toc.follow palette: - scheme: default primary: white accent: gray toggle: icon: material/brightness-7 name: Switch to dark mode - scheme: slate primary: grey accent: white toggle: icon: material/brightness-4 name: Switch to light mode font: text: "Public Sans" code: "Roboto Mono" plugins: - search: separator: '[\s\u200b\-_,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])' - autorefs - typedoc: # One level of globbing is intentional source: "../libs/*/*.d.ts" output_dir: "./reference" tsconfig: "../tsconfig.json" options: "typedoc.json" name: "API Reference" title_link: "/" # optional, default: '/' - open-in-new-tab nav: - LangGraph: - Introduction: index.md - Get started: - Learn the basics: tutorials/quickstart.ipynb - Deployment: - tutorials/deployment.md - Local Deploy: tutorials/langgraph-platform/local-server.md - Template Applications: concepts/template_applications.md # TODO: make tutorial - Cloud Deploy: cloud/quick_start.md - Guides: - How-to Guides: - how-tos/index.md - Installation: - Installation: how-tos#installation - how-tos/manage-ecosystem-dependencies.ipynb - how-tos/use-in-web-environments.ipynb - LangGraph: - LangGraph: how-tos#langgraph - Controllability: - Controllability: how-tos#controllability - how-tos/map-reduce.ipynb - how-tos/branching.ipynb - how-tos/command.ipynb - how-tos/recursion-limit.ipynb - how-tos/defer-node-execution.ipynb - Persistence: - Persistence: how-tos#persistence - how-tos/persistence.ipynb - how-tos/persistence-functional.ipynb - how-tos/subgraph-persistence.ipynb - how-tos/cross-thread-persistence.ipynb - how-tos/cross-thread-persistence-functional.ipynb - how-tos/persistence-postgres.ipynb - Memory: - Memory: how-tos#memory - how-tos/manage-conversation-history.ipynb - how-tos/delete-messages.ipynb - how-tos/add-summary-conversation-history.ipynb - how-tos/semantic-search.ipynb - Human-in-the-loop: - Human-in-the-loop: how-tos#human-in-the-loop - how-tos/breakpoints.ipynb - how-tos/dynamic_breakpoints.ipynb - how-tos/edit-graph-state.ipynb - how-tos/wait-user-input.ipynb - how-tos/wait-user-input-functional.ipynb - how-tos/time-travel.ipynb - how-tos/review-tool-calls.ipynb - how-tos/review-tool-calls-functional.ipynb - Streaming: - Streaming: how-tos#streaming - how-tos/stream-values.ipynb - how-tos/stream-updates.ipynb - how-tos/stream-tokens.ipynb - how-tos/streaming-tokens-without-langchain.ipynb - how-tos/streaming-content.ipynb - how-tos/stream-multiple.ipynb - how-tos/streaming-events-from-within-tools.ipynb - how-tos/streaming-from-final-node.ipynb - Tool calling: - Tool calling: how-tos#tool-calling - how-tos/tool-calling.ipynb - how-tos/force-calling-a-tool-first.ipynb - how-tos/tool-calling-errors.ipynb - how-tos/pass-run-time-values-to-tools.ipynb - how-tos/update-state-from-tools.ipynb - Subgraphs: - Subgraphs: how-tos#subgraphs - how-tos/subgraph.ipynb - how-tos/subgraphs-manage-state.ipynb - how-tos/subgraph-transform-state.ipynb - Multi-agent: - how-tos/multi-agent-network.ipynb - how-tos/multi-agent-network-functional.ipynb - how-tos/multi-agent-multi-turn-convo.ipynb - how-tos/multi-agent-multi-turn-convo-functional.ipynb - State Management: - State Management: how-tos#state-management - how-tos/define-state.ipynb - how-tos/input_output_schema.ipynb - how-tos/pass_private_state.ipynb - Other: - Other: how-tos#other - how-tos/configuration.ipynb - how-tos/node-retry-policies.ipynb - how-tos/node-caching.ipynb - how-tos/dynamically-returning-directly.ipynb - how-tos/respond-in-format.ipynb - how-tos/managing-agent-steps.ipynb - Prebuilt ReAct Agent: - Prebuilt ReAct Agent: how-tos#prebuilt-react-agent - how-tos/create-react-agent.ipynb - how-tos/react-memory.ipynb - how-tos/react-system-prompt.ipynb - how-tos/react-human-in-the-loop.ipynb - how-tos/react-return-structured-output.ipynb - how-tos/react-agent-from-scratch-functional.ipynb - LangGraph Platform: - LangGraph Platform: how-tos#langgraph-platform - Application Structure: - Application Structure: how-tos#application-structure - cloud/deployment/setup.md - cloud/deployment/setup_pyproject.md - cloud/deployment/setup_javascript.md - cloud/deployment/semantic_search.md - cloud/deployment/custom_docker.md - cloud/deployment/test_locally.md - cloud/deployment/graph_rebuild.md - Deployment: - Deployment: how-tos#deployment - cloud/deployment/cloud.md - how-tos/deploy-self-hosted.md - how-tos/use-remote-graph.md - Authentication & Access Control: - Authentication & Access Control: how-tos#authentication-access-control - how-tos/auth/custom_auth.md - cloud/how-tos/auth/openapi_security_new.md - Assistants: - Assistants: how-tos#assistants - cloud/how-tos/configuration_cloud.md - cloud/how-tos/assistant_versioning.md - Threads: - Threads: how-tos#threads - cloud/how-tos/use_threads.md - cloud/how-tos/copy_threads.md - cloud/how-tos/check_thread_status.md - Runs: - Runs: how-tos#runs - cloud/how-tos/background_run.md - cloud/how-tos/same-thread.md - cloud/how-tos/cron_jobs.md - cloud/how-tos/stateless_runs.md - Streaming: - Streaming: how-tos#streaming_1 - cloud/how-tos/stream_values.md - cloud/how-tos/stream_updates.md - cloud/how-tos/stream_messages.md - cloud/how-tos/stream_events.md - cloud/how-tos/stream_debug.md - cloud/how-tos/stream_multiple.md - Frontend & Generative UI: - Frontend & Generative UI: how-tos#frontend-generative-ui - cloud/how-tos/use_stream_react.md - cloud/how-tos/generative_ui_react.md - Human-in-the-loop: - Human-in-the-loop: how-tos#human-in-the-loop_1 - cloud/how-tos/human_in_the_loop_breakpoint.md - cloud/how-tos/human_in_the_loop_user_input.md - cloud/how-tos/human_in_the_loop_edit_state.md - cloud/how-tos/human_in_the_loop_time_travel.md - cloud/how-tos/human_in_the_loop_review_tool_calls.md - Double-texting: - Double-texting: how-tos#double-texting - cloud/how-tos/interrupt_concurrent.md - cloud/how-tos/rollback_concurrent.md - cloud/how-tos/reject_concurrent.md - cloud/how-tos/enqueue_concurrent.md - Webhooks: - cloud/how-tos/webhooks.md - Cron Jobs: - cloud/how-tos/cron_jobs.md - Modifying the API: - Modifying the API: how-tos#modifying-the-api - how-tos/http/custom_middleware.md - how-tos/http/custom_routes.md - LangGraph Studio: - LangGraph Studio: how-tos#langgraph-studio - cloud/how-tos/test_deployment.md - cloud/how-tos/test_local_deployment.md - cloud/how-tos/invoke_studio.md - cloud/how-tos/threads_studio.md - cloud/how-tos/datasets_studio.md - Concepts: - concepts/index.md - LangGraph: - LangGraph: concepts#langgraph - concepts/high_level.md - concepts/low_level.md - concepts/agentic_concepts.md - concepts/multi_agent.md - concepts/human_in_the_loop.md - concepts/persistence.md - concepts/memory.md - concepts/streaming.md - concepts/functional_api.md - LangGraph Platform: - LangGraph Platform: concepts#langgraph-platform - High Level: - High Level: concepts#high-level - concepts/langgraph_platform.md - concepts/deployment_options.md - concepts/plans.md - concepts/template_applications.md - Components: - Components: concepts#components - concepts/langgraph_server.md - concepts/langgraph_studio.md - concepts/langgraph_cli.md - concepts/sdk.md - how-tos/use-remote-graph.md - LangGraph Server: - LangGraph Server: concepts#langgraph-server - concepts/application_structure.md - concepts/assistants.md - concepts/double_texting.md - concepts/auth.md - Deployment Options: - Deployment Options: concepts#deployment-options - concepts/self_hosted.md - concepts/langgraph_cloud.md - concepts/bring_your_own_cloud.md - Tutorials: - tutorials/index.md - Quick Start: - Quick Start: tutorials#quick-start - tutorials/quickstart.ipynb - tutorials/workflows/index.md - cloud/quick_start.md - Chatbots: - Chatbots: tutorials/chatbots/customer_support_small_model.ipynb - RAG: - RAG: tutorials#rag - tutorials/rag/langgraph_agentic_rag.ipynb - tutorials/rag/langgraph_crag.ipynb - tutorials/rag/langgraph_self_rag.ipynb - Agent Architectures: - Agent Architectures: tutorials#agent-architectures - Multi-Agent Systems: - Multi-Agent Systems: tutorials#multi-agent-systems - tutorials/multi_agent/multi_agent_collaboration.ipynb - tutorials/multi_agent/agent_supervisor.ipynb - tutorials/multi_agent/hierarchical_agent_teams.ipynb - Planning Agents: - Planning Agents: tutorials#planning-agents - tutorials/plan-and-execute/plan-and-execute.ipynb - Reflection & Critique: - Reflection & Critique: tutorials#reflection-critique - tutorials/reflection/reflection.ipynb - tutorials/rewoo/rewoo.ipynb - Evaluation & Analysis: - Evaluation & Analysis: tutorials#evaluation - tutorials/chatbot-simulation-evaluation/agent-simulation-evaluation.ipynb - Resources: - Adopters: adopters.md - LLMS-txt: llms-txt-overview.md - FAQ: concepts/faq.md - Troubleshooting: - Troubleshooting: troubleshooting/errors/ - troubleshooting/errors/index.md - troubleshooting/errors/GRAPH_RECURSION_LIMIT.ipynb - troubleshooting/errors/INVALID_CONCURRENT_GRAPH_UPDATE.ipynb - troubleshooting/errors/INVALID_GRAPH_NODE_RETURN_VALUE.ipynb - troubleshooting/errors/MULTIPLE_SUBGRAPHS.ipynb - troubleshooting/errors/UNREACHABLE_NODE.ipynb - LangGraph Academy Course: https://academy.langchain.com/courses/intro-to-langgraph - Agents: - agents/overview.md - Get started: - agents/agents.md - Documentation: - agents/run_agents.md - agents/streaming.md - agents/models.md - agents/tools.md - agents/mcp.md - agents/context.md - agents/memory.md - agents/human-in-the-loop.md - agents/multi-agent.md - agents/evals.md - agents/deployment.md - agents/ui.md - Resources: # NOTE: prebuilt.md is auto-generated by `make generate-prebuilt-page` - agents/prebuilt.md - "API reference": - "reference/index.html" - LangGraph Platform: - Server API: "cloud/reference/api/api_ref.md" - CLI: "cloud/reference/cli.md" - SDK (Python): "cloud/reference/sdk/python_sdk_ref.md" - SDK (JS/TS): "cloud/reference/sdk/js_ts_sdk_ref.md" - RemoteGraph: reference/remote_graph.md - Environment variables: "cloud/reference/env_var.md" - "Versions": - "versions/index.md" markdown_extensions: - abbr - admonition - pymdownx.details - attr_list - def_list - footnotes - md_in_html - toc: permalink: true - pymdownx.arithmatex: generic: true - pymdownx.betterem: smart_enable: all - pymdownx.caret - pymdownx.details - pymdownx.emoji: emoji_generator: !!python/name:material.extensions.emoji.to_svg emoji_index: !!python/name:material.extensions.emoji.twemoji - pymdownx.highlight: anchor_linenums: true line_spans: __span use_pygments: true pygments_lang_class: true - pymdownx.inlinehilite - pymdownx.keys - pymdownx.magiclink: normalize_issue_symbols: true repo_url_shorthand: true user: langchain-ai repo: langgraphjs - pymdownx.mark - pymdownx.smartsymbols - pymdownx.snippets: auto_append: - includes/mkdocs.md - pymdownx.superfences: custom_fences: - name: mermaid class: mermaid format: !!python/name:pymdownx.superfences.fence_code_format - pymdownx.tabbed: alternate_style: true combine_header_slug: true - pymdownx.tasklist: custom_checkbox: true - markdown_include.include: base_path: ../ - github-callouts extra_css: - css/mkdocstrings.css - css/agent_graph_widget.css hooks: - _scripts/notebook_hooks.py extra: scope: /langgraph/ consent: title: Cookie consent actions: - accept - reject description: >- We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our documentation and whether users find what they're searching for. Clicking "Accept" makes our documentation better. Thank you! ❤️ social: - icon: fontawesome/brands/python link: https://langchain-ai.github.io/langgraph/ - icon: fontawesome/brands/github link: https://github.com/langchain-ai/langgraphjs - icon: fontawesome/brands/twitter link: https://twitter.com/LangChainAI validation: # https://www.mkdocs.org/user-guide/configuration/ # We're `ignoring` nav.omitted_files because we are going to rely # on files being properly links to from the index pages of: # - tutorials # - concepts # - how-tos # - reference omitted_files: ignore # absolute_links: warn unrecognized_links: warn anchors: info # this is needed to handle headers with anchors for nav not_found: info copyright: > Copyright © 2025 LangChain, Inc | Consent Preferences