diff --git a/.github/workflows/deploy-redirects.yml b/.github/workflows/deploy-redirects.yml new file mode 100644 index 000000000..8daaa1bbc --- /dev/null +++ b/.github/workflows/deploy-redirects.yml @@ -0,0 +1,49 @@ +name: Deploy Redirects to GitHub Pages + +on: + push: + branches: + - main + paths: + - 'docs/**' + - '.github/workflows/deploy-redirects.yml' + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Generate redirect files + run: python docs/generate_redirects.py + + - name: Setup Pages + uses: actions/configure-pages@v4 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: 'docs/_site' + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 000000000..57510a2be --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +_site/ diff --git a/docs/generate_redirects.py b/docs/generate_redirects.py new file mode 100644 index 000000000..e8555ebdf --- /dev/null +++ b/docs/generate_redirects.py @@ -0,0 +1,142 @@ +#!/usr/bin/env python3 +""" +Generate HTML redirect files from redirects.json. + +Usage: + python generate_redirects.py + +This script reads redirects.json and generates individual HTML files +for each redirect path. Each HTML file uses meta refresh (0 delay) +which is SEO-friendly and treated similarly to 301 redirects by Google. + +To add new redirects, simply edit redirects.json and re-run this script. +""" + +import json +import os +from pathlib import Path + +# Default fallback URL for any path not in the redirect map +DEFAULT_REDIRECT = "https://docs.langchain.com/oss/python/langgraph/overview" + +HTML_TEMPLATE = """ + + + + Redirecting... + + + + + + +Redirecting... + + +""" + +ROOT_HTML_TEMPLATE = """ + + + + Redirecting to LangGraph Documentation + + + + + + +

Documentation has moved

+

The LangGraph documentation has moved to docs.langchain.com.

+

Redirecting you now...

+ + +""" + +CATCHALL_404_TEMPLATE = """ + + + + Redirecting to LangGraph Documentation + + + + + + +

Documentation has moved

+

The LangGraph documentation has moved to docs.langchain.com.

+

Redirecting you now...

