JSON files as database, on Google Cloud Storage (GCS)
Agno supports using Google Cloud Storage (GCS) as a database with the GcsJsonDb class.
Session data will be stored as JSON blobs in a GCS bucket.You can get started with GCS following their Get Started guide.
import uuidimport google.authfrom agno.agent import Agentfrom agno.db.gcs_json import GcsJsonDb# Obtain the default credentials and project id from your gcloud CLI session.credentials, project_id = google.auth.default()# Generate a unique bucket name using a base name and a UUID4 suffix.base_bucket_name = "example-gcs-bucket"unique_bucket_name = f"{base_bucket_name}-{uuid.uuid4().hex[:12]}"print(f"Using bucket: {unique_bucket_name}")# Initialize GCSJsonDb with explicit credentials, unique bucket name, and project.db = GcsJsonDb( bucket_name=unique_bucket_name, prefix="agent/", project=project_id, credentials=credentials,)# Setup your Agent with the Databaseagent = Agent(db=db)
{"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.4087","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/db/gcs","slug":"/concepts/db/gcs","pageMetadata":{"title":"JSON files as database, on Google Cloud Storage (GCS)","sidebarTitle":"GCS","description":null,"href":"/concepts/db/gcs"},"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`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Agno supports using `,_jsx(_components.a,{href:`https://cloud.google.com/storage`,children:`Google Cloud Storage (GCS)`}),` as a database with the `,_jsx(_components.code,{children:`GcsJsonDb`}),` class.\nSession data will be stored as JSON blobs in a GCS bucket.`]}),`\n`,_jsxs(_components.p,{children:[`You can get started with GCS following their `,_jsx(_components.a,{href:`https://cloud.google.com/docs/get-started`,children:`Get Started guide`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`usage`,children:`Usage`}),`\n`,_jsx(CodeBlock,{filename:`gcs_for_agent.py`,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:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` uuid`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` google.auth`})]}),`\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.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.db.gcs_json `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` GcsJsonDb`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Obtain the default credentials and project id from your gcloud CLI session.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`credentials, project_id `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` google.auth.default()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Generate a unique bucket name using a base name and a UUID4 suffix.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`base_bucket_name `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"example-gcs-bucket\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`unique_bucket_name `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`base_bucket_name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`-`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`uuid.uuid4().hex[:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`12`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\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:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Using bucket: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`unique_bucket_name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},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`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Initialize GCSJsonDb with explicit credentials, unique bucket name, and project.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`db `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` GcsJsonDb(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` bucket_name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`unique_bucket_name,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` prefix`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"agent/\"`}),_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:` project`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`project_id,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` credentials`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`credentials,`})]}),`\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:`# Setup your Agent with the Database`})}),`\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:`db`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`db)`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`params`,children:`Params`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`id`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Optional[str]`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`The ID of the database instance. UUID by default.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`bucket_name`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`str`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`Name of the GCS bucket where JSON files will be stored.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`prefix`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Optional[str]`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`Path prefix for organizing files in the bucket. Defaults to \"agno/\".`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`session_table`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Optional[str]`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`Name of the JSON file to store sessions (without .json extension).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`memory_table`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Optional[str]`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`Name of the JSON file to store user memories.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`metrics_table`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Optional[str]`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`Name of the JSON file to store metrics.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`eval_table`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Optional[str]`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`Name of the JSON file to store evaluation runs.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`knowledge_table`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Optional[str]`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`Name of the JSON file to store knowledge content.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`project`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Optional[str]`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`GCP project ID. If None, uses default project.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`credentials`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Optional[Any]`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`GCP credentials. If None, uses default credentials.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`developer-resources`,children:`Developer Resources`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`View `,_jsx(_components.a,{href:`https://github.com/agno-agi/agno/tree/main/cookbook/db/gcs/gcs_json_for_agent.py`,children:`Cookbook`})]}),`\n`,_jsxs(_components.li,{children:[`see full example `,_jsx(_components.a,{href:`/examples/concepts/db/gcs/gcs_for_agent`,children:`here`})]}),`\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":"JSON files as database, on Google Cloud Storage (GCS)","sidebarTitle":"GCS","description":null,"href":"/concepts/db/gcs"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Usage","slug":"usage","depth":2,"children":[]},{"title":"Params","slug":"params","depth":2,"children":[]},{"title":"Developer Resources","slug":"developer-resources","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"spacesail","siteName":"Agno","title":"JSON files as database, on Google Cloud Storage (GCS) - Agno","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"originalFileLocation":"concepts/db/gcs.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/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=\"JSON files as database, on Google Cloud Storage (GCS) - Agno\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Agno\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://spacesail.mintlify.app/concepts/db/gcs\">\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=Storage\u0026amp;title=JSON+files+as+database%2C+on+Google+Cloud+Storage+%28GCS%29\u0026amp;theme=0d57e9981e85b99047e75951\u0026amp;signature=c385787ee19a7d869abcab129bec3485942fbb9c9cb0505b0f97b77f3e55d8f2\">\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=\"JSON files as database, on Google Cloud Storage (GCS) - Agno\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://spacesail.mintlify.site/_mintlify/api/og/v2?division=Storage\u0026amp;title=JSON+files+as+database%2C+on+Google+Cloud+Storage+%28GCS%29\u0026amp;theme=0d57e9981e85b99047e75951\u0026amp;signature=c385787ee19a7d869abcab129bec3485942fbb9c9cb0505b0f97b77f3e55d8f2\">\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/db/gcs\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/concepts/db/gcs.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/db/gcs#webpage\",\"url\":\"https://spacesail.mintlify.app/concepts/db/gcs\",\"name\":\"JSON files as database, on Google Cloud Storage (GCS)\",\"isPartOf\":{\"@id\":\"https://spacesail.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://spacesail.mintlify.app/concepts/db/gcs#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://spacesail.mintlify.app/concepts/db/gcs#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Learn\",\"item\":\"https://spacesail.mintlify.app/concepts/agents/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Storage\",\"item\":\"https://spacesail.mintlify.app/concepts/db/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"JSON files as database, on Google Cloud Storage (GCS)\",\"item\":\"https://spacesail.mintlify.app/concepts/db/gcs\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://spacesail.mintlify.app/concepts/db/gcs#article\",\"headline\":\"JSON files as database, on Google Cloud Storage (GCS)\",\"name\":\"JSON files as database, on Google Cloud Storage (GCS)\",\"url\":\"https://spacesail.mintlify.app/concepts/db/gcs\",\"mainEntityOfPage\":{\"@id\":\"https://spacesail.mintlify.app/concepts/db/gcs#webpage\"},\"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","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","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","description":"Learn to use Redis as a database for your Agents","sidebarTitle":"Redis","href":"/concepts/db/redis"},{"title":"JSON files as database, on Google Cloud Storage (GCS)","sidebarTitle":"GCS","href":"/concepts/db/gcs"},{"title":"Firestore","description":"Learn to use Firestore as a database for your Agents","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":"JSON files as database, on Google Cloud Storage (GCS) - Agno","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":[],"chunks":[]}