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
- SAS Token
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 incontent_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.