+ + +""" + + +def generate_redirects(): + script_dir = Path(__file__).parent + output_dir = script_dir / "_site" + + # Load redirects + with open(script_dir / "redirects.json") as f: + redirects = json.load(f) + + # Clean output directory + if output_dir.exists(): + import shutil + shutil.rmtree(output_dir) + output_dir.mkdir(parents=True) + + # Generate individual HTML files for each redirect + for old_path, new_url in redirects.items(): + # Remove leading slash and create directory structure + path = old_path.lstrip("/") + + # Check if path has a file extension (e.g., .txt, .xml) + # If so, create the file directly instead of a directory with index.html + path_obj = Path(path) + has_extension = path_obj.suffix and len(path_obj.suffix) <= 5 + + if not path: + html_path = output_dir / "index.html" + elif has_extension: + # For files with extensions, create the file directly + html_path = output_dir / path + else: + # For directory-style URLs, create index.html inside + html_path = output_dir / path / "index.html" + + # Create parent directories + html_path.parent.mkdir(parents=True, exist_ok=True) + + # Write the redirect HTML + html_path.write_text(HTML_TEMPLATE.format(url=new_url)) + print(f"Created: {html_path}") + + # Create root index.html + root_index = output_dir / "index.html" + if not root_index.exists(): + root_index.write_text(ROOT_HTML_TEMPLATE.format(url=DEFAULT_REDIRECT)) + print(f"Created: {root_index}") + + # Create 404.html for catchall + catchall_404 = output_dir / "404.html" + catchall_404.write_text(CATCHALL_404_TEMPLATE.format(default_url=DEFAULT_REDIRECT)) + print(f"Created: {catchall_404}") + + # Copy static files (like llms.txt) that can't be redirected via HTML + static_files = ["llms.txt"] + for static_file in static_files: + src = script_dir / static_file + if src.exists(): + dst = output_dir / static_file + dst.write_text(src.read_text()) + print(f"Copied: {dst}") + + print(f"\nGenerated {len(redirects)} redirect files in {output_dir}") + + +if __name__ == "__main__": + generate_redirects() diff --git a/docs/llms.txt b/docs/llms.txt new file mode 100644 index 000000000..75017c34f --- /dev/null +++ b/docs/llms.txt @@ -0,0 +1,35 @@ +# LangGraph + +LangGraph documentation has moved to docs.langchain.com. + +## Overview + +- [LangGraph Overview](https://docs.langchain.com/oss/python/langgraph/overview): Introduction to LangGraph, a library for building stateful, multi-actor applications with LLMs. +- [Why LangGraph?](https://docs.langchain.com/oss/python/langgraph/why-langgraph): Motivation for LangGraph and its key features. + +## Core Concepts + +- [Graph API](https://docs.langchain.com/oss/python/langgraph/graph-api): Learn how to define state, create nodes, and connect them with edges. +- [Streaming](https://docs.langchain.com/oss/python/langgraph/streaming): Stream outputs from your graph for better UX. +- [Persistence](https://docs.langchain.com/oss/python/langgraph/persistence): Add memory and checkpointing to your graphs. +- [Add Memory](https://docs.langchain.com/oss/python/langgraph/add-memory): Implement short-term and long-term memory. +- [Workflows & Agents](https://docs.langchain.com/oss/python/langgraph/workflows-agents): Build agents and workflows with LangGraph. + +## How-To Guides + +- [Use Subgraphs](https://docs.langchain.com/oss/python/langgraph/use-subgraphs): Compose graphs using subgraphs. +- [Observability](https://docs.langchain.com/oss/python/langgraph/observability): Add tracing and debugging to your graphs. +- [Common Errors](https://docs.langchain.com/oss/python/langgraph/common-errors): Troubleshoot common LangGraph errors. + +## Tutorials + +- [Agentic RAG](https://docs.langchain.com/oss/python/langgraph/agentic-rag): Build an agentic RAG system with LangGraph. +- [SQL Agent](https://docs.langchain.com/oss/python/langgraph/sql-agent): Create a SQL agent with LangGraph. + +## Reference + +- [API Reference](https://reference.langchain.com/python/langgraph/): Complete API documentation for LangGraph. + +## LangGraph Platform + +For deploying LangGraph applications in production, see the [LangSmith documentation](https://docs.langchain.com/langsmith/agent-server). diff --git a/docs/redirects.json b/docs/redirects.json new file mode 100644 index 000000000..1510ed38b --- /dev/null +++ b/docs/redirects.json @@ -0,0 +1,296 @@ +{ + "/how-tos/stream-values": "https://docs.langchain.com/oss/python/langgraph/streaming", + "/how-tos/stream-updates": "https://docs.langchain.com/oss/python/langgraph/streaming", + "/how-tos/streaming-content": "https://docs.langchain.com/oss/python/langgraph/streaming", + "/how-tos/stream-multiple": "https://docs.langchain.com/oss/python/langgraph/streaming", + "/how-tos/streaming-tokens-without-langchain": "https://docs.langchain.com/oss/python/langgraph/streaming", + "/how-tos/streaming-from-final-node": "https://docs.langchain.com/oss/python/langgraph/streaming", + "/how-tos/streaming-events-from-within-tools-without-langchain": "https://docs.langchain.com/oss/python/langgraph/streaming", + "/how-tos/state-reducers": "https://docs.langchain.com/oss/python/langgraph/graph-api#define-and-update-state", + "/how-tos/sequence": "https://docs.langchain.com/oss/python/langgraph/graph-api#create-a-sequence-of-steps", + "/how-tos/branching": "https://docs.langchain.com/oss/python/langgraph/graph-api#create-branches", + "/how-tos/recursion-limit": "https://docs.langchain.com/oss/python/langgraph/graph-api#create-and-control-loops", + "/how-tos/visualization": "https://docs.langchain.com/oss/python/langgraph/graph-api#visualize-your-graph", + "/how-tos/input_output_schema": "https://docs.langchain.com/oss/python/langgraph/graph-api#define-input-and-output-schemas", + "/how-tos/pass_private_state": "https://docs.langchain.com/oss/python/langgraph/graph-api#pass-private-state-between-nodes", + "/how-tos/state-model": "https://docs.langchain.com/oss/python/langgraph/graph-api#use-pydantic-models-for-graph-state", + "/how-tos/map-reduce": "https://docs.langchain.com/oss/python/langgraph/graph-api#map-reduce-and-the-send-api", + "/how-tos/command": "https://docs.langchain.com/oss/python/langgraph/graph-api#combine-control-flow-and-state-updates-with-command", + "/how-tos/configuration": "https://docs.langchain.com/oss/python/langgraph/graph-api#add-runtime-configuration", + "/how-tos/node-retries": "https://docs.langchain.com/oss/python/langgraph/graph-api#add-retry-policies", + "/how-tos/return-when-recursion-limit-hits": "https://docs.langchain.com/oss/python/langgraph/graph-api#impose-a-recursion-limit", + "/how-tos/async": "https://docs.langchain.com/oss/python/langgraph/graph-api#async", + "/how-tos/memory/manage-conversation-history": "https://docs.langchain.com/oss/python/langgraph/add-memory", + "/how-tos/memory/delete-messages": "https://docs.langchain.com/oss/python/langgraph/add-memory#delete-messages", + "/how-tos/memory/add-summary-conversation-history": "https://docs.langchain.com/oss/python/langgraph/add-memory#summarize-messages", + "/how-tos/memory": "https://docs.langchain.com/oss/python/langgraph/add-memory", + "/agents/memory": "https://docs.langchain.com/oss/python/langgraph/add-memory", + "/how-tos/subgraph-transform-state": "https://docs.langchain.com/oss/python/langgraph/use-subgraphs#different-state-schemas", + "/how-tos/subgraphs-manage-state": "https://docs.langchain.com/oss/python/langgraph/use-subgraphs#add-persistence", + "/how-tos/persistence_postgres": "https://docs.langchain.com/oss/python/langgraph/add-memory#use-in-production", + "/how-tos/persistence_mongodb": "https://docs.langchain.com/oss/python/langgraph/add-memory#use-in-production", + "/how-tos/persistence_redis": "https://docs.langchain.com/oss/python/langgraph/add-memory#use-in-production", + "/how-tos/subgraph-persistence": "https://docs.langchain.com/oss/python/langgraph/add-memory#use-with-subgraphs", + "/how-tos/cross-thread-persistence": "https://docs.langchain.com/oss/python/langgraph/add-memory#add-long-term-memory", + "/cloud/how-tos/copy_threads": "https://docs.langchain.com/langsmith/use-threads", + "/cloud/how-tos/check-thread-status": "https://docs.langchain.com/langsmith/use-threads", + "/cloud/concepts/threads": "https://docs.langchain.com/oss/python/langgraph/persistence#threads", + "/how-tos/persistence": "https://docs.langchain.com/oss/python/langgraph/add-memory", + "/how-tos/tool-calling-errors": "https://docs.langchain.com/oss/python/langgraph/workflows-agents", + "/how-tos/pass-config-to-tools": "https://docs.langchain.com/oss/python/langgraph/workflows-agents", + "/how-tos/pass-run-time-values-to-tools": "https://docs.langchain.com/oss/python/langgraph/workflows-agents", + "/how-tos/update-state-from-tools": "https://docs.langchain.com/oss/python/langgraph/workflows-agents", + "/agents/tools": "https://docs.langchain.com/oss/python/langgraph/workflows-agents", + "/how-tos/agent-handoffs": "https://docs.langchain.com/oss/python/langgraph/graph-api", + "/how-tos/multi-agent-network": "https://docs.langchain.com/oss/python/langgraph/graph-api", + "/how-tos/multi-agent-multi-turn-convo": "https://docs.langchain.com/oss/python/langgraph/graph-api", + "/cloud/index": "https://docs.langchain.com/oss/python/langgraph/overview", + "/cloud/how-tos/index": "https://docs.langchain.com/langsmith/home", + "/cloud/concepts/api": "https://docs.langchain.com/langsmith/agent-server", + "/cloud/concepts/cloud": "https://docs.langchain.com/langsmith/cloud", + "/cloud/faq/studio": "https://docs.langchain.com/langsmith/studio", + "/cloud/how-tos/human_in_the_loop_edit_state": "https://docs.langchain.com/langsmith/add-human-in-the-loop", + "/cloud/how-tos/human_in_the_loop_user_input": "https://docs.langchain.com/langsmith/add-human-in-the-loop", + "/concepts/platform_architecture": "https://docs.langchain.com/langsmith/cloud#architecture", + "/cloud/how-tos/stream_values": "https://docs.langchain.com/langsmith/streaming", + "/cloud/how-tos/stream_updates": "https://docs.langchain.com/langsmith/streaming", + "/cloud/how-tos/stream_messages": "https://docs.langchain.com/langsmith/streaming", + "/cloud/how-tos/stream_events": "https://docs.langchain.com/langsmith/streaming", + "/cloud/how-tos/stream_debug": "https://docs.langchain.com/langsmith/streaming", + "/cloud/how-tos/stream_multiple": "https://docs.langchain.com/langsmith/streaming", + "/cloud/concepts/streaming": "https://docs.langchain.com/oss/python/langgraph/streaming", + "/agents/streaming": "https://docs.langchain.com/oss/python/langgraph/streaming", + "/how-tos/create-react-agent": "https://docs.langchain.com/oss/python/langchain/agents#basic-configuration", + "/how-tos/create-react-agent-memory": "https://docs.langchain.com/oss/python/langgraph/add-memory", + "/how-tos/create-react-agent-system-prompt": "https://docs.langchain.com/oss/python/langgraph/add-memory", + "/how-tos/create-react-agent-structured-output": "https://docs.langchain.com/oss/python/langchain/agents#structured-output", + "/prebuilt": "https://docs.langchain.com/oss/python/langchain/agents", + "/reference/prebuilt": "https://reference.langchain.com/python/langgraph/agents/", + "/concepts/high_level": "https://docs.langchain.com/oss/python/langgraph/overview", + "/concepts/index": "https://docs.langchain.com/oss/python/langgraph/overview", + "/concepts/v0-human-in-the-loop": "https://docs.langchain.com/oss/python/langgraph/interrupts", + "/how-tos/index": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/introduction": "https://docs.langchain.com/oss/python/langgraph/overview", + "/agents/deployment": "https://docs.langchain.com/oss/python/langgraph/local-server", + "/how-tos/deploy-self-hosted": "https://docs.langchain.com/langsmith/platform-setup", + "/concepts/self_hosted": "https://docs.langchain.com/langsmith/platform-setup", + "/tutorials/deployment": "https://docs.langchain.com/langsmith/deployments", + "/cloud/how-tos/assistant_versioning": "https://docs.langchain.com/langsmith/configuration-cloud", + "/cloud/concepts/runs": "https://docs.langchain.com/langsmith/assistants#execution", + "/how-tos/wait-user-input-functional": "https://docs.langchain.com/oss/python/langgraph/functional-api", + "/how-tos/review-tool-calls-functional": "https://docs.langchain.com/oss/python/langgraph/functional-api", + "/how-tos/create-react-agent-hitl": "https://docs.langchain.com/oss/python/langgraph/interrupts", + "/agents/human-in-the-loop": "https://docs.langchain.com/oss/python/langgraph/interrupts", + "/how-tos/human_in_the_loop/dynamic_breakpoints": "https://docs.langchain.com/oss/python/langgraph/interrupts", + "/concepts/breakpoints": "https://docs.langchain.com/oss/python/langgraph/interrupts", + "/how-tos/human_in_the_loop/breakpoints": "https://docs.langchain.com/oss/python/langgraph/interrupts", + "/cloud/how-tos/human_in_the_loop_breakpoint": "https://docs.langchain.com/langsmith/add-human-in-the-loop", + "/how-tos/human_in_the_loop/edit-graph-state": "https://docs.langchain.com/oss/python/langgraph/use-time-travel", + "/examples/index": "https://docs.langchain.com/oss/python/langgraph/case-studies", + "/guides/index": "https://docs.langchain.com/oss/python/langchain/overview", + "/tutorials/index": "https://docs.langchain.com/oss/python/learn", + "/llms-txt-overview": "https://docs.langchain.com/llms.txt", + "/tutorials/rag/langgraph_adaptive_rag": "https://docs.langchain.com/oss/python/langgraph/agentic-rag", + "/tutorials/multi_agent/multi-agent-collaboration": "https://docs.langchain.com/oss/python/langchain/multi-agent", + "/how-tos/create-react-agent-manage-message-history": "https://docs.langchain.com/oss/python/langgraph/add-memory", + "/how-tos/many-tools": "https://docs.langchain.com/oss/python/langchain/tools", + "/tutorials/customer-support/customer-support": "https://docs.langchain.com/oss/python/langgraph/agentic-rag", + "/how-tos/react-agent-structured-output": "https://docs.langchain.com/oss/python/langchain/agents#structured-output", + "/tutorials/code_assistant/langgraph_code_assistant": "https://docs.langchain.com/oss/python/langgraph/agentic-rag", + "/tutorials/multi_agent/hierarchical_agent_teams": "https://docs.langchain.com/oss/python/langchain/supervisor", + "/tutorials/auth/getting_started": "https://docs.langchain.com/langsmith/auth", + "/tutorials/auth/resource_auth": "https://docs.langchain.com/langsmith/resource-auth", + "/tutorials/auth/add_auth_server": "https://docs.langchain.com/langsmith/add-auth-server", + "/how-tos/use-remote-graph": "https://docs.langchain.com/langsmith/use-remote-graph", + "/how-tos/autogen-integration": "https://docs.langchain.com/langsmith/autogen-integration", + "/how-tos/human_in_the_loop/wait-user-input": "https://docs.langchain.com/oss/python/langgraph/interrupts", + "/cloud/how-tos/use_stream_react": "https://docs.langchain.com/langsmith/use-stream-react", + "/cloud/how-tos/generative_ui_react": "https://docs.langchain.com/langsmith/generative-ui-react", + "/concepts/langgraph_platform": "https://docs.langchain.com/langsmith/home", + "/concepts/langgraph_components": "https://docs.langchain.com/langsmith/components", + "/concepts/langgraph_server": "https://docs.langchain.com/langsmith/agent-server", + "/concepts/langgraph_data_plane": "https://docs.langchain.com/langsmith/data-plane", + "/concepts/langgraph_control_plane": "https://docs.langchain.com/langsmith/control-plane", + "/concepts/langgraph_cli": "https://docs.langchain.com/langsmith/cli", + "/concepts/langgraph_studio": "https://docs.langchain.com/langsmith/studio", + "/cloud/how-tos/studio/quick_start": "https://docs.langchain.com/langsmith/quick-start-studio", + "/cloud/how-tos/invoke_studio": "https://docs.langchain.com/langsmith/use-studio", + "/cloud/how-tos/studio/manage_assistants": "https://docs.langchain.com/langsmith/use-studio", + "/cloud/how-tos/threads_studio": "https://docs.langchain.com/langsmith/use-threads", + "/cloud/how-tos/iterate_graph_studio": "https://docs.langchain.com/langsmith/use-studio", + "/cloud/how-tos/studio/run_evals": "https://docs.langchain.com/langsmith/observability", + "/cloud/how-tos/clone_traces_studio": "https://docs.langchain.com/langsmith/observability", + "/cloud/how-tos/datasets_studio": "https://docs.langchain.com/langsmith/use-studio", + "/concepts/sdk": "https://docs.langchain.com/langsmith/sdk", + "/concepts/plans": "https://docs.langchain.com/langsmith/home", + "/concepts/application_structure": "https://docs.langchain.com/langsmith/application-structure", + "/concepts/scalability_and_resilience": "https://docs.langchain.com/langsmith/scalability-and-resilience", + "/concepts/auth": "https://docs.langchain.com/langsmith/auth", + "/how-tos/auth/custom_auth": "https://docs.langchain.com/langsmith/custom-auth", + "/how-tos/auth/openapi_security": "https://docs.langchain.com/langsmith/openapi-security", + "/concepts/assistants": "https://docs.langchain.com/langsmith/assistants", + "/cloud/how-tos/configuration_cloud": "https://docs.langchain.com/langsmith/configuration-cloud", + "/cloud/how-tos/use_threads": "https://docs.langchain.com/langsmith/use-threads", + "/cloud/how-tos/background_run": "https://docs.langchain.com/langsmith/background-run", + "/cloud/how-tos/same-thread": "https://docs.langchain.com/langsmith/same-thread", + "/cloud/how-tos/stateless_runs": "https://docs.langchain.com/langsmith/stateless-runs", + "/cloud/how-tos/configurable_headers": "https://docs.langchain.com/langsmith/configurable-headers", + "/concepts/double_texting": "https://docs.langchain.com/langsmith/double-texting", + "/cloud/how-tos/interrupt_concurrent": "https://docs.langchain.com/langsmith/interrupt-concurrent", + "/cloud/how-tos/rollback_concurrent": "https://docs.langchain.com/langsmith/rollback-concurrent", + "/cloud/how-tos/reject_concurrent": "https://docs.langchain.com/langsmith/reject-concurrent", + "/cloud/how-tos/enqueue_concurrent": "https://docs.langchain.com/langsmith/enqueue-concurrent", + "/cloud/concepts/webhooks": "https://docs.langchain.com/langsmith/use-webhooks", + "/cloud/how-tos/webhooks": "https://docs.langchain.com/langsmith/use-webhooks", + "/cloud/concepts/cron_jobs": "https://docs.langchain.com/langsmith/cron-jobs", + "/cloud/how-tos/cron_jobs": "https://docs.langchain.com/langsmith/cron-jobs", + "/how-tos/http/custom_lifespan": "https://docs.langchain.com/langsmith/custom-lifespan", + "/how-tos/http/custom_middleware": "https://docs.langchain.com/langsmith/custom-middleware", + "/how-tos/http/custom_routes": "https://docs.langchain.com/langsmith/custom-routes", + "/cloud/concepts/data_storage_and_privacy": "https://docs.langchain.com/langsmith/data-storage-and-privacy", + "/cloud/deployment/semantic_search": "https://docs.langchain.com/langsmith/semantic-search", + "/how-tos/ttl/configure_ttl": "https://docs.langchain.com/langsmith/configure-ttl", + "/concepts/deployment_options": "https://docs.langchain.com/langsmith/deployments", + "/cloud/quick_start": "https://docs.langchain.com/langsmith/deployment-quickstart", + "/cloud/deployment/setup": "https://docs.langchain.com/langsmith/setup-app-requirements-txt", + "/cloud/deployment/setup_pyproject": "https://docs.langchain.com/langsmith/setup-pyproject", + "/cloud/deployment/setup_javascript": "https://docs.langchain.com/langsmith/setup-javascript", + "/cloud/deployment/custom_docker": "https://docs.langchain.com/langsmith/custom-docker", + "/cloud/deployment/graph_rebuild": "https://docs.langchain.com/langsmith/graph-rebuild", + "/concepts/langgraph_cloud": "https://docs.langchain.com/langsmith/cloud", + "/concepts/langgraph_self_hosted_data_plane": "https://docs.langchain.com/langsmith/platform-setup", + "/concepts/langgraph_self_hosted_control_plane": "https://docs.langchain.com/langsmith/platform-setup", + "/concepts/langgraph_standalone_container": "https://docs.langchain.com/langsmith/docker", + "/cloud/deployment/cloud": "https://docs.langchain.com/langsmith/cloud", + "/cloud/deployment/self_hosted_data_plane": "https://docs.langchain.com/langsmith/platform-setup", + "/cloud/deployment/self_hosted_control_plane": "https://docs.langchain.com/langsmith/platform-setup", + "/cloud/deployment/standalone_container": "https://docs.langchain.com/langsmith/docker", + "/concepts/server-mcp": "https://docs.langchain.com/langsmith/server-mcp", + "/cloud/how-tos/human_in_the_loop_time_travel": "https://docs.langchain.com/langsmith/human-in-the-loop-time-travel", + "/cloud/how-tos/add-human-in-the-loop": "https://docs.langchain.com/langsmith/add-human-in-the-loop", + "/cloud/deployment/egress": "https://docs.langchain.com/langsmith/env-var", + "/cloud/how-tos/streaming": "https://docs.langchain.com/langsmith/streaming", + "/cloud/reference/api/api_ref": "https://docs.langchain.com/langsmith/server-api-ref", + "/cloud/reference/langgraph_server_changelog": "https://docs.langchain.com/langsmith/agent-server-changelog", + "/cloud/reference/api/api_ref_control_plane": "https://docs.langchain.com/langsmith/api-ref-control-plane", + "/cloud/reference/cli": "https://docs.langchain.com/langsmith/cli", + "/cloud/reference/env_var": "https://docs.langchain.com/langsmith/env-var", + "/troubleshooting/studio": "https://docs.langchain.com/langsmith/troubleshooting-studio", + "/index": "https://docs.langchain.com/oss/python/langgraph/overview", + "/agents/agents": "https://docs.langchain.com/oss/python/langchain/agents", + "/concepts/why-langgraph": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/get-started/1-build-basic-chatbot": "https://docs.langchain.com/oss/python/langgraph/quickstart", + "/tutorials/get-started/2-add-tools": "https://docs.langchain.com/oss/python/langgraph/quickstart", + "/tutorials/get-started/3-add-memory": "https://docs.langchain.com/oss/python/langgraph/quickstart", + "/tutorials/get-started/4-human-in-the-loop": "https://docs.langchain.com/oss/python/langgraph/quickstart", + "/tutorials/get-started/5-customize-state": "https://docs.langchain.com/oss/python/langgraph/quickstart", + "/tutorials/get-started/6-time-travel": "https://docs.langchain.com/oss/python/langgraph/quickstart", + "/tutorials/langsmith/local-server": "https://docs.langchain.com/oss/python/langgraph/local-server", + "/tutorials/workflows": "https://docs.langchain.com/oss/python/langgraph/workflows-agents", + "/tutorials/plan-and-execute/plan-and-execute": "https://docs.langchain.com/oss/python/langchain/middleware/built-in#to-do-list", + "/tutorials/langgraph-platform/local-server/local-server": "https://docs.langchain.com/langsmith/local-server", + "/concepts/agentic_concepts": "https://docs.langchain.com/oss/python/langgraph/workflows-agents", + "/agents/overview": "https://docs.langchain.com/oss/python/langchain/agents", + "/agents/run_agents": "https://docs.langchain.com/oss/python/langgraph/quickstart", + "/concepts/low_level": "https://docs.langchain.com/oss/python/langgraph/graph-api", + "/how-tos/graph-api": "https://docs.langchain.com/oss/python/langgraph/graph-api", + "/how-tos/react-agent-from-scratch": "https://docs.langchain.com/oss/python/langchain/quickstart", + "/concepts/functional_api": "https://docs.langchain.com/oss/python/langgraph/functional-api", + "/how-tos/use-functional-api": "https://docs.langchain.com/oss/python/langgraph/functional-api", + "/concepts/pregel": "https://docs.langchain.com/oss/python/langgraph/pregel", + "/concepts/streaming": "https://docs.langchain.com/oss/python/langgraph/streaming", + "/how-tos/streaming": "https://docs.langchain.com/oss/python/langgraph/streaming", + "/concepts/persistence": "https://docs.langchain.com/oss/python/langgraph/persistence", + "/concepts/durable_execution": "https://docs.langchain.com/oss/python/langgraph/durable-execution", + "/concepts/memory": "https://docs.langchain.com/oss/python/langgraph/memory", + "/how-tos/memory/add-memory": "https://docs.langchain.com/oss/python/langgraph/add-memory", + "/agents/context": "https://docs.langchain.com/oss/python/langgraph/add-memory", + "/agents/models": "https://docs.langchain.com/oss/python/langgraph/overview", + "/concepts/tools": "https://docs.langchain.com/oss/python/langgraph/workflows-agents", + "/how-tos/tool-calling": "https://docs.langchain.com/oss/python/langgraph/workflows-agents", + "/concepts/human_in_the_loop": "https://docs.langchain.com/oss/python/langgraph/interrupts", + "/how-tos/human_in_the_loop/add-human-in-the-loop": "https://docs.langchain.com/oss/python/langgraph/interrupts", + "/concepts/time-travel": "https://docs.langchain.com/oss/python/langgraph/persistence", + "/how-tos/human_in_the_loop/time-travel": "https://docs.langchain.com/oss/python/langgraph/use-time-travel", + "/concepts/subgraphs": "https://docs.langchain.com/oss/python/langgraph/use-subgraphs", + "/how-tos/subgraph": "https://docs.langchain.com/oss/python/langgraph/use-subgraphs", + "/concepts/multi_agent": "https://docs.langchain.com/oss/python/langgraph/graph-api", + "/agents/multi-agent": "https://docs.langchain.com/oss/python/langchain/multi-agent", + "/how-tos/multi_agent": "https://docs.langchain.com/oss/python/langgraph/graph-api", + "/concepts/mcp": "https://docs.langchain.com/oss/python/langgraph/overview", + "/agents/mcp": "https://docs.langchain.com/oss/python/langgraph/overview", + "/concepts/tracing": "https://docs.langchain.com/oss/python/langgraph/observability", + "/how-tos/enable-tracing": "https://docs.langchain.com/oss/python/langgraph/observability", + "/agents/evals": "https://docs.langchain.com/oss/python/langgraph/overview", + "/concepts/template_applications": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/rag/langgraph_agentic_rag": "https://docs.langchain.com/oss/python/langgraph/agentic-rag", + "/tutorials/multi_agent/agent_supervisor": "https://docs.langchain.com/oss/python/langgraph/workflows-agents", + "/tutorials/sql/sql-agent": "https://docs.langchain.com/oss/python/langgraph/sql-agent", + "/agents/ui": "https://docs.langchain.com/oss/python/langgraph/ui", + "/how-tos/run-id-langsmith": "https://docs.langchain.com/oss/python/langgraph/observability", + "/troubleshooting/errors/index": "https://docs.langchain.com/oss/python/langgraph/common-errors", + "/troubleshooting/errors/INVALID_CHAT_HISTORY": "https://docs.langchain.com/oss/python/langgraph/INVALID_CHAT_HISTORY", + "/troubleshooting/errors/INVALID_LICENSE": "https://docs.langchain.com/oss/python/langgraph/common-errors", + "/adopters": "https://docs.langchain.com/oss/python/langgraph/case-studies", + "/concepts/faq": "https://docs.langchain.com/oss/python/langgraph/overview", + "/agents/prebuilt": "https://docs.langchain.com/oss/python/langchain/agents", + "/reference/index": "https://reference.langchain.com/python/langgraph/", + "/reference/graphs": "https://reference.langchain.com/python/langgraph/graphs/", + "/reference/func": "https://reference.langchain.com/python/langgraph/func/", + "/reference/pregel": "https://reference.langchain.com/python/langgraph/pregel/", + "/reference/checkpoints": "https://reference.langchain.com/python/langgraph/checkpoints/", + "/reference/store": "https://reference.langchain.com/python/langgraph/store/", + "/reference/cache": "https://reference.langchain.com/python/langgraph/cache/", + "/reference/types": "https://reference.langchain.com/python/langgraph/types/", + "/reference/runtime": "https://reference.langchain.com/python/langgraph/runtime/", + "/reference/config": "https://reference.langchain.com/python/langgraph/config/", + "/reference/errors": "https://reference.langchain.com/python/langgraph/errors/", + "/reference/constants": "https://reference.langchain.com/python/langgraph/constants/", + "/reference/channels": "https://reference.langchain.com/python/langgraph/channels/", + "/reference/agents": "https://reference.langchain.com/python/langgraph/agents/", + "/reference/supervisor": "https://reference.langchain.com/python/langgraph/supervisor/", + "/reference/swarm": "https://reference.langchain.com/python/langgraph/swarm/", + "/reference/mcp": "https://reference.langchain.com/python/langgraph/mcp/", + "/cloud/reference/sdk/python_sdk_ref": "https://reference.langchain.com/python/langsmith/deployment/sdk/", + "/reference/remote_graph": "https://reference.langchain.com/python/langsmith/deployment/remote_graph/", + "/additional-resources/index": "https://docs.langchain.com/oss/python/langchain/overview", + "/cloud/reference/sdk/js_ts_sdk_ref": "https://reference.langchain.com/javascript/modules/langsmith.html", + "/snippets/chat_model_tabs": "https://docs.langchain.com/oss/python/langchain/overview", + "/troubleshooting/errors/GRAPH_RECURSION_LIMIT": "https://docs.langchain.com/oss/python/langgraph/GRAPH_RECURSION_LIMIT", + "/troubleshooting/errors/INVALID_CONCURRENT_GRAPH_UPDATE": "https://docs.langchain.com/oss/python/langgraph/INVALID_CONCURRENT_GRAPH_UPDATE", + "/troubleshooting/errors/INVALID_GRAPH_NODE_RETURN_VALUE": "https://docs.langchain.com/oss/python/langgraph/INVALID_GRAPH_NODE_RETURN_VALUE", + "/troubleshooting/errors/MULTIPLE_SUBGRAPHS": "https://docs.langchain.com/oss/python/langgraph/MULTIPLE_SUBGRAPHS", + "/tutorials/rag/langgraph_self_rag": "https://docs.langchain.com/oss/python/langgraph/agentic-rag", + "/additional-resources": "https://docs.langchain.com/oss/python/langgraph/overview", + "/examples": "https://docs.langchain.com/oss/python/langgraph/overview", + "/guides": "https://docs.langchain.com/oss/python/langgraph/overview", + "/how-tos/autogen-integration-functional": "https://docs.langchain.com/oss/python/langgraph/overview", + "/how-tos/cross-thread-persistence-functional": "https://docs.langchain.com/oss/python/langgraph/add-memory#add-long-term-memory", + "/how-tos/disable-streaming": "https://docs.langchain.com/oss/python/langgraph/streaming", + "/how-tos/memory/semantic-search": "https://docs.langchain.com/oss/python/langgraph/add-memory", + "/how-tos/multi-agent-multi-turn-convo-functional": "https://docs.langchain.com/oss/python/langgraph/graph-api", + "/how-tos/multi-agent-network-functional": "https://docs.langchain.com/oss/python/langgraph/graph-api", + "/how-tos/persistence-functional": "https://docs.langchain.com/oss/python/langgraph/add-memory", + "/how-tos/react-agent-from-scratch-functional": "https://docs.langchain.com/oss/python/langgraph/workflows-agents", + "/reference": "https://reference.langchain.com/python/langgraph/", + "/troubleshooting/errors": "https://docs.langchain.com/oss/python/langgraph/common-errors", + "/tutorials/chatbot-simulation-evaluation/agent-simulation-evaluation": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/chatbot-simulation-evaluation/langsmith-agent-simulation-evaluation": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/chatbots/information-gather-prompting": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/extraction/retries": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/langgraph-platform/local-server": "https://docs.langchain.com/langsmith/agent-server", + "/tutorials/lats/lats": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/llm-compiler/LLMCompiler": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/rag/langgraph_adaptive_rag_local": "https://docs.langchain.com/oss/python/langgraph/agentic-rag", + "/tutorials/rag/langgraph_crag": "https://docs.langchain.com/oss/python/langgraph/agentic-rag", + "/tutorials/rag/langgraph_crag_local": "https://docs.langchain.com/oss/python/langgraph/agentic-rag", + "/tutorials/rag/langgraph_self_rag_local": "https://docs.langchain.com/oss/python/langgraph/agentic-rag", + "/tutorials/reflection/reflection": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/reflexion/reflexion": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/rewoo/rewoo": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/self-discover/self-discover": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/tnt-llm/tnt-llm": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/tot/tot": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/usaco/usaco": "https://docs.langchain.com/oss/python/langgraph/overview", + "/tutorials/web-navigation/web_voyager": "https://docs.langchain.com/oss/python/langgraph/overview" +}