# Droid

Source: https://docs.aicentos.com/fr/clients/droid

Language: fr

> Utiliser aicentos dans Factory Droid : enregistrer des modèles personnalisés dans settings.json (BYOK)

Droid est l'agent de codage en ligne de commande de Factory. Il prend en charge le BYOK : enregistrez un modèle personnalisé dans `~/.factory/settings.json` et pointez `baseUrl` vers aicentos. Droid exige une fenêtre de contexte d'au moins 64k pour les modèles ; gardez-le à l'esprit au moment de choisir.

## Prérequis

Créez d'abord dans la console, page « Clés API », une clé dédiée pour Droid (nommez-la par exemple `droid`, pour suivre plus facilement sa consommation) :

* Console : [https://aicentos.com](https://aicentos.com)
* Créer une clé : [https://aicentos.com/keys](https://aicentos.com/keys)
* Recharger en cas de solde insuffisant : [https://aicentos.com/wallet](https://aicentos.com/wallet)

## Configuration à renseigner

| Champ                    | Valeur                                                              |
| ------------------------ | ------------------------------------------------------------------- |
| Fichier de configuration | `~/.factory/settings.json`                                          |
| provider                 | `generic-chat-completion-api`                                       |
| baseUrl                  | `https://aicentos.com/v1`                                           |
| apiKey                   | `${AICENTOS_API_KEY}`                                               |
| Modèle                   | nom du modèle dans la « place de marché des modèles » de la console |

## Étapes de configuration

### 1. Définir la variable d'environnement de la clé API

```bash
export AICENTOS_API_KEY="sk-votre-clé-API"
```

Écrivez-la dans `~/.zshrc` ou `~/.bashrc` pour un effet permanent.

### 2. Éditer settings.json

Éditez `~/.factory/settings.json` et ajoutez le tableau `customModels` :

```json
{
  "customModels": [
    {
      "model": "gpt-4o",
      "displayName": "GPT-4o (aicentos)",
      "baseUrl": "https://aicentos.com/v1",
      "apiKey": "${AICENTOS_API_KEY}",
      "provider": "generic-chat-completion-api",
      "maxOutputTokens": 8192
    }
  ]
}
```

Champs clés :

| Champ         | Description                                                                                                                       |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `model`       | Identifiant de modèle réellement envoyé au point d'accès, à faire correspondre à la « place de marché des modèles » de la console |
| `displayName` | Nom d'affichage dans le sélecteur de modèles, personnalisable                                                                     |
| `baseUrl`     | Adresse API, `/v1` conseillé                                                                                                      |
| `apiKey`      | Prend en charge l'expansion `${VAR_NAME}`                                                                                         |
| `provider`    | `anthropic` / `openai` / `generic-chat-completion-api`                                                                            |

### 3. Choisir le modèle

Après avoir lancé `droid`, exécutez `/model` et sélectionnez le modèle que vous venez d'enregistrer. **Après toute modification de la configuration, `droid` doit être redémarré dans un nouveau terminal** pour relire le fichier.

## Test

Une fois le modèle sélectionné, envoyez une requête simple :

```
Réponds en une phrase : combien font 1+1 ?
```

Une réponse normale signifie que la connexion fonctionne.

## Remarques

* **Mettez `generic-chat-completion-api` dans `provider`** : ce mode passe par le protocole OpenAI Chat Completions et c'est le bon choix dans la plupart des scénarios BYOK. Avec `openai`, c'est l'API Responses qui est utilisée, et sur certaines passerelles cette valeur ignore `base_url` et pointe directement vers `api.openai.com` ; avec `anthropic`, c'est `/v1/messages` qui est utilisé.
* **Nettoyez d'abord les variables d'environnement**. Si le shell exporte `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_BASE_URL` ou `ANTHROPIC_API_KEY`, elles prennent le pas sur le fichier de configuration et les requêtes contournent la passerelle que vous avez configurée. Avant la connexion, faites un `unset` de ces variables.
* Droid lit à la fois `~/.factory/settings.json` et l'ancien `~/.factory/config.json`, le premier ayant la priorité. Dans l'ancien format, les champs sont en snake\_case : `custom_models` / `model_display_name` / `base_url` / `api_key`, et l'expansion `${VAR_NAME}` **n'est pas prise en charge** ; préférez systématiquement `settings.json`.
* La fenêtre de contexte du modèle doit faire au moins 64k ; un modèle local trop petit peut se comporter de façon erratique.
* Factory ne teste en référence que les interfaces officielles Anthropic / OpenAI ; la compatibilité des modèles personnalisés n'est pas garantie. Il est connu que les sous-agents (subagent) retombent parfois sur l'interface officielle Anthropic.
* Ordre de dépannage : le modèle est-il visible dans `/model` → les variables d'environnement sont-elles écrasées par des ANTHROPIC\_\* → le baseUrl contient-il `/v1` → le solde est-il suffisant ?

## Liens utiles

* Documentation BYOK officielle : [https://docs.factory.ai/model-independence/byok](https://docs.factory.ai/model-independence/byok)