diff --git a/docs/docs/concepts/index.mdx b/docs/docs/concepts/index.mdx
index 06f12671627..ef1e91c6c2a 100644
--- a/docs/docs/concepts/index.mdx
+++ b/docs/docs/concepts/index.mdx
@@ -91,3 +91,96 @@ The conceptual guide will not cover step-by-step instructions or specific implem
- **[Vectorstores](/docs/concepts/vectorstores)**: Datastores specialized for storing and efficiently searching vector embeddings.
- **[with_structured_output](/docs/concepts/chat_models#with-structured-output)**: A helper method for chat models that natively support [tool calling](/docs/concepts/tool_calling) to get structured output matching a given schema specified via Pydantic, JSON schema or a function.
- **[with_types](/docs/concepts/runnables#with_types)**: Method to overwrite the input and output types of a runnable. Useful when working with complex LCEL chains and deploying with LangServe.
+
+export const RedirectAnchors = () => {
+ // get # anchor from url
+ const lookup = {
+ {source: "#conceptual-guide", destination: "/docs/concepts"},
+ {source: "#architecture", destination: "/docs/concepts/architecture"},
+ {source: "#langchaincore", destination: "/docs/concepts/architecture/#langchain-core"},
+ {source: "#langchain", destination: "/docs/concepts/architecture/#langchain"},
+ {source: "#langchaincommunity", destination: "/docs/concepts/architecture/#langchain-community"},
+ {source: "#partner-packages", destination: "/docs/concepts/architecture/#partner-packages"},
+ {source: "#langgraph", destination: "/docs/concepts/architecture/#langgraph"},
+ {source: "#langserve", destination: "/docs/concepts/architecture/#langserve"},
+ {source: "#langsmith", destination: "/docs/concepts/architecture/#langsmith"},
+ {source: "#langchain-expression-language-lcel", destination: "/docs/concepts/lcel"},
+ {source: "#runnable-interface", destination: "/docs/concepts/runnables"},
+ {source: "#components", destination: "/docs/concepts/"},
+ {source: "#chat-models", destination: "/docs/concepts/chat_models"},
+ {source: "#multimodality", destination: "/docs/concepts/multimodality"},
+ {source: "#llms", destination: "/docs/concepts/chat_models"},
+ {source: "#messages", destination: "/docs/concepts/messages"},
+ {source: "#humanmessage", destination: "/docs/concepts/messages/#humanmessage"},
+ {source: "#aimessage", destination: "/docs/concepts/messages/#aimessage"},
+ {source: "#systemmessage", destination: "/docs/concepts/messages/#systemmessage"},
+ {source: "#toolmessage", destination: "/docs/concepts/messages/#toolmessage"},
+ {source: "#legacy-functionmessage", destination: "/docs/concepts/messages/#legacy-functionmessage"},
+ {source: "#prompt-templates", destination: "/docs/concepts/prompt_templates"},
+ {source: "#string-prompttemplates", destination: "/docs/concepts/prompt_templates"},
+ {source: "#chatprompttemplates", destination: "/docs/concepts/prompt_templates"},
+ {source: "#messagesplaceholder", destination: "/docs/concepts/prompt_templates"},
+ {source: "#example-selectors", destination: "/docs/concepts/example_selectors"},
+ {source: "#output-parsers", destination: "/docs/concepts/output_parsers"},
+ {source: "#chat-history", destination: "/docs/concepts/chat_history"},
+ {source: "#documents", destination: "https://python.langchain.com/api_reference/core/documents/langchain_core.documents.base.Document.html"},
+ {source: "#document-loaders", destination: "/docs/concepts/document_loaders"},
+ {source: "#text-splitters", destination: "/docs/concepts/text_splitters"},
+ {source: "#embedding-models", destination: "/docs/concepts/embedding_models"},
+ {source: "#vector-stores", destination: "/docs/concepts/vectorstores"},
+ {source: "#retrievers", destination: "/docs/concepts/retrievers"},
+ {source: "#keyvalue-stores", destination: "/docs/concepts/key_value_stores"},
+ {source: "#interface", destination: "/docs/concepts/runnables"},
+ {source: "#tools", destination: "/docs/concepts/tools"},
+ {source: "#invoke-with-just-the-arguments", destination: "/docs/concepts/tools"},
+ {source: "#invoke-with-toolcall", destination: "/docs/concepts/tools"},
+ {source: "#best-practices", destination: "/docs/concepts/tools/#best-practices"},
+ {source: "#related", destination: "/docs/concepts/tools"},
+ {source: "#toolkits", destination: "/docs/concepts/toosl/#toolkits"},
+ {source: "#initialize-a-toolkit", destination: "/docs/concepts/toosl/#toolkits"},
+ {source: "#get-list-of-tools", destination: "/docs/concepts/toosl/#toolkits"},
+ {source: "#agents", destination: "/docs/concepts/agents"},
+ {source: "#react-agents", destination: "/docs/concepts/agents"},
+ {source: "#callbacks", destination: "/docs/concepts/callbacks"},
+ {source: "#callback-events", destination: "/docs/concepts/callbacks/#callback-events"},
+ {source: "#callback-handlers", destination: "/docs/concepts/callbacks/#callback-handlers"},
+ {source: "#passing-callbacks", destination: "/docs/concepts/callbacks/#passing-callbacks"},
+ {source: "#techniques", destination: "/docs/concepts/"},
+ {source: "#streaming", destination: "/docs/concepts/streaming"},
+ {source: "#stream-and-astream", destination: "/docs/concepts/streaming#stream-and-astream"},
+ {source: "#astreamevents", destination: "/docs/concepts/astream_events"},
+ {source: "#callbacks", destination: "/docs/concepts/callbacks"},
+ {source: "#tokens", destination: "/docs/concepts/tokens"},
+ {source: "#functiontool-calling", destination: "/docs/concepts/tool_calling"},
+ {source: "#tool-usage", destination: "/docs/concepts/tool_calling"},
+ {source: "#structured-output", destination: "/docs/concepts/structured_outputs"},
+ {source: "#withstructuredoutput", destination: "/docs/concepts/structured_outputs"},
+ {source: "#raw-prompting", destination: "/docs/concepts/structured_outputs"},
+ {source: "#json-mode", destination: "/docs/concepts/structured_outputs/#json-mode"},
+ {source: "#tool-calling-structuredoutputtoolcalling", destination: "/docs/concepts/structured_outputs"},
+ {source: "#fewshot-prompting", destination: "/docs/concepts/fewshot-prompting"},
+ {source: "#1-generating-examples", destination: "/docs/concepts/few_shot_prompting/1-generating-examples"},
+ {source: "#2-number-of-examples", destination: "/docs/concepts/few_shot_prompting/2-number-of-examples"},
+ {source: "#3-selecting-examples", destination: "/docs/concepts/few_shot_prompting/3-selecting-examples"},
+ {source: "#4-formatting-examples", destination: "/docs/concepts/few_shot_prompting/4-formatting-examples"},
+ {source: "#retrieval", destination: "/docs/concepts/retrieval"},
+ {source: "#query-translation", destination: "/docs/concepts/retrieval/query-construction"},
+ {source: "#routing", destination: "/docs/concepts/routing"},
+ {source: "#query-construction", destination: "/docs/concepts/retrieval/query-construction"},
+ {source: "#indexing", destination: "/docs/concepts/retrieval/"},
+ {source: "#postprocessing", destination: "/docs/concepts/retrieval/"},
+ {source: "#generation", destination: "/docs/concepts/rag"},
+ {source: "#text-splitting", destination: "/docs/concepts/text_splitting"},
+ {source: "#evaluation", destination: "/docs/concepts/evaluation"},
+ {source: "#tracing", destination: "/docs/concepts/tracing"},
+ };
+ const hash = window?.location?.hash;
+ if (hash) {
+ if (lookup[hash]) {
+ return ;
+ }
+ }
+ return null;
+}
+
+
\ No newline at end of file