Skip to main content
Register cloud storage providers on a Knowledge instance with content_sources. Each provider has .file() and .folder() methods that create content references you pass to knowledge.insert().

Supported Providers

All configs are importable from agno.knowledge.remote_content.

Provider Configuration

S3Config

GcsConfig

GitHubConfig

Authenticate with either a personal access token (token) or a GitHub App (app_id, installation_id, private_key). GitHub App auth requires pip install PyJWT cryptography.

SharePointConfig

AzureBlobConfig

Supports two authentication methods: Service Principal (Azure AD client credentials) and SAS (Shared Access Signature) token. Provide one or the other, not both.
Service Principal auth requires the Storage Blob Data Reader (or higher) role on the storage account.

Inserting Content

Each config has .file() and .folder() methods that return content references for knowledge.insert().

Browsing S3 Files

S3Config supports paginated file listing with list_files(). This is useful for building file pickers or exploring bucket contents before ingesting.
An async variant alist_files() is also available with the same signature.

Multiple Sources

Register multiple providers on a single Knowledge instance.

Using sources through AgentOS

When the Knowledge instance is attached to AgentOS, every config registered in content_sources is exposed through the HTTP API. Discover them with GET /knowledge/config (under remote_content_sources), upload with POST /knowledge/remote-content using the config’s id, and (for S3) browse files with GET /knowledge/{knowledge_id}/sources/{source_id}/files. See Remote Content for the full API workflow, source_params overrides, and per-source behavior.

Next Steps