# agent adl create

Create an Agentforce Data Library.

## Description for agent adl create

Creates a new data library in the target org. The --source-type flag determines the type of library: SFDRIVE (file upload), KNOWLEDGE (Salesforce Knowledge articles), or RETRIEVER (existing active Custom Retriever).

For SFDRIVE libraries, creation provisions the full Data Cloud pipeline (DLO → DMO → SearchIndex → Retriever). Upload files with `sf agent adl upload` after creation.

## Flags

| Flag Name (Long)         | Flag Name (Short) | Description                                                                                                                                                                                                                                  |
| ------------------------ | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--api-version`          | N/A               | **Type:** Value<br><br>Override the api version used for api requests made by this command                                                                                                                                                   |
| `--content-fields`       | N/A               | **Type:** Value<br><br>Comma-separated list of content fields for KNOWLEDGE libraries (optional, mutable after creation).                                                                                                                    |
| `--data-category-ids`    | N/A               | **Type:** Value<br><br>Comma-separated list of data category selection IDs for KNOWLEDGE libraries. Mutually exclusive with --data-category-names (provide one or the other, not both).                                                      |
| `--data-category-names`  | N/A               | **Type:** Value<br><br>Comma-separated list of data category names in qualified format (e.g., "Group_API_Name.Category"). Mutually exclusive with --data-category-ids (provide one or the other, not both).                                  |
| `--description`          | N/A               | **Type:** Value<br><br>Description of the data library (max 255 characters).                                                                                                                                                                 |
| `--developer-name`       | N/A               | **Type:** Value<br>**Required**<br><br>API name for the data library (max 80 characters, alphanumeric and underscores only, must start with a letter).                                                                                       |
| `--flags-dir`            | N/A               | **Type:** Value<br><br>Import flag values from a directory.                                                                                                                                                                                  |
| `--index-mode`           | N/A               | **Type:** Value<br>**Valid Values:** `basic`, `enhanced`<br><br>Index mode for SFDRIVE libraries: basic or enhanced.                                                                                                                         |
| `--json`                 | N/A               | **Type:** Boolean<br><br>Format output as json.                                                                                                                                                                                              |
| `--name`                 | `-n`              | **Type:** Value<br>**Required**<br><br>Display name for the data library (max 80 characters).                                                                                                                                                |
| `--primary-index-field1` | N/A               | **Type:** Value<br><br>Primary index field 1 for KNOWLEDGE libraries (required, immutable after creation).                                                                                                                                   |
| `--primary-index-field2` | N/A               | **Type:** Value<br><br>Primary index field 2 for KNOWLEDGE libraries (required, immutable after creation).                                                                                                                                   |
| `--retriever-id`         | N/A               | **Type:** Value<br><br>ID of an active Custom Retriever (required for RETRIEVER source type; retriever must be active).                                                                                                                      |
| `--source-type`          | N/A               | **Type:** Value<br>**Required**<br>**Valid Values:** `sfdrive`, `knowledge`, `retriever`<br><br>Type of grounding source: sfdrive (file upload), knowledge (Salesforce Knowledge articles), or retriever (existing active Custom Retriever). |
| `--target-org`           | `-o`              | **Type:** Value<br>**Required**<br><br>Username or alias of the target org. Not required if the `target-org` configuration variable is already set.                                                                                          |
| `--wait`                 | `-w`              | **Type:** Value<br><br>Wait N minutes for indexing to complete (KNOWLEDGE libraries). SFDRIVE libraries require upload before indexing; RETRIEVER libraries are ready immediately.                                                           |

## Examples for agent adl create

Create an SFDRIVE library:

```shell
sf agent adl create --target-org myOrg --name "My Docs" --developer-name My_Docs --source-type sfdrive
```

Create a KNOWLEDGE library with index fields:

```shell
sf agent adl create --target-org myOrg --name "KB Library" --developer-name KB_Library --source-type knowledge --primary-index-field1 Title --primary-index-field2 Summary
```

Create a RETRIEVER library:

```shell
sf agent adl create --target-org myOrg --name "Existing Retriever" --developer-name Existing_Retriever --source-type retriever --retriever-id 0ppXX0000000001
```
