content_sources. Each provider has .file() and .folder() methods that create content references you pass to knowledge.insert().
Supported Providers
| Provider | Config Class | Install |
|---|---|---|
| Amazon S3 | S3Config | pip install boto3 |
| Google Cloud Storage | GcsConfig | pip install google-cloud-storage |
| SharePoint | SharePointConfig | pip install msal requests |
| GitHub | GitHubConfig | pip install requests |
| Azure Blob Storage | AzureBlobConfig | pip install azure-identity azure-storage-blob |
agno.knowledge.remote_content.
Provider Configuration
S3Config
| Field | Type | Default | Description |
|---|---|---|---|
id | str | required | Unique identifier for this source |
name | str | required | Display name |
bucket_name | str | required | S3 bucket name |
region | Optional[str] | None | AWS region |
aws_access_key_id | Optional[str] | None | AWS access key. Falls back to default credential chain. |
aws_secret_access_key | Optional[str] | None | AWS secret key. Falls back to default credential chain. |
prefix | Optional[str] | None | Default prefix for browsing and listing |
GcsConfig
| Field | Type | Default | Description |
|---|---|---|---|
id | str | required | Unique identifier |
name | str | required | Display name |
bucket_name | str | required | GCS bucket name |
project | Optional[str] | None | GCP project ID |
credentials_path | Optional[str] | None | Path to GCP credentials file |
prefix | Optional[str] | None | Default prefix |
GitHubConfig
| Field | Type | Default | Description |
|---|---|---|---|
id | str | required | Unique identifier |
name | str | required | Display name |
repo | str | required | Repository in owner/repo format |
token | Optional[str] | None | GitHub personal access token (needs Contents: read) |
branch | Optional[str] | None | Branch name |
path | Optional[str] | None | Default path filter |
SharePointConfig
| Field | Type | Default | Description |
|---|---|---|---|
id | str | required | Unique identifier |
name | str | required | Display name |
tenant_id | str | required | Azure AD tenant ID |
client_id | str | required | Azure AD application client ID |
client_secret | str | required | Azure AD application client secret |
hostname | str | required | SharePoint hostname |
site_path | Optional[str] | None | Site path (e.g., /sites/Engineering) |
site_id | Optional[str] | None | Full site ID |
folder_path | Optional[str] | None | Default folder path |
AzureBlobConfig
| Field | Type | Default | Description |
|---|---|---|---|
id | str | required | Unique identifier |
name | str | required | Display name |
tenant_id | str | required | Azure AD tenant ID |
client_id | str | required | Azure AD application client ID |
client_secret | str | required | Azure AD application client secret |
storage_account | str | required | Azure storage account name |
container | str | required | Blob container name |
prefix | Optional[str] | None | Default prefix |
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.
| Parameter | Type | Default | Description |
|---|---|---|---|
prefix | Optional[str] | None | Path prefix filter. Overrides the config’s prefix. |
delimiter | str | "/" | Folder delimiter |
limit | int | 100 | Files per page (1-1000) |
page | int | 1 | Page number (1-indexed) |
alist_files() is also available with the same signature.
Multiple Sources
Register multiple providers on a single Knowledge instance./knowledge/{id}/sources API endpoint for listing and browsing.
Next Steps
| Task | Guide |
|---|---|
| Content types overview | Content Types |
| Filter search results | Filtering |
| Set up a vector database | Vector Databases |