This example shows how you can configure the Memory Manager and Summarizer models individually.In this example, we use OpenRouter and LLama 3.3-70b-instruct for the memory manager and Claude 3.5 Sonnet for the summarizer, while using Gemini for the Agent.We also set custom system prompts for the memory manager and summarizer.
from agno.agent.agent import Agentfrom agno.memory.v2.db.sqlite import SqliteMemoryDbfrom agno.memory.v2.memory import Memory, MemoryManager, SessionSummarizerfrom agno.models.anthropic.claude import Claudefrom agno.models.google.gemini import Geminifrom agno.models.openrouter.openrouter import OpenRouterfrom rich.pretty import pprintmemory_db = SqliteMemoryDb(table_name="memory", db_file="tmp/memory.db")# You can also override the entire `system_message` for the memory managermemory_manager = MemoryManager( model=OpenRouter(id="meta-llama/llama-3.3-70b-instruct"), additional_instructions=""" IMPORTANT: Don't store any memories about the user's name. Just say "The User" instead of referencing the user's name. """,)# You can also override the entire `system_message` for the session summarizersession_summarizer = SessionSummarizer( model=Claude(id="claude-3-5-sonnet-20241022"), additional_instructions=""" Make the summary very informal and conversational. """,)memory = Memory( db=memory_db, memory_manager=memory_manager, summarizer=session_summarizer,)# Reset the memory for this examplememory.clear()john_doe_id = "john_doe@example.com"agent = Agent( model=Gemini(id="gemini-2.0-flash-exp"), memory=memory, enable_user_memories=True, enable_session_summaries=True, user_id=john_doe_id,)agent.print_response( "My name is John Doe and I like to swim and play soccer.", stream=True)agent.print_response("I dont like to swim", stream=True)memories = memory.get_user_memories(user_id=john_doe_id)print("John Doe's memories:")pprint(memories)summary = agent.get_session_summary()print("Session summary:")pprint(summary)
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Agno","colors":{"primary":"#FF4017","light":"#FF4017","dark":"#FF4017"},"logo":{"light":"https://mintcdn.com/agno/QZOB15dhrj4yAmBd/logo/black.svg?fit=max\u0026auto=format\u0026n=QZOB15dhrj4yAmBd\u0026q=85\u0026s=0ba9fbc41180e137818459edce954a48","dark":"https://mintcdn.com/agno/QZOB15dhrj4yAmBd/logo/white.svg?fit=max\u0026auto=format\u0026n=QZOB15dhrj4yAmBd\u0026q=85\u0026s=cc65cdfdc78638474d1c108480698d29"},"favicon":"/favicon.png","background":{"color":{"light":"#FFFFFF","dark":"#111113"}},"navbar":{"links":[{"label":"Discord","href":"https://agno.link/discord"},{"label":"Community","href":"https://community.agno.com/"}],"primary":{"type":"github","href":"https://github.com/agno-agi/agno"}},"footer":{"socials":{"x":"https://x.com/AgnoAgi","github":"https://github.com/agno-agi/agno","discord":"https://agno.link/discord","youtube":"https://agno.link/youtube","website":"https://agno.com"}},"fonts":{"heading":{"family":"Inter","weight":750},"body":{"family":"Inter","weight":400}},"integrations":{"posthog":{"apiKey":"phc_MjuWiUsZe9racJUG1IpiikP0gPInPwL0206gjfsBWSk"}},"banner":{"content":"You are viewing v1 docs. For the latest documentation, visit [docs.agno.com](https://docs.agno.com)","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude"]},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"agno","hasAudioNarration":false,"actualSubdomain":"agno","customDomains":["docs-v1.agno.com"],"gitSource":{"type":"github","owner":"agno-agi","repo":"agno-docs-v1","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21f61f52911a466b87d396","collectionId":"d9a42b83-85e4-4208-af5f-52ac21b1a434","schemaVersion":"v2"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a21f61f52911a466b87d396:success","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Examples","count":737},{"language":"default","tag":"Models","count":305},{"language":"default","tag":"User Guide","count":292},{"language":"default","tag":"Agent Concepts","count":284},{"language":"default","tag":"Concepts","count":268},{"language":"default","tag":"Tools","count":200},{"language":"default","tag":"API reference","count":125},{"language":"default","tag":"Reference","count":125},{"language":"default","tag":"Toolkits","count":89},{"language":"default","tag":"Knowledge","count":73}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#banner p{font-weight:500}#banner a{text-decoration:underline;text-decoration-color:#fff}"}],"page":{"pagePath":"examples/concepts/memory/09-custom-memory","slug":"/examples/concepts/memory/09-custom-memory","pageMetadata":{"title":"Custom Memory","description":null,"href":"/examples/concepts/memory/09-custom-memory"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Step,Steps}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`This example shows how you can configure the Memory Manager and Summarizer models individually.`}),`\n`,_jsx(_components.p,{children:`In this example, we use OpenRouter and LLama 3.3-70b-instruct for the memory manager and Claude 3.5 Sonnet for the summarizer, while using Gemini for the Agent.`}),`\n`,_jsx(_components.p,{children:`We also set custom system prompts for the memory manager and summarizer.`}),`\n`,_jsx(Heading,{level:`2`,id:`code`,children:`Code`}),`\n`,_jsx(CodeBlock,{filename:`cookbook/agent_concepts/memory/10_custom_memory.py`,numberOfLines:`59`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`59`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` agno.agent.agent `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Agent`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` agno.memory.v2.db.sqlite `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` SqliteMemoryDb`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` agno.memory.v2.memory `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Memory, MemoryManager, SessionSummarizer`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` agno.models.anthropic.claude `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Claude`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` agno.models.google.gemini `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Gemini`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` agno.models.openrouter.openrouter `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` OpenRouter`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` rich.pretty `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pprint`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`memory_db `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` SqliteMemoryDb(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`table_name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"memory\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`db_file`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"tmp/memory.db\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:\"# You can also override the entire `system_message` for the memory manager\"})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`memory_manager `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` MemoryManager(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` model`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`OpenRouter(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"meta-llama/llama-3.3-70b-instruct\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` additional_instructions`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` IMPORTANT: Don't store any memories about the user's name. Just say \"The User\" instead of referencing the user's name.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:\"# You can also override the entire `system_message` for the session summarizer\"})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`session_summarizer `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` SessionSummarizer(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` model`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Claude(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"claude-3-5-sonnet-20241022\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` additional_instructions`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Make the summary very informal and conversational.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`memory `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Memory(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` db`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`memory_db,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` memory_manager`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`memory_manager,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` summarizer`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`session_summarizer,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Reset the memory for this example`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`memory.clear()`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`john_doe_id `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"john_doe@example.com\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`agent `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Agent(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` model`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Gemini(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"gemini-2.0-flash-exp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` memory`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`memory,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` enable_user_memories`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` enable_session_summaries`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` user_id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`john_doe_id,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`agent.print_response(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"My name is John Doe and I like to swim and play soccer.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`stream`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`agent.print_response(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"I dont like to swim\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`stream`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`memories `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` memory.get_user_memories(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`user_id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`john_doe_id)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"John Doe's memories:\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`pprint(memories)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`summary `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` agent.get_session_summary()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Session summary:\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`pprint(summary)`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`usage`,children:`Usage`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Create a virtual environment`,children:[_jsxs(_components.p,{children:[`Open the `,_jsx(_components.code,{children:`Terminal`}),` and create a python virtual environment.`]}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Mac`,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`python3`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -m`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` venv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` .venv`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`source`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` .venv/bin/activate`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Windows`,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`python3`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -m`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` venv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` .venv`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`.venv/scripts/activate`})}),`\n`]})})})]})]}),_jsx(Step,{title:`Install libraries`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pip`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -U`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` agno`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` rich`})]}),`\n`]})})})}),_jsx(Step,{title:`Run Example`,children:_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Mac`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`python`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cookbook/agent_concepts/memory/10_custom_memory.py`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Windows`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`python`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cookbook/agent_concepts/memory/10_custom_memory.py`})]}),`\n`]})})})]})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Custom Memory","description":null,"href":"/examples/concepts/memory/09-custom-memory"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Code","slug":"code","depth":2,"children":[]},{"title":"Usage","slug":"usage","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"agno","siteName":"Agno","title":"Custom Memory - Agno","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-07T05:50:43.605Z","originalFileLocation":"examples/concepts/memory/09-custom-memory.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Agno\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agno/1IeQnW4BtURu6duG/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/agno/1IeQnW4BtURu6duG/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agno/1IeQnW4BtURu6duG/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agno/1IeQnW4BtURu6duG/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agno/1IeQnW4BtURu6duG/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agno/1IeQnW4BtURu6duG/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agno/1IeQnW4BtURu6duG/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agno/1IeQnW4BtURu6duG/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agno/1IeQnW4BtURu6duG/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Custom Memory - Agno\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Agno\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs-v1.agno.com/examples/concepts/memory/09-custom-memory\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://agno.mintlify.app/_mintlify/api/og/v2?division=Memory\u0026amp;title=Custom+Memory\u0026amp;theme=e38b262bc1335eecb906c7a3\u0026amp;signature=6f3cf1038f10f09cdffa78922cc934dc81d0641a98a7a03198e139fd8209b872\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Custom Memory - Agno\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://agno.mintlify.app/_mintlify/api/og/v2?division=Memory\u0026amp;title=Custom+Memory\u0026amp;theme=e38b262bc1335eecb906c7a3\u0026amp;signature=6f3cf1038f10f09cdffa78922cc934dc81d0641a98a7a03198e139fd8209b872\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/agno/1IeQnW4BtURu6duG/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Agno\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF4017\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs-v1.agno.com/examples/concepts/memory/09-custom-memory\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/examples/concepts/memory/09-custom-memory.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs-v1.agno.com/#organization\",\"name\":\"Agno\",\"url\":\"https://docs-v1.agno.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/agno/QZOB15dhrj4yAmBd/logo/black.svg?fit=max\u0026auto=format\u0026n=QZOB15dhrj4yAmBd\u0026q=85\u0026s=0ba9fbc41180e137818459edce954a48\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs-v1.agno.com#website\",\"name\":\"Agno\",\"url\":\"https://docs-v1.agno.com\",\"publisher\":{\"@id\":\"https://docs-v1.agno.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs-v1.agno.com/examples/concepts/memory/09-custom-memory#webpage\",\"url\":\"https://docs-v1.agno.com/examples/concepts/memory/09-custom-memory\",\"name\":\"Custom Memory\",\"dateModified\":\"2026-01-07T05:50:43.605Z\",\"isPartOf\":{\"@id\":\"https://docs-v1.agno.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs-v1.agno.com/examples/concepts/memory/09-custom-memory#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs-v1.agno.com/examples/concepts/memory/09-custom-memory#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Agent Concepts\",\"item\":\"https://docs-v1.agno.com/examples/concepts/reasoning/agents/basic-cot\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Memory\",\"item\":\"https://docs-v1.agno.com/examples/concepts/memory/00-built-in-memory\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Custom Memory\",\"item\":\"https://docs-v1.agno.com/examples/concepts/memory/09-custom-memory\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs-v1.agno.com/examples/concepts/memory/09-custom-memory#article\",\"headline\":\"Custom Memory\",\"name\":\"Custom Memory\",\"url\":\"https://docs-v1.agno.com/examples/concepts/memory/09-custom-memory\",\"mainEntityOfPage\":{\"@id\":\"https://docs-v1.agno.com/examples/concepts/memory/09-custom-memory#webpage\"},\"dateModified\":\"2026-01-07T05:50:43.605Z\",\"publisher\":{\"@id\":\"https://docs-v1.agno.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs-v1.agno.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Agno\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Agno","nav":{"global":null,"tabs":[{"tab":"User Guide","pages":[{"title":"User Guide","href":"/introduction"}]},{"tab":"Examples","groups":[{"group":"Examples","pages":[{"title":"Examples Gallery","sidebarTitle":"Examples","href":"/examples/introduction"},{"group":"Getting Started","pages":[{"title":"Introduction","href":"/examples/getting-started/introduction"},{"title":"Basic Agent","href":"/examples/getting-started/basic-agent"},{"title":"Agent with Tools","href":"/examples/getting-started/agent-with-tools"},{"title":"Agent with Knowledge","href":"/examples/getting-started/agent-with-knowledge"},{"title":"Agent with Storage","href":"/examples/getting-started/agent-with-storage"},{"title":"Agent Team","href":"/examples/getting-started/agent-team"},{"title":"Structured Output","href":"/examples/getting-started/structured-output"},{"title":"Custom Tools","href":"/examples/getting-started/custom-tools"},{"title":"Research Agent","href":"/examples/getting-started/research-agent"},{"title":"Research Workflow","href":"/examples/getting-started/research-workflow"},{"title":"Image Agent","href":"/examples/getting-started/image-agent"},{"title":"Image Generation","href":"/examples/getting-started/image-generation"},{"title":"Video Generation","href":"/examples/getting-started/video-generation"},{"title":"Audio Agent","href":"/examples/getting-started/audio-agent"},{"title":"Agent State","href":"/examples/getting-started/agent-state"},{"title":"Agent Context","href":"/examples/getting-started/agent-context"},{"title":"Agent Session","href":"/examples/getting-started/agent-session"},{"title":"User Memories","href":"/examples/getting-started/user-memories"},{"title":"Retry Functions","href":"/examples/getting-started/retry-functions"},{"title":"Human in the Loop","href":"/examples/getting-started/human-in-the-loop"}]},{"group":"Agents","pages":[{"title":"Finance Agent","href":"/examples/agents/finance-agent"},{"title":"Tweet Analysis Agent","href":"/examples/agents/tweet-analysis-agent"},{"title":"Youtube Agent","href":"/examples/agents/youtube-agent"},{"title":"Research Agent","href":"/examples/agents/research-agent"},{"title":"Research Agent using Exa","href":"/examples/agents/research-agent-exa"},{"title":"Teaching Assistant","href":"/examples/agents/teaching-assistant"},{"title":"Recipe Creator","href":"/examples/agents/recipe-creator"},{"title":"Movie Recommender","href":"/examples/agents/movie-recommender"},{"title":"Books Recommender","href":"/examples/agents/books-recommender"},{"title":"Travel Agent","href":"/examples/agents/travel-planner"},{"title":"Startup Analyst Agent","href":"/examples/agents/startup-analyst-agent"}]},{"group":"Teams","pages":[{"group":"Modes","pages":[{"group":"Collaborate","pages":[{"title":"Discussion Team","href":"/examples/teams/collaborate/discussion_team"}]},{"group":"Coordinate","pages":[{"title":"Autonomous Startup Team","href":"/examples/teams/coordinate/autonomous_startup_team"},{"title":"HackerNews Team","href":"/examples/teams/coordinate/hackernews_team"},{"title":"News Agency Team","href":"/examples/teams/coordinate/news_agency_team"}]},{"group":"Route","pages":[{"title":"AI Support Team","href":"/examples/teams/route/ai_support_team"},{"title":"Multi Language Team","href":"/examples/teams/route/multi_language_team"}]}]},{"group":"Shared State","pages":[{"title":"Team Session State","href":"/examples/teams/shared_state/team_session_state"}]}]},{"group":"Workflows","pages":[{"title":"Agentic Deep Researcher","href":"/examples/workflows/agentic-deep-researcher"},{"title":"Blog Post Generator","href":"/examples/workflows/blog-post-generator"},{"title":"Research Report Generator","href":"/examples/workflows/investment-report-generator"},{"title":"Personalized Email Generator","href":"/examples/workflows/personalized-email-generator"},{"title":"Startup Idea Validator","href":"/examples/workflows/startup-idea-validator"},{"title":"Content Creator","href":"/examples/workflows/content-creator"},{"title":"Product Manager","href":"/examples/workflows/product-manager"},{"title":"Team Workflow","href":"/examples/workflows/team-workflow"},{"title":"Async Hacker News Reporter","href":"/examples/workflows/async-hackernews-reporter"}]},{"group":"Workflows v2 (Beta)","pages":[{"group":"Basic Workflows","pages":[{"title":"Function instead of steps","href":"/examples/workflows_2/01-basic-workflows/function_instead_of_steps"},{"title":"Sequence of functions and agents","href":"/examples/workflows_2/01-basic-workflows/sequence_of_functions_and_agents"},{"title":"Sequence of steps","href":"/examples/workflows_2/01-basic-workflows/sequence_of_steps"},{"title":"Step with function","href":"/examples/workflows_2/01-basic-workflows/step_with_function"},{"title":"Workflow using steps","href":"/examples/workflows_2/01-basic-workflows/workflow_using_steps"},{"title":"Workflow using Steps with Nested Pattern","href":"/examples/workflows_2/01-basic-workflows/workflow_using_steps_nested"}]},{"group":"Conditional Execution","pages":[{"title":"Condition steps workflow","href":"/examples/workflows_2/02-workflows-conditional-execution/condition_steps_workflow_stream"},{"title":"Condition with list of steps","href":"/examples/workflows_2/02-workflows-conditional-execution/condition_with_list_of_steps"},{"title":"Condition and Parallel Steps Workflow","href":"/examples/workflows_2/02-workflows-conditional-execution/condition_and_parallel_steps_stream"}]},{"group":"Parallel Execution","pages":[{"title":"Parallel Steps Workflow","href":"/examples/workflows_2/04-workflows-parallel-execution/parallel_steps_workflow"}]},{"group":"Loop Execution","pages":[{"title":"Loop Steps Workflow","href":"/examples/workflows_2/03-workflows-loop-execution/loop_steps_workflow"},{"title":"Loop with Parallel Steps Workflow","href":"/examples/workflows_2/03-workflows-loop-execution/loop_with_parallel_steps_stream"}]},{"group":"Conditional Branching (Router)","pages":[{"title":"Conditional Branching Workflow","href":"/examples/workflows_2/05-workflows-conditional-branching/router_steps_workflow"},{"title":"Router with Loop Steps Workflow","href":"/examples/workflows_2/05-workflows-conditional-branching/router_with_loop_steps"},{"title":"Selector for Image Video Generation Pipelines","href":"/examples/workflows_2/05-workflows-conditional-branching/selector_for_image_video_generation_pipelines"}]},{"group":"Advanced Concepts","pages":[{"title":"Early Stop a Workflow","href":"/examples/workflows_2/06-workflows-advanced-concepts/early_stop_workflow"},{"title":"Step with Function using Additional Data","href":"/examples/workflows_2/06-workflows-advanced-concepts/step_with_function_additional_data"},{"title":"Access Multiple Previous Steps Output","href":"/examples/workflows_2/06-workflows-advanced-concepts/access_multiple_previous_steps_output"},{"title":"Store Events and Events to Skip in a Workflow","href":"/examples/workflows_2/06-workflows-advanced-concepts/store_events_and_events_to_skip_in_a_workflow"},{"title":null,"href":"/examples/workflows_2/06-workflows-advanced-concepts/structured_io_at_each_step_level"},{"title":"Background Execution Poll","href":"/examples/workflows_2/06-workflows-advanced-concepts/background_execution_poll"}]},{"title":"Blog Post Generator","href":"/examples/workflows_2/blog-post-generator"},{"title":"Employee Recruiter","href":"/examples/workflows_2/employee-recruiter"},{"title":"Startup Idea Validator","href":"/examples/workflows_2/startup-idea-validator"}]},{"group":"Applications","pages":[{"group":"FastAPI","pages":[{"title":"Basic","href":"/examples/applications/fastapi/basic"},{"title":"Study Friend","href":"/examples/applications/fastapi/study_friend"}]},{"group":"WhatsApp","pages":[{"title":"Basic","href":"/examples/applications/whatsapp/basic"},{"title":"Study Friend","href":"/examples/applications/whatsapp/study_friend"},{"title":"Image Generation Tools","href":"/examples/applications/whatsapp/image_generation_tools"},{"title":"Reasoning Agent","href":"/examples/applications/whatsapp/reasoning_agent"},{"title":"Image Generation Model","href":"/examples/applications/whatsapp/image_generation_model"},{"title":"Agent With Media","href":"/examples/applications/whatsapp/agent_with_media"},{"title":"Agent With User Memory","href":"/examples/applications/whatsapp/agent_with_user_memory"}]},{"group":"Slack","pages":[{"title":"Basic","href":"/examples/applications/slack/basic"},{"title":"Reasoning Agent","href":"/examples/applications/slack/reasoning_agent"},{"title":"Agent with User Memory","href":"/examples/applications/slack/agent_with_user_memory"}]},{"group":"Discord","pages":[{"title":"Basic","href":"/examples/applications/discord/basic"},{"title":"Agent with Media","href":"/examples/applications/discord/agent_with_media"},{"title":"Agent with User Memory","href":"/examples/applications/discord/agent_with_user_memory"}]},{"group":"Playground","pages":[{"title":"Basic","href":"/examples/applications/playground/basic"},{"title":"Multimodal Agents","href":"/examples/applications/playground/multimodal_agents"},{"title":"Reasoning Demo","href":"/examples/applications/playground/reasoning_demo"},{"title":"Teams Demo","href":"/examples/applications/playground/teams_demo"},{"title":"Ollama Agents","href":"/examples/applications/playground/ollama_agents"},{"title":"Agno Assist","href":"/examples/applications/playground/agno_assist"},{"title":"Audio Conversation Agent","href":"/examples/applications/playground/audio_conversation_agent"},{"title":"Mcp Demo","href":"/examples/applications/playground/mcp_demo"},{"title":"Reasoning Demo","href":"/examples/applications/playground/reasoning_demo"},{"title":"Upload Files","href":"/examples/applications/playground/upload_files"}]},{"group":"AG-UI","pages":[{"title":"Basic","href":"/examples/applications/ag-ui/basic"},{"title":"Agent with Tools","href":"/examples/applications/ag-ui/agent_with_tools"},{"title":"Research Team","href":"/examples/applications/ag-ui/team"}]}]},{"group":"Streamlit Apps","pages":[{"title":"Agentic RAG","href":"/examples/streamlit/agentic-rag"},{"title":"Sage: Answer Engine","href":"/examples/streamlit/answer-engine"},{"title":"SQL Agent","href":"/examples/streamlit/text-to-sql"},{"title":"Game Generator","href":"/examples/streamlit/game-generator"},{"title":"GeoBuddy","href":"/examples/streamlit/geobuddy"},{"title":"Chess Battle","href":"/examples/streamlit/chess-team"}]},{"group":"Evals","pages":[{"group":"Accuracy","pages":[{"title":"Simple Accuracy","href":"/examples/evals/accuracy/basic"},{"title":"Accuracy with Given Answer","href":"/examples/evals/accuracy/accuracy_with_given_answer"},{"title":"Accuracy with Tools","href":"/examples/evals/accuracy/accuracy_with_tools"},{"title":"Accuracy with Teams","href":"/examples/evals/accuracy/accuracy_with_teams"}]},{"group":"Performance","pages":[{"title":"Performance on Agent Instantiation","href":"/examples/evals/performance/performance_agent_instantiation"},{"title":"Performance on Agent Instantiation with Tool","href":"/examples/evals/performance/performance_instantiation_with_tool"},{"title":"Performance on Agent Response","href":"/examples/evals/performance/performance_simple_response"},{"title":"Performance on Agent with Storage","href":"/examples/evals/performance/performance_with_storage"},{"title":"Performance with Teams","href":"/examples/evals/performance/performance_team_instantiation"}]},{"group":"Reliability","pages":[{"title":"Reliability with Single Tool","href":"/examples/evals/reliability/basic"},{"title":"Reliability with Multiple Tools","href":"/examples/evals/reliability/reliability_with_multiple_tools"},{"title":"Reliability with Teams","href":"/examples/evals/reliability/reliability_with_teams"}]}]}]},{"group":"Agent Concepts","pages":[{"group":"Reasoning","pages":[{"group":"Agents","pages":[{"title":"Basic Reasoning Agent","href":"/examples/concepts/reasoning/agents/basic-cot"},{"title":"Capture Reasoning Content","href":"/examples/concepts/reasoning/agents/capture-reasoning-content-cot"},{"title":"Non-Reasoning Model Agent","href":"/examples/concepts/reasoning/agents/non-reasoning-model"}]},{"group":"Models","pages":[{"group":"Azure AI Foundry","pages":[{"title":"Azure AI Foundry","href":"/examples/concepts/reasoning/models/azure-ai-foundary/azure-ai-foundary"}]},{"group":"Azure OpenAI","pages":[{"title":"Azure OpenAI o1","href":"/examples/concepts/reasoning/models/azure-openai/o1"},{"title":"Azure OpenAI o3","href":"/examples/concepts/reasoning/models/azure-openai/o3-tools"},{"title":"Azure OpenAI GPT 4.1","href":"/examples/concepts/reasoning/models/azure-openai/reasoning-model-gpt4-1"}]},{"group":"DeepSeek","pages":[{"title":"DeepSeek Reasoner","href":"/examples/concepts/reasoning/models/deepseek/trolley-problem"}]},{"group":"Groq","pages":[{"title":"Groq DeepSeek R1","href":"/examples/concepts/reasoning/models/groq/groq-basic"},{"title":"Groq Claude + DeepSeek R1","href":"/examples/concepts/reasoning/models/groq/groq-plus-claude"}]},{"group":"Ollama","pages":[{"title":"Ollama DeepSeek R1","href":"/examples/concepts/reasoning/models/ollama/ollama-basic"}]},{"group":"OpenAI","pages":[{"title":"OpenAI o1 pro","href":"/examples/concepts/reasoning/models/openai/o1-pro"},{"title":"OpenAI o3-mini","href":"/examples/concepts/reasoning/models/openai/o3-mini-tools"},{"title":"OpenAI o3-mini with reasoning effort","href":"/examples/concepts/reasoning/models/openai/reasoning-effort"}]},{"group":"xAI","pages":[{"title":"xAI Grok 3 Mini","href":"/examples/concepts/reasoning/models/xai/reasoning-effort"}]}]},{"group":"Teams","pages":[{"title":"Team with Reasoning Tools","href":"/examples/concepts/reasoning/teams/reasoning-tool-team"},{"title":"Team with Knowledge Tools","href":"/examples/concepts/reasoning/teams/knowledge-tool-team"}]},{"group":"Tools","pages":[{"title":"Reasoning Agent with Reasoning Tools","href":"/examples/concepts/reasoning/tools/reasoning-tools"},{"title":"Reasoning Agent with Knowledge Tools","href":"/examples/concepts/reasoning/tools/knowledge-tools"},{"title":null,"href":"/examples/concepts/reasoning/tools/thinking-tools"},{"title":"Gemini with Reasoning Tools","href":"/examples/concepts/reasoning/tools/gemini-reasoning-tools"},{"title":"Gemini Thinking Tools","href":"/examples/concepts/reasoning/tools/gemini-thinking-tools"}]}]},{"group":"Multimodal","pages":[{"title":"Audio Input Output","href":"/examples/concepts/multimodal/audio-input-output"},{"title":"Audio to text Agent","href":"/examples/concepts/multimodal/audio-to-text"},{"title":"Audio Sentiment Analysis Agent","href":"/examples/concepts/multimodal/audio-sentiment-analysis"},{"title":"Blog to Podcast Agent","href":"/examples/concepts/multimodal/blog-to-podcast"},{"title":"Multi-turn Audio Agent","href":"/examples/concepts/multimodal/audio-multi-turn"},{"title":"Audio Streaming Agent","href":"/examples/concepts/multimodal/audio-streaming"},{"title":"Generate Images with Intermediate Steps","href":"/examples/concepts/multimodal/generate-image"},{"title":"Generate Music using Models Lab","href":"/examples/concepts/multimodal/generate-music-agent"},{"title":"Generate Video using Models Lab","href":"/examples/concepts/multimodal/generate-video-models-lab"},{"title":"Generate Video using Replicate","href":"/examples/concepts/multimodal/generate-video-replicate"},{"title":"Image to Audio Agent","href":"/examples/concepts/multimodal/image-to-audio"},{"title":"Image to Image Agent","href":"/examples/concepts/multimodal/image-to-image"},{"title":"Image to Text Agent","href":"/examples/concepts/multimodal/image-to-text"},{"title":"Video Caption Agent","href":"/examples/concepts/multimodal/video-caption"},{"title":"Video to Shorts Agent","href":"/examples/concepts/multimodal/video-to-shorts"}]},{"group":"RAG","pages":[{"title":"Traditional RAG with PgVector","href":"/examples/concepts/rag/traditional-rag-pgvector"},{"title":"Traditional RAG with LanceDB","href":"/examples/concepts/rag/traditional-rag-lancedb"},{"title":"Agentic RAG with PgVector","href":"/examples/concepts/rag/agentic-rag-pgvector"},{"title":"Agentic RAG with LanceDB","href":"/examples/concepts/rag/agentic-rag-lancedb"},{"title":"Agentic RAG with Reranking","href":"/examples/concepts/rag/agentic-rag-with-reranking"},{"title":"Agentic RAG with Agent UI","href":"/examples/concepts/rag/agentic-rag-agent-ui"},{"title":"RAG with LanceDB and SQLite","href":"/examples/concepts/rag/rag-with-lance-db-and-sqlite"}]},{"group":"User Control Flows","pages":[{"title":"User Confirmation Required","href":"/examples/concepts/user-control-flows/01-confirmation-required"},{"title":"Async User Confirmation","href":"/examples/concepts/user-control-flows/02-confirmation-required-async"},{"title":"Streaming User Confirmation","href":"/examples/concepts/user-control-flows/03-confirmation-required-stream"},{"title":"User Input Required","href":"/examples/concepts/user-control-flows/04-user-input-required"},{"title":"Async User Input","href":"/examples/concepts/user-control-flows/05-user-input-required-async"},{"title":"Streaming User Input","href":"/examples/concepts/user-control-flows/06-user-input-required-stream"},{"title":"Dynamic User Input (Agentic)","href":"/examples/concepts/user-control-flows/07-agentic-user-input"},{"title":"External Tool Execution","href":"/examples/concepts/user-control-flows/08-external-tool-execution"},{"title":"Async External Tool Execution","href":"/examples/concepts/user-control-flows/09-external-tool-execution-async"},{"title":"Streaming External Tool Execution","href":"/examples/concepts/user-control-flows/10-external-tool-execution-stream"}]},{"group":"Knowledge","pages":[{"group":"Knowledge Filters","pages":[{"group":"Pdf","pages":[{"title":"Filtering with Pdf","href":"/examples/concepts/knowledge/filters/pdf/filtering"},{"title":"Agentic filtering with Pdf","href":"/examples/concepts/knowledge/filters/pdf/agentic_filtering"},{"title":"Filtering on load with Pdf","href":"/examples/concepts/knowledge/filters/pdf/filtering_on_load"}]},{"group":"Pdf-Url","pages":[{"title":"Filtering with Pdf-Url","href":"/examples/concepts/knowledge/filters/pdf_url/filtering"},{"title":"Agentic filtering with Pdf-Url","href":"/examples/concepts/knowledge/filters/pdf_url/agentic_filtering"},{"title":"Filtering on load with Pdf-Url","href":"/examples/concepts/knowledge/filters/pdf_url/filtering_on_load"}]},{"group":"Json","pages":[{"title":"Filtering with Json","href":"/examples/concepts/knowledge/filters/json/filtering"},{"title":"Agentic filtering with Json","href":"/examples/concepts/knowledge/filters/json/agentic_filtering"},{"title":"Filtering on load with Json","href":"/examples/concepts/knowledge/filters/json/filtering_on_load"}]},{"group":"Docx","pages":[{"title":"Filtering with Docx","href":"/examples/concepts/knowledge/filters/docx/filtering"},{"title":"Agentic filtering with Docx","href":"/examples/concepts/knowledge/filters/docx/agentic_filtering"},{"title":"Filtering on load with Docx","href":"/examples/concepts/knowledge/filters/docx/filtering_on_load"}]},{"group":"Text","pages":[{"title":"Filtering with Text","href":"/examples/concepts/knowledge/filters/text/filtering"},{"title":"Agentic filtering with Text","href":"/examples/concepts/knowledge/filters/text/agentic_filtering"},{"title":"Filtering on load with Text","href":"/examples/concepts/knowledge/filters/text/filtering_on_load"}]},{"title":"Filtering on Qdrant","href":"/examples/concepts/knowledge/filters/filtering_qdrant_db"},{"title":"Filtering on MilvusDB","href":"/examples/concepts/knowledge/filters/filtering_milvus_db"},{"title":"Filtering on MongoDB","href":"/examples/concepts/knowledge/filters/filtering_mongo_db"},{"title":"Filtering on PgVector","href":"/examples/concepts/knowledge/filters/filtering_pgvector"},{"title":"Filtering on Weaviate","href":"/examples/concepts/knowledge/filters/filtering_weaviate"},{"title":"Filtering on LanceDB","href":"/examples/concepts/knowledge/filters/filtering_lance_db"},{"title":"Filtering on ChromaDB","href":"/examples/concepts/knowledge/filters/filtering_chroma_db"},{"title":"Filtering on Pinecone","href":"/examples/concepts/knowledge/filters/filtering_pinecone"},{"title":"Filtering on SurrealDB","href":"/examples/concepts/knowledge/filters/filtering_surreal_db"},{"title":"Knowledge filtering using Traditional RAG","href":"/examples/concepts/knowledge/filters/filtering-traditional-RAG"}]},{"title":"ArXiv Knowledge Base","href":"/examples/concepts/knowledge/arxiv-kb"},{"title":"Combined Knowledge Base","href":"/examples/concepts/knowledge/combined-kb"},{"title":"CSV Knowledge Base","href":"/examples/concepts/knowledge/csv-kb"},{"title":"CSV URL Knowledge Base","href":"/examples/concepts/knowledge/csv-url-kb"},{"title":"Document Knowledge Base","href":"/examples/concepts/knowledge/doc-kb"},{"title":"DOCX Knowledge Base","href":"/examples/concepts/knowledge/docx-kb"}]},{"group":"Memory","pages":[{"title":"Built-in Memory","href":"/examples/concepts/memory/00-built-in-memory"},{"title":"Standalone Memory Operations","href":"/examples/concepts/memory/01-standalone-memory"},{"title":"Persistent Memory with SQLite","href":"/examples/concepts/memory/02-persistent-memory"},{"title":"Custom Memory Creation","href":"/examples/concepts/memory/03-custom-memory-creation"},{"title":"Memory Search","href":"/examples/concepts/memory/04-memory-search"},{"title":"Agent With Memory","href":"/examples/concepts/memory/05-agent-with-memory"},{"title":"Agentic Memory","href":"/examples/concepts/memory/06-agentic-memory"},{"title":"Agent with Session Summaries","href":"/examples/concepts/memory/07-agent-with-summaries"},{"title":"Multiple Agents Sharing Memory","description":null,"href":"/examples/concepts/memory/08-agents-share-memory"},{"title":"Custom Memory","href":"/examples/concepts/memory/09-custom-memory"},{"title":"Multi-User Multi-Session Chat","description":null,"href":"/examples/concepts/memory/10-multi-user-multi-session-chat"},{"title":"Multi-User Multi-Session Chat Concurrent","href":"/examples/concepts/memory/11-multi-user-multi-session-chat-concurrent"},{"title":"Memory References","href":"/examples/concepts/memory/12-memory-references"},{"title":"Session Summary References","href":"/examples/concepts/memory/13-session-summary-references"},{"title":"Mem0 Memory","href":"/examples/concepts/memory/mem0-memory"},{"group":"DB","pages":[{"title":"MongoDB Memory Storage","href":"/examples/concepts/memory/db/mem-mongodb-memory"},{"title":"PostgreSQL Memory Storage","href":"/examples/concepts/memory/db/mem-postgres-memory"},{"title":"SQLite Memory Storage","href":"/examples/concepts/memory/db/mem-sqlite-memory"},{"title":"Redis Memory Storage","href":"/examples/concepts/memory/db/mem-redis-memory"}]}]},{"group":"Async","pages":[{"title":"Basic Async","href":"/examples/concepts/async/basic"},{"title":"Data Analyst","href":"/examples/concepts/async/data_analyst"},{"title":"Structured Outputs","href":"/examples/concepts/async/structured_output"},{"title":"Reasoning Agent","href":"/examples/concepts/async/reasoning"},{"title":"Gather Multiple Agents","href":"/examples/concepts/async/gather_agents"}]},{"group":"Hybrid Search","pages":[{"title":"LanceDB Hybrid Search","href":"/examples/concepts/hybrid-search/lancedb"},{"title":"PgVector Hybrid Search","href":"/examples/concepts/hybrid-search/pgvector"},{"title":"QdrantDB Hybrid Search","href":"/examples/concepts/hybrid-search/qdrantdb"},{"title":"Weaviate Hybrid Search","href":"/examples/concepts/hybrid-search/weaviate"},{"title":"MilvusDB Hybrid Search","href":"/examples/concepts/hybrid-search/milvusdb"},{"title":"MongoDB Hybrid Search","href":"/examples/concepts/hybrid-search/mongodb"}]},{"group":"Storage","pages":[{"group":"Agent Storage","pages":[{"title":"Postgres Agent Storage","sidebarTitle":"Postgres","href":"/examples/concepts/storage/agent_storage/postgres"},{"title":"Sqlite Agent Storage","sidebarTitle":"Sqlite","href":"/examples/concepts/storage/agent_storage/sqlite"},{"title":"Singlestore Agent Storage","sidebarTitle":"Singlestore","href":"/examples/concepts/storage/agent_storage/singlestore"},{"title":"DynamoDB Agent Storage","sidebarTitle":"DynamoDB","href":"/examples/concepts/storage/agent_storage/dynamodb"},{"title":"Mongo Agent Storage","sidebarTitle":"MongoDB","href":"/examples/concepts/storage/agent_storage/mongodb"},{"title":"MySQL Agent Storage","sidebarTitle":"MySQL","href":"/examples/concepts/storage/agent_storage/mysql"},{"title":"JSON Agent Storage","sidebarTitle":"JSON","href":"/examples/concepts/storage/agent_storage/json"},{"title":"YAML Agent Storage","sidebarTitle":"YAML","href":"/examples/concepts/storage/agent_storage/yaml"},{"title":"Redis Agent Storage","sidebarTitle":"Redis","href":"/examples/concepts/storage/agent_storage/redis"}]},{"group":"Team Storage","pages":[{"title":"Postgres Team Storage","sidebarTitle":"Postgres","href":"/examples/concepts/storage/team_storage/postgres"},{"title":"Sqlite Team Storage","sidebarTitle":"Sqlite","href":"/examples/concepts/storage/team_storage/sqlite"},{"title":"Singlestore Team Storage","sidebarTitle":"Singlestore","href":"/examples/concepts/storage/team_storage/singlestore"},{"title":"DynamoDB Team Storage","sidebarTitle":"DynamoDB","href":"/examples/concepts/storage/team_storage/dynamodb"},{"title":"Mongo Team Storage","sidebarTitle":"MongoDB","href":"/examples/concepts/storage/team_storage/mongodb"},{"title":"MySQL Team Storage","sidebarTitle":"MySQL","href":"/examples/concepts/storage/team_storage/mysql"},{"title":"JSON Team Storage","sidebarTitle":"JSON","href":"/examples/concepts/storage/team_storage/json"},{"title":"YAML Team Storage","sidebarTitle":"YAML","href":"/examples/concepts/storage/team_storage/yaml"},{"title":"Redis Team Storage","sidebarTitle":"Redis","href":"/examples/concepts/storage/team_storage/redis"}]},{"group":"Workflow Storage","pages":[{"title":"Postgres Workflow Storage","sidebarTitle":"Postgres","href":"/examples/concepts/storage/workflow_storage/postgres"},{"title":"SQLite Workflow Storage","sidebarTitle":"SQLite","href":"/examples/concepts/storage/workflow_storage/sqlite"},{"title":"Singlestore Workflow Storage","sidebarTitle":"Singlestore","href":"/examples/concepts/storage/workflow_storage/singlestore"},{"title":"DynamoDB Workflow Storage","sidebarTitle":"DynamoDB","href":"/examples/concepts/storage/workflow_storage/dynamodb"},{"title":"MongoDB Workflow Storage","sidebarTitle":"MongoDB","href":"/examples/concepts/storage/workflow_storage/mongodb"},{"title":"MySQL Workflow Storage","sidebarTitle":"MySQL","href":"/examples/concepts/storage/workflow_storage/mysql"},{"title":"JSON Workflow Storage","sidebarTitle":"JSON","href":"/examples/concepts/storage/workflow_storage/json"},{"title":"YAML Workflow Storage","sidebarTitle":"YAML","href":"/examples/concepts/storage/workflow_storage/yaml"},{"title":"Redis Workflow Storage","sidebarTitle":"Redis","href":"/examples/concepts/storage/workflow_storage/redis"}]}]},{"group":"Tools","pages":[{"group":"Search","pages":[{"title":"ArXiv Tools","href":"/examples/concepts/tools/search/arxiv"},{"title":"Baidu Search Tools","href":"/examples/concepts/tools/search/baidusearch"},{"title":"Crawl4ai Tools","href":"/examples/concepts/tools/search/crawl4ai"},{"title":"DuckDuckGo Search","href":"/examples/concepts/tools/search/duckduckgo"},{"title":"Exa Tools","href":"/examples/concepts/tools/search/exa"},{"title":"Google Search Tools","href":"/examples/concepts/tools/search/google_search"},{"title":"Hacker News Tools","href":"/examples/concepts/tools/search/hackernews"},{"title":"Linkup Tools","href":"/examples/concepts/tools/search/linkup"},{"title":"PubMed Tools","href":"/examples/concepts/tools/search/pubmed"},{"title":"SearxNG Tools","href":"/examples/concepts/tools/search/searxng"},{"title":"SerpAPI Tools","href":"/examples/concepts/tools/search/serpapi"},{"title":"Serper Tools","href":"/examples/concepts/tools/search/serper"},{"title":"Tavily Tools","href":"/examples/concepts/tools/search/tavily"},{"title":"Wikipedia Tools","href":"/examples/concepts/tools/search/wikipedia"},{"title":"Brave Search Tools","href":"/examples/concepts/tools/search/bravesearch"}]},{"group":"Social","pages":[{"title":"Discord Tools","href":"/examples/concepts/tools/social/discord"},{"title":"Email Tools","href":"/examples/concepts/tools/social/email"},{"title":"Gmail Tools","href":"/examples/concepts/tools/social/gmail"},{"title":"Slack Tools","href":"/examples/concepts/tools/social/slack"},{"title":"Twilio Tools","href":"/examples/concepts/tools/social/twilio"},{"title":"Webex Tools","href":"/examples/concepts/tools/social/webex"},{"title":"WhatsApp Tools","href":"/examples/concepts/tools/social/whatsapp"},{"title":"X (Twitter) Tools","href":"/examples/concepts/tools/social/x"}]},{"group":"Web Scraping","pages":[{"title":"Jina Reader Tools","href":"/examples/concepts/tools/web_scrape/jina_reader"},{"title":"Newspaper Tools","href":"/examples/concepts/tools/web_scrape/newspaper"},{"title":"Newspaper4k Tools","href":"/examples/concepts/tools/web_scrape/newspaper4k"},{"title":"Website Tools","href":"/examples/concepts/tools/web_scrape/website"},{"title":"Spider Tools","href":"/examples/concepts/tools/web_scrape/spider"},{"title":"Firecrawl Tools","href":"/examples/concepts/tools/web_scrape/firecrawl"},{"title":"Oxylabs Tools","href":"/examples/concepts/tools/web_scrape/oxylabs"},{"title":"BrightData Tools","href":"/examples/concepts/tools/web_scrape/brightdata"}]},{"group":"Database","pages":[{"title":"CSV Tools","href":"/examples/concepts/tools/database/csv"},{"title":"DuckDB Tools","href":"/examples/concepts/tools/database/duckdb"},{"title":"Mem0 Memory Tools","href":"/examples/concepts/tools/database/mem0"},{"title":null,"href":"/examples/concepts/tools/database/pandas"},{"title":"Postgres Tools","href":"/examples/concepts/tools/database/postgres"},{"title":"SQL Tools","href":"/examples/concepts/tools/database/sql"},{"title":"Zep Memory Tools","href":"/examples/concepts/tools/database/zep"},{"title":"Zep Async Memory Tools","href":"/examples/concepts/tools/database/zep_async"}]},{"group":"Local","pages":[{"title":"Calculator","href":"/examples/concepts/tools/local/calculator"},{"title":"Docker Tools","href":"/examples/concepts/tools/local/docker"},{"title":"File Tools","href":"/examples/concepts/tools/local/file"},{"title":"Python Tools","href":"/examples/concepts/tools/local/python"},{"title":"Shell Tools","href":"/examples/concepts/tools/local/shell"},{"title":"Sleep Tools","href":"/examples/concepts/tools/local/sleep"}]},{"group":"Native Model Toolkit","pages":[{"group":"OpenAI","pages":[{"title":"Recipe RAG Image Agent","href":"/examples/concepts/tools/models/openai/rag-recipe-image"},{"title":"Meeting Summary Agent","href":"/examples/concepts/tools/models/openai/meeting-summarizer"}]}]},{"group":"APIs \u0026 External Services","pages":[{"title":"Airflow Tools","href":"/examples/concepts/tools/others/airflow"},{"title":"Apify Tools","href":"/examples/concepts/tools/others/apify"},{"title":"AWS Lambda Tools","href":"/examples/concepts/tools/others/aws_lambda"},{"title":"AWS SES Tools","href":"/examples/concepts/tools/others/aws_ses"},{"title":"Cal.com Tools","href":"/examples/concepts/tools/others/calcom"},{"title":"Composio Tools","href":"/examples/concepts/tools/others/composio"},{"title":"Confluence Tools","href":"/examples/concepts/tools/others/confluence"},{"title":"DALL-E Tools","href":"/examples/concepts/tools/others/dalle"},{"title":"Daytona Tools","href":"/examples/concepts/tools/others/daytona"},{"title":"Desi Vocal Tools","href":"/examples/concepts/tools/others/desi_vocal"},{"title":"E2B Code Execution","href":"/examples/concepts/tools/others/e2b"},{"title":"Fal Tools","href":"/examples/concepts/tools/others/fal"},{"title":"Financial Datasets Tools","href":"/examples/concepts/tools/others/financial_datasets"},{"title":"Giphy Tools","href":"/examples/concepts/tools/others/giphy"},{"title":"GitHub Tools","href":"/examples/concepts/tools/others/github"},{"title":"Google Calendar Tools","href":"/examples/concepts/tools/others/google_calendar"},{"title":"Google Maps Tools","href":"/examples/concepts/tools/others/google_maps"},{"title":"Jira Tools","href":"/examples/concepts/tools/others/jira"},{"title":"Linear Tools","href":"/examples/concepts/tools/others/linear"},{"title":"Luma Labs Tools","href":"/examples/concepts/tools/others/lumalabs"},{"title":"MLX Transcribe Tools","href":"/examples/concepts/tools/others/mlx_transcribe"},{"title":"Models Labs Tools","href":"/examples/concepts/tools/others/models_labs"},{"title":"OpenBB Tools","href":"/examples/concepts/tools/others/openbb"},{"title":"Replicate Tools","href":"/examples/concepts/tools/others/replicate"},{"title":"Resend Tools","href":"/examples/concepts/tools/others/resend"},{"title":"Todoist Tools","href":"/examples/concepts/tools/others/todoist"},{"title":"YouTube Tools","href":"/examples/concepts/tools/others/youtube"},{"title":"Zendesk Tools","href":"/examples/concepts/tools/others/zendesk"}]},{"group":"MCP","pages":[{"title":"Airbnb MCP agent","sidebarTitle":"Airbnb","href":"/examples/concepts/tools/mcp/airbnb"},{"title":"GibsonAI MCP","sidebarTitle":"GibsonAI","href":"/examples/concepts/tools/mcp/gibson_ai"},{"title":"GitHub MCP agent","sidebarTitle":"GitHub","href":"/examples/concepts/tools/mcp/github"},{"title":"Keboola MCP agent","sidebarTitle":"Keboola","href":"/examples/concepts/tools/mcp/keboola"},{"title":"Notion MCP agent","sidebarTitle":"Notion","href":"/examples/concepts/tools/mcp/notion"},{"title":"Pipedream Auth","href":"/examples/concepts/tools/mcp/pipedream_auth"},{"title":"Pipedream Slack","href":"/examples/concepts/tools/mcp/pipedream_slack"},{"title":"Pipedream Google Calendar","href":"/examples/concepts/tools/mcp/pipedream_google_calendar"},{"title":"Pipedream LinkedIn","href":"/examples/concepts/tools/mcp/pipedream_linkedin"},{"title":"Stagehand MCP agent","sidebarTitle":"Stagehand","href":"/examples/concepts/tools/mcp/stagehand"},{"title":"Stripe MCP agent","sidebarTitle":"Stripe","href":"/examples/concepts/tools/mcp/stripe"},{"title":"Supabase MCP agent","sidebarTitle":"Supabase","href":"/examples/concepts/tools/mcp/supabase"}]}]},{"group":"Vector Databases","pages":[{"title":"Cassandra Integration","href":"/examples/concepts/vectordb/cassandra"},{"title":"ChromaDB Integration","href":"/examples/concepts/vectordb/chromadb"},{"title":"Couchbase Integration","href":"/examples/concepts/vectordb/couchbase"},{"title":"Clickhouse Integration","href":"/examples/concepts/vectordb/clickhouse"},{"title":"LanceDB Integration","href":"/examples/concepts/vectordb/lancedb"},{"title":"Milvus Integration","href":"/examples/concepts/vectordb/milvus"},{"title":"MongoDB Integration","href":"/examples/concepts/vectordb/mongodb"},{"title":"Azure Cosmos DB MongoDB vCore Integration","href":"/examples/concepts/vectordb/azure_cosmos_mongodb"},{"title":"PgVector Integration","href":"/examples/concepts/vectordb/pgvector"},{"title":"Pinecone Integration","href":"/examples/concepts/vectordb/pinecone"},{"title":"Qdrant Integration","href":"/examples/concepts/vectordb/qdrant"},{"title":"SingleStore Integration","href":"/examples/concepts/vectordb/singlestore"},{"title":"Weaviate Integration","href":"/examples/concepts/vectordb/weaviate"}]},{"group":"Context","pages":[{"title":"Add Context","href":"/examples/concepts/context/01-add_context"},{"title":"Agent Context","href":"/examples/concepts/context/02-agent_context"},{"title":"Context In Instructions","href":"/examples/concepts/context/03-context_in_instructions"}]},{"group":"Embedders","pages":[{"title":"Azure OpenAI Embedder","href":"/examples/concepts/embedders/azure-embedder"},{"title":"Cohere Embedder","href":"/examples/concepts/embedders/cohere-embedder"},{"title":"Fireworks Embedder","href":"/examples/concepts/embedders/fireworks-embedder"},{"title":"Gemini Embedder","href":"/examples/concepts/embedders/gemini-embedder"},{"title":"Huggingface Embedder","href":"/examples/concepts/embedders/huggingface-embedder"},{"title":"Mistral Embedder","href":"/examples/concepts/embedders/mistral-embedder"},{"title":"Nebius Embedder","href":"/examples/concepts/embedders/nebius-embedder"},{"title":"Ollama Embedder","href":"/examples/concepts/embedders/ollama-embedder"},{"title":"OpenAI Embedder","href":"/examples/concepts/embedders/openai-embedder"},{"title":"Qdrant FastEmbed Embedder","href":"/examples/concepts/embedders/qdrant-fastembed"},{"title":"Jina Embedder","href":"/examples/concepts/embedders/jina-embedder"}]},{"group":"Agent State","pages":[{"title":"Basic State Management","href":"/examples/concepts/state/01-session-state"},{"title":"State in Instructions","href":"/examples/concepts/state/02-state-in-prompt"},{"title":"Persistant State with Storage","href":"/examples/concepts/state/03-session-state-storage"},{"title":"Multi User State","href":"/examples/concepts/state/04-session-state-user-id"},{"title":"State Management Across Multiple Runs","href":"/examples/concepts/state/05-session-state-full-example"},{"title":"Team with Shared State","href":"/examples/concepts/state/06-team-session-state"}]},{"group":"Observability","pages":[{"group":"Arize Phoenix","pages":[{"title":"Arize Phoenix via OpenInference","href":"/examples/concepts/observability/arize-phoenix-via-openinference"},{"title":"Arize Phoenix via OpenInference (Local Collector)","href":"/examples/concepts/observability/arize-phoenix-via-openinference-local"}]},{"group":"Langfuse","pages":[{"title":"Langfuse via OpenInference","href":"/examples/concepts/observability/langfuse_via_openinference"},{"title":"Langfuse via OpenLIT","href":"/examples/concepts/observability/langfuse_via_openlit"}]},{"title":"LangSmith","href":"/examples/concepts/observability/langsmith-via-openinference"},{"title":"Langtrace","href":"/examples/concepts/observability/langtrace-op"},{"title":"Weave","href":"/examples/concepts/observability/weave-op"}]},{"group":"Testing","pages":[{"title":"Scenario Testing","href":"/examples/testing/scenario/basic"}]},{"group":"Miscellaneous","pages":[{"title":"Agent Extra Metrics","href":"/examples/concepts/others/agent_extra_metrics"},{"title":"Agent Metrics","href":"/examples/concepts/others/agent_metrics"},{"title":"Datetime Instructions","href":"/examples/concepts/others/datetime_instructions"},{"title":"Location Instructions","href":"/examples/concepts/others/location_instructions"},{"title":"Image Input High Fidelity","href":"/examples/concepts/others/image_input_high_fidelity"},{"title":"Input as Dictionary","href":"/examples/concepts/others/input_as_dict"},{"title":"Input as List","href":"/examples/concepts/others/input_as_list"},{"title":"Input as Message","href":"/examples/concepts/others/input_as_message"},{"title":"Input as Messages List","href":"/examples/concepts/others/input_as_messages_list"},{"title":"Instructions via Function","href":"/examples/concepts/others/instructions_via_function"},{"title":"Instructions","href":"/examples/concepts/others/instructions"},{"title":"Intermediate Steps","href":"/examples/concepts/others/intermediate_steps"},{"title":"Response as Variable","href":"/examples/concepts/others/response_as_variable"},{"title":"Success Criteria","href":"/examples/concepts/others/success_criteria"}]}]},{"group":"Models","pages":[{"group":"Anthropic","pages":[{"title":"Basic Agent","href":"/examples/models/anthropic/basic"},{"title":"Streaming Agent","href":"/examples/models/anthropic/basic_stream"},{"title":"Code Execution Tool","href":"/examples/models/anthropic/code_execution"},{"title":"Agent with Tools","href":"/examples/models/anthropic/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/anthropic/structured_output"},{"title":"Agent with Storage","href":"/examples/models/anthropic/storage"},{"title":"Agent with Knowledge","href":"/examples/models/anthropic/knowledge"},{"title":"File Upload","href":"/examples/models/anthropic/file_upload"},{"title":"Image Input Bytes Content","href":"/examples/models/anthropic/image_input_bytes"},{"title":"Image Input URL","href":"/examples/models/anthropic/image_input_url"},{"title":"PDF Input Bytes Agent","href":"/examples/models/anthropic/pdf_input_bytes"},{"title":"PDF Input Local Agent","href":"/examples/models/anthropic/pdf_input_local"},{"title":"PDF Input URL Agent","href":"/examples/models/anthropic/pdf_input_url"},{"title":"Prompt Caching","href":"/examples/models/anthropic/prompt_caching"}]},{"group":"AWS Bedrock","pages":[{"title":"Basic Agent","href":"/examples/models/aws/bedrock/basic"},{"title":"Streaming Agent","href":"/examples/models/aws/bedrock/basic_stream"},{"title":"Async Streaming Agent","href":"/examples/models/aws/bedrock/async_basic_stream"},{"title":"Agent with Tools","href":"/examples/models/aws/bedrock/tool_use"},{"title":"Async Agent with Tools","href":"/examples/models/aws/bedrock/async_tool_use_stream"},{"title":"Agent with Structured Outputs","href":"/examples/models/aws/bedrock/structured_output"},{"title":"Agent with Storage","href":"/examples/models/aws/bedrock/storage"},{"title":"Agent with Knowledge","href":"/examples/models/aws/bedrock/knowledge"},{"title":"Agent with Image Input","href":"/examples/models/aws/bedrock/image_agent"}]},{"group":"AWS Bedrock Claude","pages":[{"title":"Basic Agent","href":"/examples/models/aws/claude/basic"},{"title":"Streaming Agent","href":"/examples/models/aws/claude/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/aws/claude/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/aws/claude/structured_output"},{"title":"Agent with Storage","href":"/examples/models/aws/claude/storage"},{"title":"Agent with Knowledge","href":"/examples/models/aws/claude/knowledge"}]},{"group":"Azure AI Foundry","pages":[{"title":"Basic Agent","href":"/examples/models/azure/ai_foundry/basic"},{"title":"Basic Streaming","href":"/examples/models/azure/ai_foundry/basic_stream"},{"title":"Agent with Knowledge Base","href":"/examples/models/azure/ai_foundry/knowledge"},{"title":"Agent with Storage","href":"/examples/models/azure/ai_foundry/storage"},{"title":"Agent with Structured Outputs","href":"/examples/models/azure/ai_foundry/structured_output"},{"title":"Agent with Tools","href":"/examples/models/azure/ai_foundry/tool_use"}]},{"group":"Azure OpenAI","pages":[{"title":"Basic Agent","href":"/examples/models/azure/openai/basic"},{"title":"Basic Streaming","href":"/examples/models/azure/openai/basic_stream"},{"title":"Agent with Knowledge Base","href":"/examples/models/azure/openai/knowledge"},{"title":"Agent with Storage","href":"/examples/models/azure/openai/storage"},{"title":"Agent with Structured Outputs","href":"/examples/models/azure/openai/structured_output"},{"title":"Agent with Tools","href":"/examples/models/azure/openai/tool_use"}]},{"group":"Cerebras","pages":[{"title":"Basic Agent","href":"/examples/models/cerebras/basic"},{"title":"Streaming Agent","href":"/examples/models/cerebras/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/cerebras/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/cerebras/structured_output"},{"title":"Agent with Storage","href":"/examples/models/cerebras/storage"},{"title":"Agent with Knowledge Base","href":"/examples/models/cerebras/knowledge"}]},{"group":"Cerebras OpenAI","pages":[{"title":"Basic Agent","href":"/examples/models/cerebras_openai/basic"},{"title":"Streaming Agent","href":"/examples/models/cerebras_openai/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/cerebras_openai/tool_use"}]},{"group":"Cohere","pages":[{"title":"Basic Agent","href":"/examples/models/cohere/basic"},{"title":"Streaming Agent","href":"/examples/models/cohere/basic_stream"},{"title":"Image Agent","href":"/examples/models/cohere/image_agent"},{"title":"Agent with Tools","href":"/examples/models/cohere/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/cohere/structured_output"},{"title":"Agent with Storage","href":"/examples/models/cohere/storage"},{"title":"Agent with Knowledge","href":"/examples/models/cohere/knowledge"}]},{"group":"DashScope","pages":[{"title":"Basic Agent","href":"/examples/models/dashscope/basic"},{"title":"Basic Streaming Agent","href":"/examples/models/dashscope/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/dashscope/tool_use"},{"title":"Agent with Structured Output","href":"/examples/models/dashscope/structured_output"}]},{"group":"DeepInfra","pages":[{"title":"Basic Agent","href":"/examples/models/deepinfra/basic"},{"title":"Streaming Agent","href":"/examples/models/deepinfra/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/deepinfra/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/deepinfra/structured_output"}]},{"group":"DeepSeek","pages":[{"title":"Basic Agent","href":"/examples/models/deepseek/basic"},{"title":"Streaming Agent","href":"/examples/models/deepseek/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/deepseek/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/deepseek/structured_output"}]},{"group":"Fireworks","pages":[{"title":"Basic Agent","href":"/examples/models/fireworks/basic"},{"title":"Streaming Agent","href":"/examples/models/fireworks/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/fireworks/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/fireworks/structured_output"}]},{"group":"Gemini","pages":[{"title":"Basic Agent","href":"/examples/models/gemini/basic"},{"title":"Streaming Agent","href":"/examples/models/gemini/basic_stream"},{"title":"Agent with Structured Outputs","href":"/examples/models/gemini/structured_output"},{"title":"Agent with Tools","href":"/examples/models/gemini/tool_use"},{"title":"Agent with Storage","href":"/examples/models/gemini/storage"},{"title":"Agent with Knowledge","href":"/examples/models/gemini/knowledge"},{"title":"Image Agent","href":"/examples/models/gemini/image_input"},{"title":"Vertex AI Agent","href":"/examples/models/gemini/vertex_ai_search"},{"title":"Grounding Agent","href":"/examples/models/gemini/grounding"},{"title":"Search Agent","href":"/examples/models/gemini/search"},{"title":"Flash Thinking Agent","href":"/examples/models/gemini/flash_thinking"},{"title":"Audio Input (Bytes Content)","href":"/examples/models/gemini/audio_input_bytes_content"},{"title":"Audio Input (Upload the file)","href":"/examples/models/gemini/audio_input_file_upload"},{"title":"Audio Input (Local file)","href":"/examples/models/gemini/audio_input_local_file_upload"},{"title":"Agent with PDF Input (Local file)","href":"/examples/models/gemini/pdf_input_local"},{"title":"Agent with PDF Input (URL)","href":"/examples/models/gemini/pdf_input_url"},{"title":"Video Input (Bytes Content)","href":"/examples/models/gemini/video_input_bytes_content"},{"title":"Video Input (File Upload)","href":"/examples/models/gemini/video_input_file_upload"},{"title":"Video Input (Local File Upload)","href":"/examples/models/gemini/video_input_local_file_upload"}]},{"group":"Groq","pages":[{"title":"Basic Agent","href":"/examples/models/groq/basic"},{"title":"Streaming Agent","href":"/examples/models/groq/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/groq/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/groq/structured_output"},{"title":"Agent with Storage","href":"/examples/models/groq/storage"},{"title":"Agent with Knowledge","href":"/examples/models/groq/knowledge"},{"title":"Image Agent","href":"/examples/models/groq/image_agent"}]},{"group":"Hugging Face","pages":[{"title":"Basic Agent","href":"/examples/models/huggingface/basic"},{"title":"Streaming Agent","href":"/examples/models/huggingface/basic_stream"},{"title":"Llama Essay Writer","href":"/examples/models/huggingface/llama_essay_writer"}]},{"group":"IBM","pages":[{"title":"Basic Agent","href":"/examples/models/ibm/basic"},{"title":"Streaming Basic Agent","href":"/examples/models/ibm/basic_stream"},{"title":"Async Streaming Agent","href":"/examples/models/ibm/async_basic_stream"},{"title":"Async Basic Agent","href":"/examples/models/ibm/async_basic"},{"title":"Agent with Tools","href":"/examples/models/ibm/tool_use"},{"title":"Agent with Async Tool Usage","href":"/examples/models/ibm/async_tool_use"},{"title":"Agent with Structured Output","href":"/examples/models/ibm/structured_output"},{"title":"Agent with Storage","href":"/examples/models/ibm/storage"},{"title":"RAG Agent","href":"/examples/models/ibm/knowledge"},{"title":"Image Agent","href":"/examples/models/ibm/image_agent_bytes"}]},{"group":"LangDB","pages":[{"title":"Basic Usage","sidebarTitle":"Basic","href":"/examples/models/langdb/basic"},{"title":"Streaming Agent","href":"/examples/models/langdb/basic_stream"},{"title":"Finance Agent with Tools","href":"/examples/models/langdb/tool_use"}]},{"group":"LM Studio","pages":[{"title":"Basic Agent","href":"/examples/models/lmstudio/basic"},{"title":"Streaming Agent","href":"/examples/models/lmstudio/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/lmstudio/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/lmstudio/structured_output"},{"title":"Agent with Storage","href":"/examples/models/lmstudio/storage"},{"title":"Agent with Knowledge","href":"/examples/models/lmstudio/knowledge"},{"title":"Image Agent","href":"/examples/models/lmstudio/image_agent"}]},{"group":"LiteLLM","pages":[{"title":"Basic Agent","href":"/examples/models/litellm/basic"},{"title":"Streaming Agent","href":"/examples/models/litellm/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/litellm/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/litellm/structured_output"},{"title":"Agent with Storage","href":"/examples/models/litellm/storage"},{"title":"Agent with Knowledge","href":"/examples/models/litellm/knowledge"}]},{"group":"LiteLLM OpenAI","pages":[{"title":"Basic Agent","href":"/examples/models/litellm_openai/basic"},{"title":"Streaming Agent","href":"/examples/models/litellm_openai/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/litellm_openai/tool_use"}]},{"group":"Meta","pages":[{"title":"Basic Agent","href":"/examples/models/meta/basic"},{"title":null,"href":"/examples/models/meta/basic_stream"},{"title":null,"href":"/examples/models/meta/tool_use"},{"title":null,"href":"/examples/models/meta/structured_output"},{"title":null,"href":"/examples/models/meta/image_input"},{"title":null,"href":"/examples/models/meta/async_basic"},{"title":null,"href":"/examples/models/meta/async_stream"},{"title":null,"href":"/examples/models/meta/async_tool_use"},{"title":null,"href":"/examples/models/meta/async_structured_output"},{"title":null,"href":"/examples/models/meta/async_image_input"}]},{"group":"Mistral","pages":[{"title":"Basic Agent","href":"/examples/models/mistral/basic"},{"title":"Streaming Agent","href":"/examples/models/mistral/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/mistral/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/mistral/structured_output"}]},{"group":"Nebius","pages":[{"title":"Basic Agent","href":"/examples/models/nebius/basic"},{"title":"Streaming Agent","href":"/examples/models/nebius/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/nebius/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/nebius/structured_output"},{"title":"Agent with Storage","href":"/examples/models/nebius/storage"},{"title":"Agent with Knowledge","href":"/examples/models/nebius/knowledge"}]},{"group":"NVIDIA","pages":[{"title":"Basic Agent","href":"/examples/models/nvidia/basic"},{"title":"Streaming Agent","href":"/examples/models/nvidia/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/nvidia/tool_use"}]},{"group":"Ollama","pages":[{"title":"Basic Agent","href":"/examples/models/ollama/basic"},{"title":"Streaming Agent","href":"/examples/models/ollama/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/ollama/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/ollama/structured_output"},{"title":"Agent with Storage","href":"/examples/models/ollama/storage"},{"title":"Agent with Knowledge","href":"/examples/models/ollama/knowledge"},{"title":"Image Agent","href":"/examples/models/ollama/image_agent"},{"title":"Set Ollama Client","href":"/examples/models/ollama/set_client"}]},{"group":"OpenAI","pages":[{"group":"OpenAI Chat","pages":[{"title":"Basic Agent","href":"/examples/models/openai/chat/basic"},{"title":"Streaming Agent","href":"/examples/models/openai/chat/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/openai/chat/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/openai/chat/structured_output"},{"title":"Agent with Storage","href":"/examples/models/openai/chat/storage"},{"title":"Agent with Knowledge","href":"/examples/models/openai/chat/knowledge"},{"title":"Image Agent","href":"/examples/models/openai/chat/image_agent"},{"title":"Audio Input Agent","href":"/examples/models/openai/chat/audio_input_agent"},{"title":"Audio Output Agent","href":"/examples/models/openai/chat/audio_output_agent"},{"title":"Generate Images","href":"/examples/models/openai/chat/generate_images"},{"title":"Agent with Reasoning Effort","href":"/examples/models/openai/chat/reasoning_effort"}]},{"group":"OpenAI Responses","pages":[{"title":"Basic Agent","href":"/examples/models/openai/responses/basic"},{"title":"Streaming Agent","href":"/examples/models/openai/responses/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/openai/responses/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/openai/responses/structured_output"},{"title":"Agent with Storage","href":"/examples/models/openai/responses/storage"},{"title":"Agent with Knowledge","href":"/examples/models/openai/responses/knowledge"},{"title":"Image Agent","href":"/examples/models/openai/responses/image_agent"},{"title":"Image Agent (Bytes Content)","href":"/examples/models/openai/responses/image_agent_bytes"},{"title":"Agent with PDF Input (Local File)","href":"/examples/models/openai/responses/pdf_input_local"},{"title":"Agent with PDF Input (URL)","href":"/examples/models/openai/responses/pdf_input_url"}]}]},{"group":"Perplexity","pages":[{"title":"Basic Agent","href":"/examples/models/perplexity/basic"},{"title":"Streaming Agent","href":"/examples/models/perplexity/basic_stream"}]},{"group":"Portkey","pages":[{"title":"Basic Agent","href":"/examples/models/portkey/basic"},{"title":"Basic Streaming Agent","href":"/examples/models/portkey/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/portkey/tool_use"},{"title":"Agent with Structured Output","href":"/examples/models/portkey/structured_output"}]},{"group":"Together","pages":[{"title":"Basic Agent","href":"/examples/models/together/basic"},{"title":"Streaming Agent","href":"/examples/models/together/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/together/tool_use"},{"title":"Agent with Structured Outputs","href":"/examples/models/together/structured_output"}]},{"group":"XAI","pages":[{"title":"Basic Agent","href":"/examples/models/xai/basic"},{"title":"Streaming Agent","href":"/examples/models/xai/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/xai/tool_use"},{"title":"Async Basic Agent","href":"/examples/models/xai/basic_async"},{"title":"Async Streaming Agent","href":"/examples/models/xai/basic_async_stream"},{"title":"Async Agent with Tools","href":"/examples/models/xai/async_tool_use"},{"title":"Structured Output Agent","href":"/examples/models/xai/structured_output"},{"title":"Finance Agent","href":"/examples/models/xai/finance_agent"},{"title":"Image Agent","href":"/examples/models/xai/image_agent"},{"title":"Image Agent with Bytes","href":"/examples/models/xai/image_agent_bytes"},{"title":"Image Agent with Memory","href":"/examples/models/xai/image_agent_with_memory"},{"title":"Live Search Agent","href":"/examples/models/xai/live_search_agent"},{"title":"Live Search Streaming Agent","href":"/examples/models/xai/live_search_agent_stream"},{"title":"Reasoning Agent","href":"/examples/models/xai/reasoning_agent"}]},{"group":"Vercel","pages":[{"title":"Basic Agent","href":"/examples/models/vercel/basic"},{"title":"Streaming Agent","href":"/examples/models/vercel/basic_stream"},{"title":"Agent with Tools","href":"/examples/models/vercel/tool_use"}]},{"group":"vLLM","pages":[{"title":"Agent with Streaming","href":"/examples/models/vllm/basic_stream"},{"title":"Async Agent","href":"/examples/models/vllm/async_basic"},{"title":"Async Agent with Streaming","href":"/examples/models/vllm/async_basic_stream"},{"title":"Agent with Tools","href":"/examples/models/vllm/tool_use"},{"title":"Async Agent with Tools","href":"/examples/models/vllm/async_tool_use"},{"title":"Structured Output","href":"/examples/models/vllm/structured_output"},{"title":"Code Generation","href":"/examples/models/vllm/code_generation"},{"title":"Agent with Storage","href":"/examples/models/vllm/storage"},{"title":"Agent with Memory","href":"/examples/models/vllm/memory"}]}]}]},{"tab":"Workspaces","pages":[{"title":"Workspaces","href":"/workspaces/introduction"}]},{"tab":"FAQs","pages":[{"title":"FAQs","href":"/faq/environment-variables"}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/reference/agents/agent"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/overview"}]}]},"basePath":"","title":"Custom Memory - Agno","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["10e4515597"],"chunks":["BannerMarkdown-CX_qQQOL.js","dist-BTZUMDnx.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-xpJZXxdP.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}