Learn how to use embedders with Agno to convert complex information into vector representations.
Embedders turn text, images, and other data into vectors (lists of numbers) that capture meaning. Those vectors make it easy to store and search information semantically—so you find content by intent and context, not just exact keywords.If you’re building features like retrieval-augmented generation (RAG), semantic search, question answering over docs, or long-term memory for agents, embedders are the foundation that makes it all work.
Agno uses OpenAIEmbedder as the default, but you can swap in any supported embedder. When you add content to a knowledge base, the embedder converts each chunk into a vector and stores it in your vector database. Later, when an agent searches, it embeds the query and finds the most similar vectors.Here’s a basic setup:
from agno.agent import Agentfrom agno.knowledge.knowledge import Knowledgefrom agno.vectordb.pgvector import PgVectorfrom agno.knowledge.embedder.openai import OpenAIEmbedder# Create knowledge base with embedderknowledge = Knowledge( vector_db=PgVector( db_url="postgresql+psycopg://ai:ai@localhost:5532/ai", table_name="my_embeddings", embedder=OpenAIEmbedder(), # Default embedder ), max_results=2, # Return top 2 most relevant chunks)# Add content - gets embedded automaticallyknowledge.add_content( text_content="The sky is blue during the day and dark at night.")# Agent can now search this knowledgeagent = Agent(knowledge=knowledge, search_knowledge=True)agent.print_response("What color is the sky?")
Hosted vs local: Prefer local (e.g., Ollama, FastEmbed) for offline or strict data residency; hosted (OpenAI, Gemini, Voyage) for best quality and convenience.
Latency and cost: Smaller models are cheaper/faster; larger models often retrieve better.
Language support: Ensure your embedder supports the languages you expect.
Dimension compatibility: Match your vector DB’s expected embedding size if it’s fixed.
Chunk your content wisely: Split long docs into 300–1,000 token chunks with 10-20% overlap. This balances context preservation with retrieval precision.
Store rich metadata: Include titles, source URLs, timestamps, and permissions with each chunk. This enables filtering and better context in responses.
Test your retrieval quality: Use a small set of test queries to evaluate if you’re finding the right chunks. Adjust chunking strategy and embedder if needed.
Re-embed when you change models: If you switch embedders, you must re-embed all your content. Vectors from different models aren’t compatible.
Many embedding providers support processing multiple texts in a single API call, known as batch embedding. This approach offers several advantages: it reduces the number of API requests,
helps avoid rate limits, and significantly improves performance when processing large amounts of text.To enable batch processing, set the enable_batch flag to True when configuring your embedder.
The batch_size paramater can be used to control the amount of texts sent per batch.
from agno.knowledge.embedder.openai import OpenAIEmbedderembedder=OpenAIEmbedder( id="text-embedding-3-small", dimensions=1536, enable_batch=True, batch_size=100)
The following embedders currently support batching:
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Agno","colors":{"primary":"#FF4017","light":"#FF4017","dark":"#FF4017"},"logo":{"light":"https://mintcdn.com/spacesail/j6oZ21rFI_VtZleU/logo/black.svg?fit=max\u0026auto=format\u0026n=j6oZ21rFI_VtZleU\u0026q=85\u0026s=79ef09842b7e6f9a9d6593bd98ac9297","dark":"https://mintcdn.com/spacesail/j6oZ21rFI_VtZleU/logo/white.svg?fit=max\u0026auto=format\u0026n=j6oZ21rFI_VtZleU\u0026q=85\u0026s=f593cf49400914e7f56127b14e32f2b6"},"favicon":"/favicon.png","background":{"color":{"light":"#FFFFFF","dark":"#111113"}},"navbar":{"links":[{"label":"Home","icon":"home","href":"https://www.agno.com/"},{"label":"Github","icon":"github","href":"https://github.com/agno-agi/agno"}],"primary":{"type":"button","label":"Try AgentOS","href":"https://os.agno.com"}},"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":{"gtm":{"tagId":"GTM-WBTFNG7M"}},"contextual":{"options":["copy","mcp","cursor","chatgpt","claude"]},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"spacesail","hasAudioNarration":false,"actualSubdomain":"spacesail","customDomains":[],"gitSource":{"type":"github","owner":"coshpr","repo":"agno-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae941bfed8a723d642031c0:success","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Examples","count":1031},{"language":"default","tag":"Concepts","count":615},{"language":"default","tag":"Models","count":431},{"language":"default","tag":"Documentation","count":367},{"language":"default","tag":"Learn","count":356},{"language":"default","tag":"Tools","count":253},{"language":"default","tag":"Knowledge","count":189},{"language":"default","tag":"AgentOS","count":133},{"language":"default","tag":"Reference","count":128},{"language":"default","tag":"Agent","count":120}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"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":"rbac-expansion","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":"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":"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":"editor-metadata","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"concepts/knowledge/embedder/overview","slug":"/concepts/knowledge/embedder/overview","pageMetadata":{"title":"What are Embedders?","sidebarTitle":"Overview","description":"Learn how to use embedders with Agno to convert complex information into vector representations.","keywords":["embedders","embeddings"],"href":"/concepts/knowledge/embedder/overview"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn how to use embedders with Agno to convert complex information into vector representations.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"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={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Embedders turn text, images, and other data into vectors (lists of numbers) that capture meaning. Those vectors make it easy to store and search information semantically—so you find content by intent and context, not just exact keywords.`}),`\n`,_jsx(_components.p,{children:`If you’re building features like retrieval-augmented generation (RAG), semantic search, question answering over docs, or long-term memory for agents, embedders are the foundation that makes it all work.`}),`\n`,_jsx(Heading,{level:`3`,id:`why-use-embedders`,children:`Why use embedders?`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Better recall than keywords`}),`: They understand meaning, so “How do I reset my passcode?” finds docs mentioning “change PIN”.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Ground LLMs in your data`}),`: Provide the model with trusted, domain-specific context at answer time.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Scale to large knowledge bases`}),`: Vectors enable fast similarity search across thousands or millions of chunks.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Multilingual retrieval`}),`: Many embedders map different languages to the same semantic space.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`when-to-use-embedders`,children:`When to use embedders`}),`\n`,_jsx(_components.p,{children:`Use embedders when you need any of the following:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`RAG and context injection`}),`: Supply relevant snippets to your agent before responding.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Semantic search`}),`: Let users query by meaning across product docs, wikis, tickets, or chats.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Deduplication and clustering`}),`: Group similar content or avoid repeating the same info.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Personal and team memory`}),`: Store summaries and facts for later recall by agents.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`You probably don’t need embedders when your dataset is tiny (a handful of pages) and simple keyword search already works well.`}),`\n`,_jsx(Heading,{level:`3`,id:`how-it-works-in-agno`,children:`How it works in Agno`}),`\n`,_jsxs(_components.p,{children:[`Agno uses `,_jsx(_components.code,{children:`OpenAIEmbedder`}),` as the default, but you can swap in any supported embedder. When you add content to a knowledge base, the embedder converts each chunk into a vector and stores it in your vector database. Later, when an agent searches, it embeds the query and finds the most similar vectors.`]}),`\n`,_jsx(_components.p,{children:`Here’s a basic setup:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`23`,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:`23`,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 `}),_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.knowledge.knowledge `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Knowledge`})]}),`\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.vectordb.pgvector `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` PgVector`})]}),`\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.knowledge.embedder.openai `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` OpenAIEmbedder`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Create knowledge base with embedder`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`knowledge `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Knowledge(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` vector_db`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`PgVector(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` db_url`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"postgresql+psycopg://ai:ai@localhost:5532/ai\"`}),_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:` table_name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"my_embeddings\"`}),_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:` embedder`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`OpenAIEmbedder(), `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Default embedder`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_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:` max_results`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Return top 2 most relevant chunks`})]}),`\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:`# Add content - gets embedded automatically`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`knowledge.add_content(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` text_content`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"The sky is blue during the day and dark at night.\"`})]}),`\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:`# Agent can now search this knowledge`})}),`\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(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`knowledge, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`search_knowledge`}),_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:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`agent.print_response(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"What color is the sky?\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`choosing-an-embedder`,children:`Choosing an embedder`}),`\n`,_jsx(_components.p,{children:`Pick based on your constraints:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Hosted vs local`}),`: Prefer local (e.g., Ollama, FastEmbed) for offline or strict data residency; hosted (OpenAI, Gemini, Voyage) for best quality and convenience.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Latency and cost`}),`: Smaller models are cheaper/faster; larger models often retrieve better.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Language support`}),`: Ensure your embedder supports the languages you expect.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dimension compatibility`}),`: Match your vector DB’s expected embedding size if it’s fixed.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`quick-comparison`,children:`Quick Comparison`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Embedder`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Best For`}),_jsx(_components.th,{children:`Cost`}),_jsx(_components.th,{children:`Performance`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`OpenAI`})}),_jsx(_components.td,{children:`Hosted`}),_jsx(_components.td,{children:`General use, proven quality`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`$$`}),_jsx(_components.td,{children:`Excellent`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Ollama`})}),_jsx(_components.td,{children:`Local`}),_jsx(_components.td,{children:`Privacy, offline, no API costs`}),_jsx(_components.td,{children:`Free`}),_jsx(_components.td,{children:`Good`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Voyage AI`})}),_jsx(_components.td,{children:`Hosted`}),_jsx(_components.td,{children:`Specialized retrieval tasks`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`$$$`}),_jsx(_components.td,{children:`Excellent`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Gemini`})}),_jsx(_components.td,{children:`Hosted`}),_jsx(_components.td,{children:`Google ecosystem, multilingual`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`$$`}),_jsx(_components.td,{children:`Excellent`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`FastEmbed`})}),_jsx(_components.td,{children:`Local`}),_jsx(_components.td,{children:`Fast local embeddings`}),_jsx(_components.td,{children:`Free`}),_jsx(_components.td,{children:`Good`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`HuggingFace`})}),_jsx(_components.td,{children:`Local/Hosted`}),_jsx(_components.td,{children:`Open source models, customization`}),_jsx(_components.td,{children:`Free/$`}),_jsx(_components.td,{children:`Variable`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`supported-embedders`,children:`Supported embedders`}),`\n`,_jsx(_components.p,{children:`The following embedders are supported:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/openai`,children:`OpenAI`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/cohere`,children:`Cohere`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/gemini`,children:`Gemini`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/aws_bedrock`,children:`AWS Bedrock`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/azure_openai`,children:`Azure OpenAI`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/fireworks`,children:`Fireworks`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/huggingface`,children:`HuggingFace`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/jina`,children:`Jina`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/mistral`,children:`Mistral`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/nebius`,children:`Nebius`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/ollama`,children:`Ollama`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/qdrant_fastembed`,children:`Qdrant FastEmbed`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/together`,children:`Together`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/voyageai`,children:`Voyage AI`})}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`best-practices`,children:`Best Practices`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Chunk your content wisely`}),`: Split long docs into 300–1,000 token chunks with 10-20% overlap. This balances context preservation with retrieval precision.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Store rich metadata`}),`: Include titles, source URLs, timestamps, and permissions with each chunk. This enables filtering and better context in responses.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Test your retrieval quality`}),`: Use a small set of test queries to evaluate if you’re finding the right chunks. Adjust chunking strategy and embedder if needed.`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Re-embed when you change models`}),`: If you switch embedders, you must re-embed all your content. Vectors from different models aren’t compatible.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`batch-embeddings`,children:`Batch Embeddings`}),`\n`,_jsx(_components.p,{children:`Many embedding providers support processing multiple texts in a single API call, known as batch embedding. This approach offers several advantages: it reduces the number of API requests,\nhelps avoid rate limits, and significantly improves performance when processing large amounts of text.`}),`\n`,_jsxs(_components.p,{children:[`To enable batch processing, set the `,_jsx(_components.code,{children:`enable_batch`}),` flag to `,_jsx(_components.code,{children:`True`}),` when configuring your embedder.\nThe `,_jsx(_components.code,{children:`batch_size`}),` paramater can be used to control the amount of texts sent per batch.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,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:`8`,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.knowledge.embedder.openai `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` OpenAIEmbedder`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`embedder`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`OpenAIEmbedder(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_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:`\"text-embedding-3-small\"`}),_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:` dimensions`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1536`}),_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_batch`}),_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:` batch_size`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`The following embedders currently support batching:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/azure_openai`,children:`Azure OpenAI`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/cohere`,children:`Cohere`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/fireworks`,children:`Fireworks`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/gemini`,children:`Gemini`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/jina`,children:`Jina`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/mistral`,children:`Mistral`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/nebius`,children:`Nebius`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/openai`,children:`OpenAI`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/together`,children:`Together`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/knowledge/embedder/voyageai`,children:`Voyage AI`})}),`\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":"What are Embedders?","sidebarTitle":"Overview","description":"Learn how to use embedders with Agno to convert complex information into vector representations.","keywords":["embedders","embeddings"],"href":"/concepts/knowledge/embedder/overview"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Why use embedders?","slug":"why-use-embedders","depth":3,"children":[]},{"title":"When to use embedders","slug":"when-to-use-embedders","depth":3,"children":[]},{"title":"How it works in Agno","slug":"how-it-works-in-agno","depth":3,"children":[]},{"title":"Choosing an embedder","slug":"choosing-an-embedder","depth":3,"children":[]},{"title":"Quick Comparison","slug":"quick-comparison","depth":4,"children":[]},{"title":"Supported embedders","slug":"supported-embedders","depth":3,"children":[]},{"title":"Best Practices","slug":"best-practices","depth":3,"children":[]},{"title":"Batch Embeddings","slug":"batch-embeddings","depth":3,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"spacesail","siteName":"Agno","title":"What are Embedders? - Agno","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"originalFileLocation":"concepts/knowledge/embedder/overview.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=\"description\" content=\"Learn how to use embedders with Agno to convert complex information into vector representations.\">\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/spacesail/R3tJL8w0yLY0dsHF/_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/spacesail/R3tJL8w0yLY0dsHF/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/spacesail/R3tJL8w0yLY0dsHF/_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/spacesail/R3tJL8w0yLY0dsHF/_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/spacesail/R3tJL8w0yLY0dsHF/_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/spacesail/R3tJL8w0yLY0dsHF/_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/spacesail/R3tJL8w0yLY0dsHF/_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/spacesail/R3tJL8w0yLY0dsHF/_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/spacesail/R3tJL8w0yLY0dsHF/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"What are Embedders? - Agno\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how to use embedders with Agno to convert complex information into vector representations.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Agno\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://spacesail.mintlify.app/concepts/knowledge/embedder/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://spacesail.mintlify.site/_mintlify/api/og/v2?division=Embeddings\u0026amp;title=What+are+Embedders%3F\u0026amp;description=Learn+how+to+use+embedders+with+Agno+to+convert+complex+information+into+vector+representations.\u0026amp;theme=0d57e9981e85b99047e75951\u0026amp;signature=3e4001ac63eadcc3b4dd0b17aae42188ab6d0c3019b68b228e96fe8c9ef0f979\">\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=\"What are Embedders? - Agno\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how to use embedders with Agno to convert complex information into vector representations.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://spacesail.mintlify.site/_mintlify/api/og/v2?division=Embeddings\u0026amp;title=What+are+Embedders%3F\u0026amp;description=Learn+how+to+use+embedders+with+Agno+to+convert+complex+information+into+vector+representations.\u0026amp;theme=0d57e9981e85b99047e75951\u0026amp;signature=3e4001ac63eadcc3b4dd0b17aae42188ab6d0c3019b68b228e96fe8c9ef0f979\">\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/spacesail/R3tJL8w0yLY0dsHF/_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://spacesail.mintlify.app/concepts/knowledge/embedder/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/concepts/knowledge/embedder/overview.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://spacesail.mintlify.app/#organization\",\"name\":\"Agno\",\"url\":\"https://spacesail.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/spacesail/j6oZ21rFI_VtZleU/logo/black.svg?fit=max\u0026auto=format\u0026n=j6oZ21rFI_VtZleU\u0026q=85\u0026s=79ef09842b7e6f9a9d6593bd98ac9297\"}},{\"@type\":\"WebSite\",\"@id\":\"https://spacesail.mintlify.app#website\",\"name\":\"Agno\",\"url\":\"https://spacesail.mintlify.app\",\"publisher\":{\"@id\":\"https://spacesail.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://spacesail.mintlify.app/concepts/knowledge/embedder/overview#webpage\",\"url\":\"https://spacesail.mintlify.app/concepts/knowledge/embedder/overview\",\"name\":\"What are Embedders?\",\"description\":\"Learn how to use embedders with Agno to convert complex information into vector representations.\",\"isPartOf\":{\"@id\":\"https://spacesail.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://spacesail.mintlify.app/concepts/knowledge/embedder/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://spacesail.mintlify.app/concepts/knowledge/embedder/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Learn\",\"item\":\"https://spacesail.mintlify.app/concepts/agents/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Knowledge\",\"item\":\"https://spacesail.mintlify.app/concepts/knowledge/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Building Knowledge Bases\",\"item\":\"https://spacesail.mintlify.app/concepts/knowledge/readers\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"What are Embedders?\",\"item\":\"https://spacesail.mintlify.app/concepts/knowledge/embedder/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://spacesail.mintlify.app/concepts/knowledge/embedder/overview#article\",\"headline\":\"What are Embedders?\",\"name\":\"What are Embedders?\",\"description\":\"Learn how to use embedders with Agno to convert complex information into vector representations.\",\"url\":\"https://spacesail.mintlify.app/concepts/knowledge/embedder/overview\",\"mainEntityOfPage\":{\"@id\":\"https://spacesail.mintlify.app/concepts/knowledge/embedder/overview#webpage\"},\"keywords\":\"embedders, embeddings\",\"publisher\":{\"@id\":\"https://spacesail.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://spacesail.mintlify.app#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":"Documentation","groups":[{"group":"Introduction","pages":[{"title":"What is Agno?","mode":"wide","href":"/introduction"},{"title":"Quickstart","mode":"wide","href":"/introduction/quickstart"},{"title":"Performance","mode":"wide","href":"/introduction/performance"},{"title":"Designed for Agent Engineering","sidebarTitle":"Key Features","mode":"wide","href":"/introduction/features"},{"title":"Getting Help","mode":"wide","href":"/introduction/getting-help"}]},{"group":"Learn","pages":[{"group":"Agents","pages":[{"title":"Agents","sidebarTitle":"Overview","mode":"wide","href":"/concepts/agents/overview"},{"title":"Building Agents","sidebarTitle":"Building Agents","href":"/concepts/agents/building-agents"},{"title":"Running Agents","sidebarTitle":"Running Agents","href":"/concepts/agents/running-agents"},{"title":"Debugging Agents","sidebarTitle":"Debugging Agents","href":"/concepts/agents/debugging-agents"},{"title":"Agent Sessions","sidebarTitle":"Chat History (Sessions)","href":"/concepts/agents/sessions"},{"title":"Input and Output","sidebarTitle":"Input and Output","href":"/concepts/agents/input-output"},{"title":"Context Engineering","href":"/concepts/agents/context"},{"title":"Dependencies","href":"/concepts/agents/dependencies"},{"title":"Agent State","href":"/concepts/agents/state"},{"title":"Storage","href":"/concepts/agents/storage"},{"title":"Memory","href":"/concepts/agents/memory"},{"title":"Knowledge","href":"/concepts/agents/knowledge"},{"title":"Tools","href":"/concepts/agents/tools"},{"title":"Multimodal Agents","href":"/concepts/agents/multimodal"},{"title":"Pre-hooks and Post-hooks","href":"/concepts/agents/pre-hooks-and-post-hooks"},{"group":"Guardrails","pages":[{"title":"Overview","href":"/concepts/agents/guardrails/overview"},{"title":"Prompt Injection Guardrail","sidebarTitle":"Prompt Injection","href":"/concepts/agents/guardrails/prompt-injection"},{"title":"PII Detection Guardrail","sidebarTitle":"PII Detection","href":"/concepts/agents/guardrails/pii"},{"title":"OpenAI Moderation Guardrail","sidebarTitle":"OpenAI Moderation","href":"/concepts/agents/guardrails/openai-moderation"}]},{"title":"Metrics","href":"/concepts/agents/metrics"},{"title":"Cancelling a Run","href":"/concepts/agents/run-cancel"},{"title":"Custom Loggers","href":"/concepts/agents/custom-logger"}]},{"group":"Teams","pages":[{"title":"Teams","sidebarTitle":"Overview","mode":"wide","href":"/concepts/teams/overview"},{"title":"Building Teams","sidebarTitle":"Building Teams","href":"/concepts/teams/building-teams"},{"title":"Running Teams","sidebarTitle":"Running Teams","href":"/concepts/teams/running-teams"},{"title":"How team execution works","sidebarTitle":"Team Member Delegation","href":"/concepts/teams/delegation"},{"title":"Debugging Teams","sidebarTitle":"Debugging Teams","href":"/concepts/teams/debugging-teams"},{"title":"Conversation History","sidebarTitle":"Chat History","href":"/concepts/teams/chat_history"},{"title":"Team Sessions","sidebarTitle":"Team Sessions","href":"/concepts/teams/sessions"},{"title":"Context Engineering","href":"/concepts/teams/context"},{"title":"Input and Output","sidebarTitle":"Input and Output","href":"/concepts/teams/input-output"},{"title":"Dependencies","href":"/concepts/teams/dependencies"},{"title":"Shared State","sidebarTitle":"Shared State","href":"/concepts/teams/state"},{"title":"Storage","href":"/concepts/teams/storage"},{"title":"Teams with Memory","sidebarTitle":"Memory","mode":"wide","href":"/concepts/teams/memory"},{"title":"Teams with Knowledge","sidebarTitle":"Knowledge","mode":"wide","href":"/concepts/teams/knowledge"},{"title":"Pre-hooks and Post-hooks","href":"/concepts/teams/pre-hooks-and-post-hooks"},{"title":"Guardrails","href":"/concepts/teams/guardrails"},{"title":"Metrics","href":"/concepts/teams/metrics"},{"title":"Cancelling a Run","href":"/concepts/teams/run-cancel"},{"title":"Custom Loggers","href":"/concepts/teams/custom-logger"}]},{"group":"Workflows","pages":[{"title":"What are Workflows?","sidebarTitle":"Overview","href":"/concepts/workflows/overview"},{"title":"Building Workflows","sidebarTitle":"Building Workflows","href":"/concepts/workflows/building-workflow"},{"title":"Running Workflows","sidebarTitle":"Running Workflows","href":"/concepts/workflows/running-workflow"},{"group":"Workflow Patterns","pages":[{"title":"Workflow Patterns","sidebarTitle":"Development Guide","href":"/concepts/workflows/workflow-patterns/overview"},{"title":"Sequential Workflows","href":"/concepts/workflows/workflow-patterns/sequential"},{"title":"Fully Python Workflow","href":"/concepts/workflows/workflow-patterns/fully-python-workflow"},{"title":"Step-Based Workflows","href":"/concepts/workflows/workflow-patterns/step-based-workflow"},{"title":"Custom Functions in Workflows","sidebarTitle":"Custom Functions in Workflows","href":"/concepts/workflows/workflow-patterns/custom-function-step-workflow"},{"title":"Conditional Workflow","href":"/concepts/workflows/workflow-patterns/conditional-workflow"},{"title":"Parallel Workflow","href":"/concepts/workflows/workflow-patterns/parallel-workflow"},{"title":"Iterative Workflow","href":"/concepts/workflows/workflow-patterns/iterative-workflow"},{"title":"Branching Workflow","href":"/concepts/workflows/workflow-patterns/branching-workflow"},{"title":"Grouped Steps Workflow","href":"/concepts/workflows/workflow-patterns/grouped-steps-workflow"},{"title":"Advanced Workflow Patterns","href":"/concepts/workflows/workflow-patterns/advanced-workflow-patterns"}]},{"title":"Input and Output","sidebarTitle":"Input and Output","href":"/concepts/workflows/input-and-output"},{"title":"How does shared state work between workflows, teams and agents?","sidebarTitle":"Workflow Session State","href":"/concepts/workflows/workflow_session_state"},{"title":"Additional Data and Metadata","sidebarTitle":"Passing Additional Data","mode":"wide","href":"/concepts/workflows/additional-data"},{"title":"Workflow History \u0026 Continuous Execution","sidebarTitle":"Workflow History","href":"/concepts/workflows/workflow_with_history"},{"title":"Conversational Workflows","href":"/concepts/workflows/conversational-workflows"},{"title":"Accessing Multiple Previous Steps","sidebarTitle":"Accessing Previous Steps","mode":"wide","href":"/concepts/workflows/access-previous-steps"},{"title":"Early Stopping","sidebarTitle":"Early Stopping","mode":"wide","href":"/concepts/workflows/early-stop"},{"title":"Workflow Cancellation","sidebarTitle":"Cancelling a Workflow","href":"/concepts/workflows/cancel-workflow"},{"title":"Workflow Tools","sidebarTitle":"Execute Workflow from an Agent","mode":"wide","href":"/concepts/workflows/workflow-tools"},{"title":"Background Workflow Execution","sidebarTitle":"Background Execution","mode":"wide","href":"/concepts/workflows/background-execution"}]},{"group":"Models","pages":[{"title":"What are Models?","sidebarTitle":"Overview","href":"/concepts/models/overview"},{"title":"Model as String","sidebarTitle":"Model as String","href":"/concepts/models/model-as-string"},{"title":"Compatibility Overview","href":"/concepts/models/compatibility"},{"title":"Response Caching","href":"/concepts/models/cache-response"},{"group":"Native Model Providers","pages":[{"title":"Anthropic Claude","href":"/concepts/models/anthropic"},{"title":"Cohere","href":"/concepts/models/cohere"},{"title":"DashScope","href":"/concepts/models/dashscope"},{"title":"DeepSeek","href":"/concepts/models/deepseek"},{"title":"Gemini","href":"/concepts/models/google"},{"title":"Meta","href":"/concepts/models/meta"},{"title":"Mistral","href":"/concepts/models/mistral"},{"group":"OpenAI","pages":[{"title":"OpenAI","href":"/concepts/models/openai"},{"title":"OpenAI Responses","href":"/concepts/models/openai-responses"}]},{"title":"Perplexity","href":"/concepts/models/perplexity"},{"title":"Vercel v0","href":"/concepts/models/vercel"},{"title":"xAI","href":"/concepts/models/xai"}]},{"group":"Local Model Providers","pages":[{"title":"Ollama","href":"/concepts/models/ollama"},{"title":"LlamaCpp","href":"/concepts/models/llama_cpp"},{"title":"LM Studio","href":"/concepts/models/lmstudio"},{"title":"vLLM","href":"/concepts/models/vllm"}]},{"group":"Cloud Model Providers","pages":[{"group":"AWS","pages":[{"title":"AWS Bedrock","href":"/concepts/models/aws-bedrock"},{"title":"AWS Claude","href":"/concepts/models/aws-claude"}]},{"group":"Azure","pages":[{"title":"Azure AI Foundry","href":"/concepts/models/azure-ai-foundry"},{"title":"Azure OpenAI","href":"/concepts/models/azure-openai"}]},{"title":"IBM WatsonX","href":"/concepts/models/ibm-watsonx"},{"group":"Vertex AI","pages":[{"title":"Vertex AI Claude","sidebarTitle":"Claude","href":"/concepts/models/vertexai-claude"}]}]},{"group":"Model Gateways \u0026 Aggregators","pages":[{"title":"AI/ML API","href":"/concepts/models/aimlapi"},{"group":"Cerebras","pages":[{"title":"Cerebras","href":"/concepts/models/cerebras"},{"title":"Cerebras OpenAI","href":"/concepts/models/cerebras_openai"}]},{"title":"CometAPI","href":"/concepts/models/cometapi"},{"title":"DeepInfra","href":"/concepts/models/deepinfra"},{"title":"Fireworks","href":"/concepts/models/fireworks"},{"title":"Groq","href":"/concepts/models/groq"},{"title":"HuggingFace","href":"/concepts/models/huggingface"},{"title":"LangDB","href":"/concepts/models/langdb"},{"group":"LiteLLM","pages":[{"title":"LiteLLM","href":"/concepts/models/litellm"},{"title":"LiteLLM OpenAI","href":"/concepts/models/litellm_openai"}]},{"title":"Nebius","href":"/concepts/models/nebius"},{"title":"Nexus","href":"/concepts/models/nexus"},{"title":"Nvidia","href":"/concepts/models/nvidia"},{"title":"OpenRouter","href":"/concepts/models/openrouter"},{"title":"Portkey","href":"/concepts/models/portkey"},{"title":"Requesty","href":"/concepts/models/requesty"},{"title":"Sambanova","href":"/concepts/models/sambanova"},{"title":"SiliconFlow","href":"/concepts/models/siliconflow"},{"title":"Together","href":"/concepts/models/together"}]},{"title":"OpenAI-compatible models","sidebarTitle":"Use OpenAI-compatible models","href":"/concepts/models/openai-like"}]},{"group":"Knowledge","pages":[{"title":"Introduction to Knowledge","sidebarTitle":"Overview","href":"/concepts/knowledge/overview"},{"title":"How Knowledge Works","href":"/concepts/knowledge/how-it-works"},{"title":"Getting Started with Knowledge","sidebarTitle":"Getting Started","href":"/concepts/knowledge/getting-started"},{"group":"Core Concepts","pages":[{"title":"Core Concepts \u0026 Terminology","sidebarTitle":"Terminology","href":"/concepts/knowledge/core-concepts/terminology"},{"title":"Knowledge Base Architecture","href":"/concepts/knowledge/core-concepts/knowledge-bases"},{"title":"Search \u0026 Retrieval","href":"/concepts/knowledge/core-concepts/search-retrieval"},{"title":"Knowledge Content Types","sidebarTitle":"Content Types","href":"/concepts/knowledge/content_types"},{"title":"Knowledge Contents DB","sidebarTitle":"Contents DB","href":"/concepts/knowledge/content_db"}]},{"group":"Vector Databases","pages":[{"title":"What are Vector Databases?","sidebarTitle":"Overview","href":"/concepts/vectordb/overview"},{"title":"PgVector Agent Knowledge","sidebarTitle":"PgVector","href":"/concepts/vectordb/pgvector"},{"title":"LanceDB Agent Knowledge","sidebarTitle":"LanceDB","href":"/concepts/vectordb/lancedb"},{"title":"Pinecone Agent Knowledge","sidebarTitle":"Pinecone","href":"/concepts/vectordb/pinecone"},{"title":"Qdrant Agent Knowledge","sidebarTitle":"Qdrant","href":"/concepts/vectordb/qdrant"},{"title":"ChromaDB Agent Knowledge","sidebarTitle":"ChromaDB","href":"/concepts/vectordb/chroma"},{"title":"Milvus Agent Knowledge","sidebarTitle":"Milvus","href":"/concepts/vectordb/milvus"},{"title":"Weaviate Agent Knowledge","sidebarTitle":"Weaviate","href":"/concepts/vectordb/weaviate"},{"title":"Couchbase Agent Knowledge","sidebarTitle":"Couchbase","href":"/concepts/vectordb/couchbase"},{"title":"Cassandra Agent Knowledge","sidebarTitle":"Cassandra","href":"/concepts/vectordb/cassandra"},{"title":"Clickhouse Agent Knowledge","sidebarTitle":"Clickhouse","href":"/concepts/vectordb/clickhouse"},{"title":"SingleStore Agent Knowledge","sidebarTitle":"SingleStore","href":"/concepts/vectordb/singlestore"},{"title":"Redis Agent Knowledge","sidebarTitle":"Redis","href":"/concepts/vectordb/redis"},{"title":"MongoDB Agent Knowledge","sidebarTitle":"MongoDB","href":"/concepts/vectordb/mongodb"},{"title":"Azure Cosmos DB MongoDB vCore Agent Knowledge","sidebarTitle":"Azure Cosmos DB MongoDB vCore","href":"/concepts/vectordb/azure_cosmos_mongodb"},{"title":"SurrealDB Agent Knowledge","sidebarTitle":"SurrealDB","href":"/concepts/vectordb/surrealdb"},{"title":"LightRAG Agent Knowledge","sidebarTitle":"LightRAG","href":"/concepts/vectordb/lightrag"}]},{"group":"Building Knowledge Bases","pages":[{"title":"Readers","href":"/concepts/knowledge/readers"},{"group":"Chunking","pages":[{"title":"What is Chunking?","sidebarTitle":"Overview","href":"/concepts/knowledge/chunking/overview"},{"title":"Fixed Size Chunking","href":"/concepts/knowledge/chunking/fixed-size-chunking"},{"title":"Semantic Chunking","href":"/concepts/knowledge/chunking/semantic-chunking"},{"title":"Recursive Chunking","href":"/concepts/knowledge/chunking/recursive-chunking"},{"title":"Document Chunking","href":"/concepts/knowledge/chunking/document-chunking"},{"title":"CSV Row Chunking","href":"/concepts/knowledge/chunking/csv-row-chunking"},{"title":"Markdown Chunking","href":"/concepts/knowledge/chunking/markdown-chunking"},{"title":"Agentic Chunking","href":"/concepts/knowledge/chunking/agentic-chunking"},{"title":"Custom Chunking","description":null,"href":"/concepts/knowledge/chunking/custom-chunking"}]},{"group":"Embeddings","pages":[{"title":"What are Embedders?","sidebarTitle":"Overview","href":"/concepts/knowledge/embedder/overview"},{"title":"OpenAI Embedder","sidebarTitle":"OpenAI","description":null,"href":"/concepts/knowledge/embedder/openai"},{"title":"Gemini Embedder","sidebarTitle":"Gemini","href":"/concepts/knowledge/embedder/gemini"},{"title":"Ollama Embedder","sidebarTitle":"Ollama","href":"/concepts/knowledge/embedder/ollama"},{"title":"Azure OpenAI Embedder","sidebarTitle":"Azure OpenAI","href":"/concepts/knowledge/embedder/azure_openai"},{"title":"Cohere Embedder","sidebarTitle":"Cohere","href":"/concepts/knowledge/embedder/cohere"},{"title":"Fireworks Embedder","sidebarTitle":"Fireworks","href":"/concepts/knowledge/embedder/fireworks"},{"title":"HuggingFace Embedder","sidebarTitle":"HuggingFace","href":"/concepts/knowledge/embedder/huggingface"},{"title":"Mistral Embedder","sidebarTitle":"Mistral","href":"/concepts/knowledge/embedder/mistral"},{"title":"Nebius Embedder","sidebarTitle":"Nebius","href":"/concepts/knowledge/embedder/nebius"},{"title":"Qdrant FastEmbed Embedder","sidebarTitle":"FastEmbed","href":"/concepts/knowledge/embedder/qdrant_fastembed"},{"title":"SentenceTransformers Embedder","sidebarTitle":"SentenceTransformers","href":"/concepts/knowledge/embedder/sentencetransformers"},{"title":"Together Embedder","sidebarTitle":"Together","href":"/concepts/knowledge/embedder/together"},{"title":"vLLM Embedder","sidebarTitle":"vLLM","href":"/concepts/knowledge/embedder/vllm"},{"title":"Voyage AI Embedder","sidebarTitle":"Voyage AI","href":"/concepts/knowledge/embedder/voyageai"},{"title":"AWS Bedrock Embedder","sidebarTitle":"AWS Bedrock","href":"/concepts/knowledge/embedder/aws_bedrock"}]},{"group":"Knowledge Filters","pages":[{"title":"What are Knowledge Filters?","sidebarTitle":"Overview","href":"/concepts/knowledge/filters/overview"},{"title":null,"href":"/concepts/knowledge/filters/manual-filters"},{"title":null,"href":"/concepts/knowledge/filters/agentic-filters"}]}]},{"group":"Advanced","pages":[{"title":"Implementing a Custom Retriever","sidebarTitle":"Custom Retriever","href":"/concepts/knowledge/advanced/custom-retriever"},{"title":"Hybrid Search- Combining Keyword and Vector Search","href":"/concepts/knowledge/advanced/hybrid-search"},{"title":"Performance Quick Wins","href":"/concepts/knowledge/advanced/performance-tips"}]}]},{"group":"Memory","pages":[{"title":"What is Memory?","sidebarTitle":"Overview","href":"/concepts/memory/overview"},{"title":"Working with Memories","sidebarTitle":"Working with Memories","href":"/concepts/memory/working-with-memories"},{"title":"Production Best Practices","sidebarTitle":"Best Practices","href":"/concepts/memory/production-best-practices"}]},{"group":"Reasoning","pages":[{"title":"What is Reasoning?","sidebarTitle":"Overview","href":"/concepts/reasoning/overview"},{"title":"Reasoning Models","href":"/concepts/reasoning/reasoning-models"},{"title":"Reasoning Tools","href":"/concepts/reasoning/reasoning-tools"},{"title":"Reasoning Agents","href":"/concepts/reasoning/reasoning-agents"}]},{"group":"Tools","pages":[{"title":"What are Tools?","sidebarTitle":"Overview","href":"/concepts/tools/overview"},{"title":"Creating your own tools","href":"/concepts/tools/custom-tools"},{"title":"Hooks","href":"/concepts/tools/hooks"},{"group":"Toolkits","pages":[{"title":"Toolkit Index","href":"/concepts/tools/toolkits/toolkits"},{"group":"Search","pages":[{"title":"Arxiv","href":"/concepts/tools/toolkits/search/arxiv"},{"title":"BaiduSearch","href":"/concepts/tools/toolkits/search/baidusearch"},{"title":"DuckDuckGo","href":"/concepts/tools/toolkits/search/duckduckgo"},{"title":"Exa","href":"/concepts/tools/toolkits/search/exa"},{"title":"Google Search","href":"/concepts/tools/toolkits/search/googlesearch"},{"title":"Hacker News","href":"/concepts/tools/toolkits/search/hackernews"},{"title":"Linkup","href":"/concepts/tools/toolkits/search/linkup"},{"title":"Pubmed","href":"/concepts/tools/toolkits/search/pubmed"},{"title":"Searxng","href":"/concepts/tools/toolkits/search/searxng"},{"title":"Serpapi","href":"/concepts/tools/toolkits/search/serpapi"},{"title":"SerperApi","href":"/concepts/tools/toolkits/search/serper"},{"title":"Tavily","href":"/concepts/tools/toolkits/search/tavily"},{"title":"Valyu","href":"/concepts/tools/toolkits/search/valyu"},{"title":"Wikipedia","href":"/concepts/tools/toolkits/search/wikipedia"},{"title":"Brave Search","href":"/concepts/tools/toolkits/search/bravesearch"}]},{"group":"Social","pages":[{"title":"Discord","href":"/concepts/tools/toolkits/social/discord"},{"title":"Email","href":"/concepts/tools/toolkits/social/email"},{"title":"Gmail","href":"/concepts/tools/toolkits/social/gmail"},{"title":"Reddit","href":"/concepts/tools/toolkits/social/reddit"},{"title":"Slack","href":"/concepts/tools/toolkits/social/slack"},{"title":"Telegram","href":"/concepts/tools/toolkits/social/telegram"},{"title":"Twilio","href":"/concepts/tools/toolkits/social/twilio"},{"title":"Webex","href":"/concepts/tools/toolkits/social/webex"},{"title":"WhatsApp","href":"/concepts/tools/toolkits/social/whatsapp"},{"title":"X (Twitter)","href":"/concepts/tools/toolkits/social/x"},{"title":"Zoom","href":"/concepts/tools/toolkits/social/zoom"}]},{"group":"Web Scraping","pages":[{"title":"AgentQL","href":"/concepts/tools/toolkits/web_scrape/agentql"},{"title":"Browserbase","href":"/concepts/tools/toolkits/web_scrape/browserbase"},{"title":"Crawl4AI","href":"/concepts/tools/toolkits/web_scrape/crawl4ai"},{"title":"Firecrawl","href":"/concepts/tools/toolkits/web_scrape/firecrawl"},{"title":"Jina Reader","href":"/concepts/tools/toolkits/web_scrape/jina_reader"},{"title":"Newspaper","href":"/concepts/tools/toolkits/web_scrape/newspaper"},{"title":"Newspaper4k","href":"/concepts/tools/toolkits/web_scrape/newspaper4k"},{"title":"Spider","href":"/concepts/tools/toolkits/web_scrape/spider"},{"title":"Trafilatura","href":"/concepts/tools/toolkits/web_scrape/trafilatura"},{"title":"Website Tools","href":"/concepts/tools/toolkits/web_scrape/website"},{"title":"ScrapeGraph","href":"/concepts/tools/toolkits/web_scrape/scrapegraph"},{"title":"Oxylabs","href":"/concepts/tools/toolkits/web_scrape/oxylabs"},{"title":"BrightData","href":"/concepts/tools/toolkits/web_scrape/brightdata"}]},{"group":"Data","pages":[{"title":"CSV","href":"/concepts/tools/toolkits/database/csv"},{"title":"DuckDb","href":"/concepts/tools/toolkits/database/duckdb"},{"title":"Google BigQuery","href":"/concepts/tools/toolkits/database/google_bigquery"},{"title":"Neo4j","href":"/concepts/tools/toolkits/database/neo4j"},{"title":"Pandas","href":"/concepts/tools/toolkits/database/pandas"},{"title":"Postgres","href":"/concepts/tools/toolkits/database/postgres"},{"title":"SQL","href":"/concepts/tools/toolkits/database/sql"},{"title":"Zep","href":"/concepts/tools/toolkits/database/zep"}]},{"group":"Local","pages":[{"title":"Calculator","href":"/concepts/tools/toolkits/local/calculator"},{"title":"Docker","href":"/concepts/tools/toolkits/local/docker"},{"title":"File","href":"/concepts/tools/toolkits/local/file"},{"title":"Local File System","href":"/concepts/tools/toolkits/local/local_file_system"},{"title":"Python","href":"/concepts/tools/toolkits/local/python"},{"title":"Shell","href":"/concepts/tools/toolkits/local/shell"},{"title":"Sleep","href":"/concepts/tools/toolkits/local/sleep"}]},{"group":"File Generation","pages":[{"title":"File Generation","href":"/concepts/tools/toolkits/file-generation/file-generation"}]},{"group":"Models","pages":[{"title":"Azure OpenAI","href":"/concepts/tools/toolkits/models/azure_openai"},{"title":"Gemini","href":"/concepts/tools/toolkits/models/gemini"},{"title":"Groq","href":"/concepts/tools/toolkits/models/groq"},{"title":"Morph","href":"/concepts/tools/toolkits/models/morph"},{"title":"Nebius","href":"/concepts/tools/toolkits/models/nebius"},{"title":"OpenAI","href":"/concepts/tools/toolkits/models/openai"}]},{"group":"Additional Toolkits","pages":[{"title":"Airflow","href":"/concepts/tools/toolkits/others/airflow"},{"title":"Apify","href":"/concepts/tools/toolkits/others/apify"},{"title":"AWS Lambda","href":"/concepts/tools/toolkits/others/aws_lambda"},{"title":"AWS SES","href":"/concepts/tools/toolkits/others/aws_ses"},{"title":"Bitbucket","href":"/concepts/tools/toolkits/others/bitbucket"},{"title":"Brandfetch","href":"/concepts/tools/toolkits/others/brandfetch"},{"title":"Cal.com","href":"/concepts/tools/toolkits/others/calcom"},{"title":"Cartesia","href":"/concepts/tools/toolkits/others/cartesia"},{"title":"ClickUp","href":"/concepts/tools/toolkits/others/clickup"},{"title":"Composio","href":"/concepts/tools/toolkits/others/composio"},{"title":"Confluence","href":"/concepts/tools/toolkits/others/confluence"},{"title":"Custom API","href":"/concepts/tools/toolkits/others/custom_api"},{"title":"Dalle","href":"/concepts/tools/toolkits/others/dalle"},{"title":"Daytona","href":"/concepts/tools/toolkits/others/daytona"},{"title":"Desi Vocal","href":"/concepts/tools/toolkits/others/desi_vocal"},{"title":"Eleven Labs","href":"/concepts/tools/toolkits/others/eleven_labs"},{"title":"E2B","href":"/concepts/tools/toolkits/others/e2b"},{"title":"EVM (Ethereum Virtual Machine)","href":"/concepts/tools/toolkits/others/evm"},{"title":"Fal","href":"/concepts/tools/toolkits/others/fal"},{"title":"Financial Datasets API","href":"/concepts/tools/toolkits/others/financial_datasets"},{"title":"Giphy","href":"/concepts/tools/toolkits/others/giphy"},{"title":"Github","href":"/concepts/tools/toolkits/others/github"},{"title":"Google Maps","href":"/concepts/tools/toolkits/others/google_maps"},{"title":"Google Calendar","href":"/concepts/tools/toolkits/others/googlecalendar"},{"title":"Google Sheets","href":"/concepts/tools/toolkits/others/google_sheets"},{"title":"Jira","href":"/concepts/tools/toolkits/others/jira"},{"title":"Knowledge Tools","href":"/concepts/tools/toolkits/others/knowledge"},{"title":"Linear","href":"/concepts/tools/toolkits/others/linear"},{"title":"Lumalabs","href":"/concepts/tools/toolkits/others/lumalabs"},{"title":"Mem0","href":"/concepts/tools/toolkits/others/mem0"},{"title":"Memori","href":"/concepts/tools/toolkits/others/memori"},{"title":"MLX Transcribe","href":"/concepts/tools/toolkits/others/mlx_transcribe"},{"title":"ModelsLabs","href":"/concepts/tools/toolkits/others/models_labs"},{"title":"MoviePy Video Tools","href":"/concepts/tools/toolkits/others/moviepy"},{"title":"Notion Tools","href":"/concepts/tools/toolkits/others/notion"},{"title":"OpenCV","href":"/concepts/tools/toolkits/others/opencv"},{"title":"OpenBB","href":"/concepts/tools/toolkits/others/openbb"},{"title":"OpenWeather","href":"/concepts/tools/toolkits/others/openweather"},{"title":"Reasoning","href":"/concepts/tools/toolkits/others/reasoning"},{"title":"Replicate","href":"/concepts/tools/toolkits/others/replicate"},{"title":"Resend","href":"/concepts/tools/toolkits/others/resend"},{"title":"Todoist","href":"/concepts/tools/toolkits/others/todoist"},{"title":"Trello","href":"/concepts/tools/toolkits/others/trello"},{"title":"User Control Flow","href":"/concepts/tools/toolkits/others/user_control_flow"},{"title":"Visualization","href":"/concepts/tools/toolkits/others/visualization"},{"title":"Web Browser Tools","href":"/concepts/tools/toolkits/others/web-browser"},{"title":"Web Tools","href":"/concepts/tools/toolkits/others/webtools"},{"title":"Yfinance","href":"/concepts/tools/toolkits/others/yfinance"},{"title":"Youtube","href":"/concepts/tools/toolkits/others/youtube"},{"title":"Zendesk","href":"/concepts/tools/toolkits/others/zendesk"}]}]},{"group":"MCP","pages":[{"title":"Model Context Protocol (MCP)","sidebarTitle":"Overview","href":"/concepts/tools/mcp/overview"},{"title":"MCP Toolbox","sidebarTitle":"MCP Toolbox","href":"/concepts/tools/mcp/mcp-toolbox"},{"title":"Multiple MCP Servers","href":"/concepts/tools/mcp/multiple-servers"},{"group":"Transports","pages":[{"title":"Stdio Transport","sidebarTitle":"stdio","href":"/concepts/tools/mcp/transports/stdio"},{"title":"Streamable HTTP Transport","sidebarTitle":"Streamable HTTP","href":"/concepts/tools/mcp/transports/streamable_http"},{"title":"SSE Transport","sidebarTitle":"SSE","href":"/concepts/tools/mcp/transports/sse"}]},{"title":"Understanding Server Parameters","href":"/concepts/tools/mcp/server-params"}]},{"group":"Reasoning Tools","pages":[{"title":"Reasoning Tools","sidebarTitle":"Reasoning Tools","href":"/concepts/tools/reasoning_tools/reasoning-tools"},{"title":"Workflow Tools","sidebarTitle":"Workflow Tools","href":"/concepts/tools/reasoning_tools/workflow-tools"},{"title":"Knowledge Tools","sidebarTitle":"Knowledge Tools","href":"/concepts/tools/reasoning_tools/knowledge-tools"},{"title":"Memory Tools","sidebarTitle":"Memory Tools","href":"/concepts/tools/reasoning_tools/memory-tools"}]},{"title":"Async Tools","mode":"wide","href":"/concepts/tools/async-tools"},{"title":"Tool Call Limit","href":"/concepts/tools/tool-call-limit"},{"title":"Exceptions \u0026 Retries","href":"/concepts/tools/exceptions"},{"title":"Including and excluding tools","href":"/concepts/tools/selecting-tools"},{"title":"Tool Result Caching","mode":"wide","href":"/concepts/tools/caching"},{"title":"Updating Tools","href":"/concepts/tools/attaching-tools"}]},{"group":"Multimodal","pages":[{"title":"Overview","href":"/concepts/multimodal/overview"},{"group":"Images","pages":[{"title":"Image As Input","mode":"wide","href":"/concepts/multimodal/images/image_input"},{"title":"Image Model Output","mode":"wide","href":"/concepts/multimodal/images/image_output"},{"title":"Image Generation Tools","mode":"wide","href":"/concepts/multimodal/images/image_generation"}]},{"group":"Audio","pages":[{"title":"Audio As Input","mode":"wide","href":"/concepts/multimodal/audio/audio_input"},{"title":"Audio Generation Tools","mode":"wide","href":"/concepts/multimodal/audio/audio_generation"},{"title":"Audio Model Output","mode":"wide","href":"/concepts/multimodal/audio/audio_output"},{"title":"Speech-to-Text","href":"/concepts/multimodal/audio/speech-to-text"}]},{"group":"Video","pages":[{"title":"Video as input","mode":"wide","href":"/concepts/multimodal/video/video_input"},{"title":"Video Generation Tools","mode":"wide","href":"/concepts/multimodal/video/video_generation"}]},{"group":"Files","pages":[{"title":"Files As Input","mode":"wide","href":"/concepts/multimodal/files/file_input"},{"title":"Files Generation Tools","mode":"wide","href":"/concepts/multimodal/files/file_generation"}]}]},{"group":"Human-in-the-Loop","pages":[{"title":"Human-in-the-Loop in Agents","href":"/concepts/hitl/overview"}]},{"group":"Storage","pages":[{"title":"What is Storage?","sidebarTitle":"Overview","href":"/concepts/db/overview"},{"title":"PostgreSQL","sidebarTitle":"Postgres","href":"/concepts/db/postgres"},{"title":"Async PostgreSQL","sidebarTitle":"Async Postgres","href":"/concepts/db/async_postgres"},{"title":"MySQL","sidebarTitle":"MySQL","href":"/concepts/db/mysql"},{"title":"SQLite","sidebarTitle":"Sqlite","href":"/concepts/db/sqlite"},{"title":"Async SQLite","sidebarTitle":"Async Sqlite","href":"/concepts/db/async_sqlite"},{"title":"In-Memory Storage","sidebarTitle":"In-Memory","href":"/concepts/db/in_memory"},{"title":"DynamoDB","sidebarTitle":"DynamoDB","href":"/concepts/db/dynamodb"},{"title":"MongoDB Database","sidebarTitle":"Mongo","href":"/concepts/db/mongodb"},{"title":"Async MongoDB","sidebarTitle":"Async Mongo","href":"/concepts/db/async_mongo"},{"title":"JSON Files as Database","sidebarTitle":"JSON","href":"/concepts/db/json"},{"title":"Singlestore","sidebarTitle":"Singlestore","href":"/concepts/db/singlestore"},{"title":"Redis","sidebarTitle":"Redis","href":"/concepts/db/redis"},{"title":"JSON files as database, on Google Cloud Storage (GCS)","sidebarTitle":"GCS","href":"/concepts/db/gcs"},{"title":"Firestore","sidebarTitle":"Firestore","href":"/concepts/db/firestore"},{"title":"Supabase","sidebarTitle":"Supabase","href":"/concepts/db/supabase"},{"title":"Neon","sidebarTitle":"Neon","href":"/concepts/db/neon"}]},{"group":"Evals","pages":[{"title":"Simple Agent Evals","sidebarTitle":"Overview","href":"/concepts/evals/overview"},{"title":"Accuracy Evals","sidebarTitle":"Accuracy","href":"/concepts/evals/accuracy"},{"title":"Performance Evals","sidebarTitle":"Performance","href":"/concepts/evals/performance"},{"title":"Reliability Evals","sidebarTitle":"Reliability","href":"/concepts/evals/reliability"}]},{"group":"Other Integrations","pages":[{"title":"Discord Bot","href":"/integrations/discord/overview"},{"group":"Observability","pages":[{"title":"OpenTelemetry","sidebarTitle":"Overview","href":"/integrations/observability/overview"},{"title":"AgentOps","href":"/integrations/observability/agentops"},{"title":"Arize","href":"/integrations/observability/arize"},{"title":"Atla","href":"/integrations/observability/atla"},{"title":"LangDB","href":"/integrations/observability/langdb"},{"title":"Langfuse","href":"/integrations/observability/langfuse"},{"title":"LangSmith","href":"/integrations/observability/langsmith"},{"title":"Langtrace","href":"/integrations/observability/langtrace"},{"title":"Maxim","href":"/integrations/observability/maxim"},{"title":"OpenLIT","href":"/integrations/observability/openlit"},{"title":"Weave","href":"/integrations/observability/weave"}]},{"group":"Testing","pages":[{"title":"Scenario Testing","href":"/integrations/testing/scenario-testing"}]}]},{"title":"Agno Telemetry","mode":"wide","href":"/concepts/telemetry"}]},{"group":"Help","pages":[{"title":"Install \u0026 Setup","sidebarTitle":"Agno Install \u0026 Setup","href":"/how-to/install"},{"title":"Agno v2.0 Changelog","sidebarTitle":"Agno v2.0 Changelog","href":"/how-to/v2-changelog"},{"title":"Migrating to Agno v2.0","sidebarTitle":"Agno v2.0 Migration Guide","href":"/how-to/v2-migration"},{"title":"Migrating to Workflows 2.0","sidebarTitle":"Workflows 2.0 Migration Guide","href":"/how-to/workflows-migration"},{"title":"Cursor Rules for Building Agents","href":"/how-to/cursor-rules"},{"title":"Contributing to Agno","href":"/how-to/contribute"}]}]},{"tab":"AgentOS","pages":[{"title":"AgentOS","href":"/agent-os/introduction"}]},{"tab":"Tutorials","hidden":true,"pages":[{"title":"Tutorials","href":"/tutorials/overview"}]},{"tab":"Examples","pages":[{"title":"Examples","href":"/examples/introduction"}]},{"tab":"Deploy","pages":[{"title":"Deploy","href":"/deploy/introduction"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference/agents/agent"}]},{"tab":"FAQs","pages":[{"title":"FAQs","href":"/faq/environment-variables"}]}]},"basePath":"","title":"What are Embedders? - Agno","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}