> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qaos.machdel.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Aperçu de la configuration

> Comprenez comment les exécutions QAOS sont configurées et ce que contrôle chaque champ.

Chaque exécution QAOS est pilotée par un fichier de configuration JSON. Ce fichier indique à l'agent où commencer, quoi tester et quels agents utiliser.

***

## Mode QAOS vs. mode guidé

Il existe deux façons de lancer un audit :

**Mode QAOS** (recommandé) — définissez `qaosMode: true` et fournissez un `qaosConfig`. L'agent explore votre site de manière autonome, découvre les pages par lui-même et signale les critères partout où il passe. Aucune définition de tâche n'est nécessaire.

**Mode guidé** — définissez un tableau `tasks` avec des pages et des instructions spécifiques. Utilisez cette approche lorsque vous avez besoin d'un contrôle précis sur les flux testés par l'agent.

***

## Structure du fichier de configuration

<Tabs>
  <Tab title="Mode QAOS">
    ```json theme={null}
    {
      "name": "string",
      "projectId": "string",
      "maxBudget": 5,
      "qaosMode": true,
      "qaosConfig": {
        "startUrl": "string",
        "subAgents": ["security", "uiux"],
        "maxPages": 20,
        "maxDepth": 3
      },
      "agentInfo": { "clé": "valeur" }
    }
    ```
  </Tab>

  <Tab title="Mode guidé">
    ```json theme={null}
    {
      "name": "string",
      "projectId": "string",
      "maxBudget": 5,
      "tasks": [
        {
          "id": "string",
          "description": "string",
          "context": "string (optionnel)",
          "startUrl": "string",
          "subAgents": ["security", "uiux"]
        }
      ],
      "agentInfo": { "clé": "valeur" }
    }
    ```
  </Tab>
</Tabs>

***

## Champs de niveau supérieur

| Champ           | Type    | Requis                         | Description                                                                                                                   |
| --------------- | ------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- |
| `name`          | string  | Oui                            | Nom lisible pour cette exécution, affiché dans le tableau de bord                                                             |
| `projectId`     | string  | Oui                            | UUID du projet auquel associer cette exécution                                                                                |
| `maxBudget`     | number  | Non                            | Plafond de dépense optionnel en USD pour l'exécution. L'exécution s'arrête dès que le coût OpenAI estimé atteint cette valeur |
| `qaosMode`      | boolean | Non                            | Active le mode d'exploration autonome. Quand `true`, `qaosConfig` est requis et `tasks` est ignoré                            |
| `qaosConfig`    | object  | Si `qaosMode: true`            | Paramètres de l'exploration autonome (voir ci-dessous)                                                                        |
| `tasks`         | array   | Si `qaosMode` n'est pas défini | Liste des tâches du mode guidé (voir ci-dessous)                                                                              |
| `agentInfo`     | object  | Non                            | Métadonnées arbitraires attachées au rapport d'exécution                                                                      |
| `websiteOrigin` | string  | Non                            | Répertoire racine du site ; requis lorsqu'une `startUrl` est un chemin de système de fichiers (ex. : `C:/mon-site`)           |

Formule d'estimation utilisée par le serveur d'agent :

`costUsd = (inputTokens / 1000) * 0.00075 + (outputTokens / 1000) * 0.0045`

***

## Champs de `qaosConfig`

Utilisé lorsque `qaosMode: true` :

| Champ       | Type   | Requis | Description                                                                     |
| ----------- | ------ | ------ | ------------------------------------------------------------------------------- |
| `startUrl`  | string | Oui    | L'URL depuis laquelle l'agent commence l'exploration                            |
| `subAgents` | array  | Oui    | Agents à exécuter : `"security"`, `"uiux"`, ou les deux                         |
| `maxPages`  | number | Non    | Nombre maximum de pages à visiter (par défaut : illimité)                       |
| `maxDepth`  | number | Non    | Profondeur maximale de liens à suivre depuis `startUrl` (par défaut : illimité) |

***

## Champs de tâche

Chaque élément du tableau `tasks` définit un scénario de test :

| Champ         | Type   | Requis | Description                                                                                      |
| ------------- | ------ | ------ | ------------------------------------------------------------------------------------------------ |
| `id`          | string | Oui    | Identifiant unique pour cette tâche au sein de l'exécution                                       |
| `description` | string | Oui    | Description en langage naturel de ce qu'il faut tester                                           |
| `context`     | string | Non    | Contexte supplémentaire pour l'agent (identifiants, notes)                                       |
| `startUrl`    | string | Oui    | L'URL vers laquelle l'agent navigue au début de cette tâche                                      |
| `subAgents`   | array  | Non    | Agents à exécuter : `"security"`, `"uiux"`, les deux, ou `[]` pour évaluation du flux uniquement |

***

## Rédiger des descriptions de tâches efficaces

Le champ `description` est interprété par un LLM, donc le langage naturel fonctionne bien. Soyez précis sur ce que l'agent doit faire et ce que vous souhaitez qu'il recherche.

<Tabs>
  <Tab title="✓ Bonnes descriptions">
    ```
    "Naviguer vers la page de connexion et tenter de se connecter avec les identifiants de test admin@example.com / password123"
    ```

    ```
    "Parcourir la page des paramètres du compte utilisateur et vérifier tous les champs modifiables"
    ```

    ```
    "Accéder au panneau d'administration et vérifier que les actions réservées aux administrateurs sont correctement restreintes"
    ```
  </Tab>

  <Tab title="✗ À éviter">
    ```
    "Tester le site web"
    ```

    ```
    "Vérifier la sécurité"
    ```

    ```
    "Regarder la page de connexion"
    ```
  </Tab>
</Tabs>

***

## Choisir les sous-agents

Vous pouvez exécuter l'agent de sécurité, l'agent UI/UX, les deux, ou aucun sur n'importe quelle tâche.

```json theme={null}
"subAgents": ["security"]          // sécurité uniquement
"subAgents": ["uiux"]              // UI/UX uniquement
"subAgents": ["security", "uiux"]  // les deux
"subAgents": []                    // évaluation du flux uniquement
```

**Quand utiliser les deux :** Pour les pages avec des interactions utilisateur (formulaires, boutons, navigation), exécuter les deux agents ensemble donne une vue complète.

**Quand en utiliser un seul :** Pour les endpoints API internes ou les pages système uniquement, `security` seul peut suffire. Pour les pages marketing statiques, `uiux` seul peut être plus pertinent.

**Quand n'en utiliser aucun :** Pour vérifier qu'un flux peut être complété de bout en bout sans rechercher de critères spécifiques — la tâche échoue si l'agent ne peut pas la terminer, ce qui révèle des bugs dans le flux lui-même. Un tableau vide peut aussi servir à préparer un état (ex. : connexion) avant une tâche suivante qui effectuera des évaluations.

<Warning>
  Si un sous-agent est listé dans `subAgents` mais que tous ses critères sont dans `ignoredIssueIds`, l'exécution sera rejetée. Retirez l'agent de `subAgents` ou réactivez au moins un de ses critères.
</Warning>

***

## Deux façons de configurer

<CardGroup cols={2}>
  <Card title="Constructeur visuel" icon="wand-magic-sparkles" href="/fr/configuration/using-the-ui">
    Utilisez le tableau de bord QAOS pour générer un fichier de configuration via un formulaire guidé — sans édition JSON requise.
  </Card>

  <Card title="JSON depuis zéro" icon="code" href="/fr/configuration/json-reference">
    Rédigez ou modifiez le fichier de configuration directement avec la référence complète des champs.
  </Card>
</CardGroup>
