Files
langflow/memory.html
github-merge-queue[bot] cbbdf09554 deploy: f57018b70a
2025-10-16 21:37:32 +00:00

186 lines
42 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-Develop/memory" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.8.1">
<title data-rh="true">Memory management options | Langflow Documentation</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.langflow.org/memory"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Memory management options | Langflow Documentation"><meta data-rh="true" name="description" content="Langflow provides flexible memory management options for storage and retrieval of data relevant to your flows and your Langflow server."><meta data-rh="true" property="og:description" content="Langflow provides flexible memory management options for storage and retrieval of data relevant to your flows and your Langflow server."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.langflow.org/memory"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/memory" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/memory" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://UZK6BDPCVY-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Manage memory","item":"https://docs.langflow.org/memory"}]}</script><link rel="preconnect" href="https://www.google-analytics.com">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-SLQFLQ3KPT"></script>
<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-SLQFLQ3KPT",{})</script>
<link rel="search" type="application/opensearchdescription+xml" title="Langflow Documentation" href="/opensearch.xml">
<script>!function(){var e="analytics",t=window[e]=window[e]||[];if(!t.initialize)if(t.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{t.invoked=!0,t.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","screen","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware","register"],t.factory=function(n){return function(){if(window[e].initialized)return window[e][n].apply(window[e],arguments);var r=Array.prototype.slice.call(arguments);if(["track","screen","alias","group","page","identify"].indexOf(n)>-1){var i=document.querySelector("link[rel='canonical']");r.push({__t:"bpc",c:i&&i.getAttribute("href")||void 0,p:location.pathname,u:location.href,s:location.search,t:document.title,r:document.referrer})}return r.unshift(n),t.push(r),t}};for(var n=0;n<t.methods.length;n++){var r=t.methods[n];t[r]=t.factory(r)}t.load=function(n,r){var i=document.createElement("script");i.type="text/javascript",i.async=!0,i.setAttribute("data-global-segment-analytics-key",e),i.src="https://cdn.segment.com/analytics.js/v1/"+n+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(i,a),t._loadOptions=r},t._writeKey="60AfGDrVxy8nAGJngo3fCYWG4LvhMAlG",t.SNIPPET_VERSION="5.2.0",t.load("60AfGDrVxy8nAGJngo3fCYWG4LvhMAlG"),t.page()}}()</script>
<script>window.__SCROLL_TRACKING_CONFIG__={selectors:[{selector:"h1, h2, h3, h4, h5, h6",eventName:"Docs.langflow.org - Heading Viewed",properties:{element_type:"heading"}},{selector:".ch-codeblock",eventName:"Docs.langflow.org - Codeblock Viewed",properties:{element_type:"code",language:"helper:codeLanguage"}}]}</script>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Sora:wght@550;600&amp;display=swap">
<script>!function(){window.semaphore=window.semaphore||[],window.ketch=function(){window.semaphore.push(arguments)};var e=document.createElement("script");e.type="text/javascript",e.src="https://global.ketchcdn.com/web/v3/config/datastax/langflow_org_web/boot.js",e.defer=e.async=!0,document.getElementsByTagName("head")[0].appendChild(e)}()</script>
<script defer="true">!function(){const e=e=>{if(window.gtag&&e.purposes&&"analytics"in e.purposes&&"targeted_advertising"in e.purposes){const n=!0===e.purposes.analytics?"granted":"denied",t=!0===e.purposes.targeted_advertising?"granted":"denied",a={analytics_storage:n,ad_personalization:t,ad_storage:t,ad_user_data:t};window.gtag("consent","update",a)}};window.ketch&&window.ketch("on","consent",e)}()</script><link rel="stylesheet" href="/assets/css/styles.5b49702d.css">
<script src="/assets/js/runtime~main.7f093dfa.js" defer="defer"></script>
<script src="/assets/js/main.0711c2d6.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/lf-docs-light.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div></a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://github.com/langflow-ai/langflow" target="_blank" class="navbar__item navbar__link header-github-link" data-event="Docs.langflow.org - Social Clicked" data-platform="github"></a><a href="https://twitter.com/langflow_ai" target="_blank" class="navbar__item navbar__link header-twitter-link" data-event="Docs.langflow.org - Social Clicked" data-platform="x"></a><a href="https://discord.gg/EqksyE2EX9" target="_blank" class="navbar__item navbar__link header-discord-link" data-event="Docs.langflow.org - Social Clicked" data-platform="discord"></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search (Command+K)"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex="-1" class="sidebarLogo_isFc" href="/"><img src="/img/lf-docs-light.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--dark_xIcU"></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/">Get started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/concepts-overview">Flows</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/agents">Agents</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/mcp-client">Model Context Protocol (MCP)</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" href="/api-keys-and-authentication">Develop</a></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/api-keys-and-authentication">API keys and authentication</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/install-custom-dependencies">Install custom dependencies</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/configuration-global-variables">Global variables</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/environment-variables">Environment variables</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" tabindex="0" href="/concepts-file-management">Storage and memory</a></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/concepts-file-management">Manage files</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/memory">Manage memory</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/session-id">Use Session IDs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/configuration-custom-database">Configure an external PostgreSQL database</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/enterprise-database-guide">Database guide for enterprise administrators</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/logging">Observability</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/data-types">Use Langflow data types</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/concepts-voice-mode">Use voice mode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/configuration-cli">Use the Langflow CLI</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/deployment-overview">Deploy</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/concepts-components">Components reference</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/api-reference-api-examples">API reference</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/contributing-community">Contribute</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/release-notes">Release notes</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/troubleshoot">Support</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 sidebar-ad">
<a href="https://www.langflow.org/desktop" target="_blank" class="menu__link">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1645_37)">
<path d="M12 17H20C21.1046 17 22 16.1046 22 15V13M12 17H4C2.89543 17 2 16.1046 2 15V5C2 3.89543 2.89543 3 4 3H10M12 17V21M8 21H12M12 21H16M11.75 10.2917H13.2083L16.125 7.375H17.5833L20.5 4.45833H21.9583M16.125 11.75H17.5833L20.5 8.83333H21.9583M11.75 5.91667H13.2083L16.125 3H17.5833" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_1645_37">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>
<div class="sidebar-ad-text-container">
<span class="sidebar-ad-text">Get started in minutes</span>
<span class="sidebar-ad-text sidebar-ad-text-gradient">Download Langflow Desktop</span>
</div>
</a>
</li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Develop</span></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Storage and memory</span></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Manage memory</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Memory management options</h1></header><style>[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }</style>
<p>Langflow provides flexible memory management options for storage and retrieval of data relevant to your flows and your Langflow server.
This includes essential Langflow database tables, file management, and caching, as well as chat memory.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="storage-options-and-paths">Storage options and paths<a href="#storage-options-and-paths" class="hash-link" aria-label="Direct link to Storage options and paths" title="Direct link to Storage options and paths"></a></h2>
<p>Langflow supports both local memory and external memory options.</p>
<p>Langflow&#x27;s default storage option is a <a href="https://www.sqlite.org/" target="_blank" rel="noopener noreferrer">SQLite</a> database.
The default storage path depends on your operating system and installation method:</p>
<ul>
<li><strong>Langflow Desktop</strong>:<!-- -->
<ul>
<li><strong>macOS</strong>: <code>/Users/&lt;username&gt;/.langflow/data/database.db</code></li>
<li><strong>Windows</strong>: <code>C:\Users\&lt;name&gt;\AppData\Roaming\com.Langflow\data\langflow.db</code></li>
</ul>
</li>
<li><strong>Langflow OSS</strong>
<ul>
<li><strong>macOS/Windows/Linux/WSL with <code>uv pip install</code></strong>: <code>&lt;path_to_venv&gt;/lib/python3.12/site-packages/langflow/langflow.db</code> (Python version can vary. Database isn&#x27;t shared between virtual environments because it is tied to the venv path.)</li>
<li><strong>macOS/Windows/Linux/WSL with <code>git clone</code></strong>: <code>&lt;path_to_clone&gt;/src/backend/base/langflow/langflow.db</code></li>
</ul>
</li>
</ul>
<p>Langflow offers a few alternatives to the default database path:</p>
<ul>
<li>
<p><strong>Config directory</strong>: Set <code>LANGFLOW_SAVE_DB_IN_CONFIG_DIR=True</code> to store the database in your Langflow config directory as set in <a href="/logging"><code>LANGFLOW_CONFIG_DIR</code></a>.</p>
</li>
<li>
<p><strong>External PostgreSQL database</strong>: You can use an external PostgreSQL database for all of your Langflow storage.
For more information, see <a href="#configure-external-memory">Configure external memory</a></p>
<p>External storage can be useful if you want to preserve the data after uninstalling Langflow or to share the same database between multiple virtual environments.</p>
</li>
<li>
<p><strong>Separate chat memory</strong>: You can selectively use external storage for chat memory only, separate from other Langflow storage.
For more information, see <a href="#store-chat-memory">Store chat memory</a>.</p>
</li>
<li>
<p><strong>No database</strong>: To disable all database operations and run a no-op session, set <code>LANGFLOW_USE_NOOP_DATABASE=True</code> in your <a href="/environment-variables">Langflow environment variables</a>.
This is useful for testing when you don&#x27;t want to persist any data.</p>
</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="langflow-database-tables">Langflow database tables<a href="#langflow-database-tables" class="hash-link" aria-label="Direct link to Langflow database tables" title="Direct link to Langflow database tables"></a></h2>
<p>The following tables are stored in <code>langflow.db</code>:</p>
<p><strong>ApiKey</strong>: Manages Langflow API authentication keys. Component API keys are stored in the <strong>Variables</strong> table. For more information, see <a href="/api-keys-and-authentication">API keys and authentication</a>.</p>
<p><strong>File</strong>: Stores metadata for files uploaded to Langflow&#x27;s file management system, including file names, paths, sizes, and storage providers. For more information, see <a href="/concepts-file-management">Manage files</a>.</p>
<p><strong>Flow</strong>: Contains flow definitions, including nodes, edges, and components, stored as JSON or database records. For more information, see <a href="/concepts-flows">Build flows</a>.</p>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_BuS1"><p>To automatically remove API keys and tokens from flow data before saving a flow to the database, set <code>LANGFLOW_REMOVE_API_KEYS=True</code> in your <a href="/environment-variables">Langflow environment variables</a>.
When <code>true</code>, any field marked as a password field that <em>also</em> has <code>api</code>, <code>key</code>, or <code>token</code> in its name is set to <code>null</code> before the flow is saved.
This helps prevent credentials from being stored in the database.</p></div></div>
<p><strong>Folder</strong>: Provides a structure for flow storage, including single-user folders and shared folders accessed by multiple users. For more information, see <a href="/concepts-flows#projects">Manage flows in projects</a>.</p>
<p><strong>Message</strong>: Stores chat messages and interactions that occur between components. For more information, see <a href="/data-types#message">Message objects</a> and <a href="#store-chat-memory">Store chat memory</a>.</p>
<p><strong>Transactions</strong>: Records execution history and results of flow runs. This information is used for <a href="/logging">logging</a>.</p>
<p><strong>User</strong>: Stores user account information including credentials, permissions, profiles, and user management settings. For more information, see <a href="/api-keys-and-authentication">API keys and authentication</a>.</p>
<p><strong>Variables</strong>: Stores global encrypted values and credentials. For more information, see <a href="/configuration-global-variables">Global variables</a> and <a href="/api-keys-and-authentication#component-api-keys">Component API keys</a>.</p>
<p><strong>VertexBuild</strong>: Tracks the build status of individual nodes within flows. For more information, see <a href="/concepts-playground">Test flows in the Playground</a>.</p>
<p>For more information, see the database models in the <a href="https://github.com/langflow-ai/langflow/tree/main/src/backend/base/langflow/services/database/models" target="_blank" rel="noopener noreferrer">source code</a>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="configure-external-memory">Configure external memory<a href="#configure-external-memory" class="hash-link" aria-label="Direct link to Configure external memory" title="Direct link to Configure external memory"></a></h2>
<p>To replace the default Langflow SQLite database with another database, set the <code>LANGFLOW_DATABASE_URL</code> environment variable to your database URL, and then start Langflow with your <code>.env</code> file.
For more information and examples, see <a href="/configuration-custom-database">Configure an external PostgreSQL database</a>.</p>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow</span></div></div><br></code></div></div>
<p>To fine-tune your database connection pool and timeout settings, you can set the following additional environment variables:</p>
<ul>
<li>
<p><code>LANGFLOW_DATABASE_CONNECTION_RETRY</code>: Whether to retry lost connections to your Langflow database. If <code>true</code>, Langflow tries to connect to the database again if the connection fails. Default: <code>false</code>.</p>
</li>
<li>
<p><code>LANGFLOW_DB_CONNECT_TIMEOUT</code>: The number of seconds to wait before giving up on a lock to be released or establishing a connection to the database. This may be separate from the <code>pool_timeout</code> in <code>LANGFLOW_DB_CONNECTION_SETTINGS</code>. Default: 30.</p>
</li>
<li>
<p><code>LANGFLOW_DB_CONNECTION_SETTINGS</code>: A a JSON dictionary containing the following database connection pool settings:</p>
<ul>
<li><code>pool_size</code>: The base number of connections to keep open in the connection pool. Default: 20.</li>
<li><code>max_overflow</code>: Maximum number of connections that can be created in excess of <code>pool_size</code> if needed. Default: 30.</li>
<li><code>pool_timeout</code>: Number of seconds to wait for a connection from the pool before timing out. Default: 30.</li>
<li><code>pool_pre_ping</code>: If <code>true</code>, the pool tests connections for liveness upon each checkout. Default: <code>true</code>.</li>
<li><code>pool_recycle</code>: Number of seconds after which a connection is automatically recycled. Default: 1800 (30 minutes).</li>
<li><code>echo</code>: If <code>true</code>, SQL queries are logged for debugging purposes. Default: <code>false</code>.</li>
</ul>
<p>For example:</p>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>LANGFLOW_DB_CONNECTION_SETTINGS=&#x27;{&quot;pool_size&quot;: 20, &quot;max_overflow&quot;: 30, &quot;pool_timeout&quot;: 30, &quot;pool_pre_ping&quot;: true, &quot;pool_recycle&quot;: 1800, &quot;echo&quot;: false}&#x27;</span></div></div><br></code></div></div>
<p>Don&#x27;t use the deprecated environment variables <code>LANGFLOW_DB_POOL_SIZE</code> or <code>LANGFLOW_DB_MAX_OVERFLOW</code>.
Instead, use <code>pool_size</code> and <code>max_overflow</code> in <code>LANGFLOW_DB_CONNECTION_SETTINGS</code>.</p>
</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="configure-cache-memory">Configure cache memory<a href="#configure-cache-memory" class="hash-link" aria-label="Direct link to Configure cache memory" title="Direct link to Configure cache memory"></a></h2>
<p>The default Langflow caching behavior is an asynchronous, in-memory cache:</p>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>LANGFLOW_LANGCHAIN_CACHE=InMemoryCache</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>LANGFLOW_CACHE_TYPE=async</span></div></div><br></code></div></div>
<p>Langflow officially supports only the default asynchronous, in-memory cache, which is suitable for most use cases.
Other cache options, such as Redis, are experimental and can change without notice.
If you want to use a non-default cache setting, you can use the following environment variables:</p>
<table><thead><tr><th>Variable</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>LANGFLOW_CACHE_TYPE</code></td><td>String</td><td><code>async</code></td><td>Set the cache type for Langflow&#x27;s internal caching system. Possible values: <code>async</code>, <code>redis</code>, <code>memory</code>, <code>disk</code>. If you set the type to <code>redis</code>, then you must also set the <code>LANGFLOW_REDIS_*</code> environment variables.</td></tr><tr><td><code>LANGFLOW_LANGCHAIN_CACHE</code></td><td>String</td><td><code>InMemoryCache</code></td><td>Set the cache storage type for the LangChain caching system (a Langflow dependency), either <code>InMemoryCache</code> or <code>SQLiteCache</code>.</td></tr><tr><td><code>LANGFLOW_REDIS_HOST</code></td><td>String</td><td><code>localhost</code></td><td>Redis server hostname if <code>LANGFLOW_CACHE_TYPE=redis</code>.</td></tr><tr><td><code>LANGFLOW_REDIS_PORT</code></td><td>Integer</td><td><code>6379</code></td><td>Redis server port if <code>LANGFLOW_CACHE_TYPE=redis</code>.</td></tr><tr><td><code>LANGFLOW_REDIS_DB</code></td><td>Integer</td><td><code>0</code></td><td>Redis database number if <code>LANGFLOW_CACHE_TYPE=redis</code>.</td></tr><tr><td><code>LANGFLOW_REDIS_CACHE_EXPIRE</code></td><td>Integer</td><td><code>3600</code></td><td>Cache expiration time in seconds if <code>LANGFLOW_CACHE_TYPE=redis</code>.</td></tr><tr><td><code>LANGFLOW_REDIS_PASSWORD</code></td><td>String</td><td>Not set</td><td>Optional password for Redis authentication if <code>LANGFLOW_CACHE_TYPE=redis</code>.</td></tr></tbody></table>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="store-chat-memory">Store chat memory<a href="#store-chat-memory" class="hash-link" aria-label="Direct link to Store chat memory" title="Direct link to Store chat memory"></a></h2>
<p>Chat-based flows with a <strong>Chat Input</strong> or <strong>Chat Output</strong> component produce chat history that is stored in the Langflow <code>messages</code> table.
At minimum, this serves as a chat log, but it isn&#x27;t functionally the same as chat memory that provides historical context to an LLM.</p>
<p>To store and retrieve chat memories in flows, you can use a <strong>Message History</strong> component or the <strong>Agent</strong> component&#x27;s built-in chat memory.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>How does chat memory work?</summary><div><div class="collapsibleContent_i85q"><p>Chat memory is a cache for an LLM or agent to preserve past conversations to retain and reference that context in future interactions.
For example, if a user has already told the LLM their name, the LLM can retrieve that information from chat memory rather than asking the user to repeat themselves in future conversations or messages.</p><p>Chat memory is distinct from vector store memory because it is built specifically for storing and retrieving chat messages from databases.</p><p>Components that support chat memory (such as the <strong>Agent</strong> and <strong>Message History</strong> components) provide access to their respective databases <em>as memory</em>.
Retrieval as memory is an important distinction for LLMs and agents because this storage and retrieval mechanism is specifically designed to recall context from past conversations.
Unlike vector stores, which are designed for semantic search and retrieval of text chunks, chat memory is designed to store and retrieve chat messages in a way that is optimized for conversation history.</p></div></div></details>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="session-id-and-chat-memory">Session ID and chat memory<a href="#session-id-and-chat-memory" class="hash-link" aria-label="Direct link to Session ID and chat memory" title="Direct link to Session ID and chat memory"></a></h3>
<p>Chat history and memories are grouped by <a href="/session-id">session ID (<code>session_id</code>)</a>.</p>
<p>The default session ID is the flow ID, which means that all chat messages for a flow are stored under the same session ID as one large chat session.</p>
<p>For better segregation of chat memory, especially in flows used by multiple users, consider using custom session IDs.
For example, if you use user IDs as session IDs, then each user&#x27;s chat history is stored separately, isolating the context of their chats from other users&#x27; chats.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="chat-memory-options">Chat memory options<a href="#chat-memory-options" class="hash-link" aria-label="Direct link to Chat memory options" title="Direct link to Chat memory options"></a></h3>
<p>Where and how chat memory is stored depends on the components used in your flow:</p>
<ul>
<li>
<p><strong>Agent component</strong>: This component has built-in chat memory that is enabled by default.
This memory allows the agent to retrieve and reference messages from previous conversations associated with the same session ID.
All messages are stored in <a href="#storage-options-and-paths">Langflow storage</a>, and the component provides minimal memory configuration options, such as the number of messages to retrieve.</p>
<p>The <strong>Agent</strong> component&#x27;s built-in chat memory is sufficient for most use cases.</p>
<p>If you want to use external chat memory storage, retrieve memories outside the context of a chat, or use chat memory with a language model component (not an agent), you must use the <strong>Message History</strong> component (with or without a third-party chat memory component).</p>
</li>
<li>
<p><strong>Message History component</strong>: By default, this component stores and retrieves memories from Langflow storage, unless you attach a third-party chat memory component. It provides a few more options for sorting and filtering memories, although most of these options are also built-in to the <strong>Agent</strong> component as configurable or fixed parameters.</p>
<p>You can use the <strong>Message History</strong> component with or without a language model or agent.
For example, if you need to retrieve data from memories outside of chat, you can use the <strong>Message History</strong> component to fetch that data directly from your chat memory database without feeding it into a chat.</p>
</li>
<li>
<p><strong>Third-party chat memory components</strong>: Use one of these components only if you need to store or retrieve chat memories from a dedicated external chat memory database.
Typically, this is necessary only if you have specific storage needs that aren&#x27;t met by Langflow storage.
For example, if you want to manage chat memory data by directly working with the database, or if you want to use a different database than the default Langflow storage.</p>
</li>
</ul>
<p>For more information and examples, see <a href="/components-helpers#message-history"><strong>Message History</strong> component</a> and <a href="/agents#agent-memory">Agent memory</a>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="see-also">See also<a href="#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also"></a></h2>
<ul>
<li><a href="/concepts-file-management">Langflow file management</a></li>
<li><a href="/logging">Langflow logs</a></li>
<li><a href="/environment-variables">Langflow environment variables</a></li>
</ul></div></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/concepts-file-management"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Manage files</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/session-id"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Use Session IDs</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#storage-options-and-paths" class="table-of-contents__link toc-highlight">Storage options and paths</a></li><li><a href="#langflow-database-tables" class="table-of-contents__link toc-highlight">Langflow database tables</a></li><li><a href="#configure-external-memory" class="table-of-contents__link toc-highlight">Configure external memory</a></li><li><a href="#configure-cache-memory" class="table-of-contents__link toc-highlight">Configure cache memory</a></li><li><a href="#store-chat-memory" class="table-of-contents__link toc-highlight">Store chat memory</a><ul><li><a href="#session-id-and-chat-memory" class="table-of-contents__link toc-highlight">Session ID and chat memory</a></li><li><a href="#chat-memory-options" class="table-of-contents__link toc-highlight">Chat memory options</a></li></ul></li><li><a href="#see-also" class="table-of-contents__link toc-highlight">See also</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title"></div><ul class="footer__items clean-list"><li class="footer__item"><div class="footer-links">
<span>© 2025 Langflow</span>
<span id="preferenceCenterContainer"> ·&nbsp; <a href="https://langflow.org/preferences">Manage Privacy Choices</a></span>
</div></li></ul></div></div></div></footer><div style="position:fixed;right:21px;bottom:21px;z-index:100;display:flex;align-items:center;gap:10px;cursor:pointer"><div style="background-color:#f6f6f6;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px rgba(0,0,0,0.1)"><img src="/img/langflow-icon-black-transparent.svg" style="width:40px" alt="Search"></div></div></div>
</body>
</html>