Skip to main content

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.

Le fichier de configuration QAOS est un document JSON qui spécifie entièrement une exécution de test. Sauvegardez-le n’importe où sur votre système et passez son chemin à qaos run --config.

Exemples complets

Mode QAOS

qaos-config.json
{
  "name": "Audit complet du site — v2.1",
  "projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "maxBudget": 10,
  "agentInfo": {
    "environment": "staging",
    "triggeredBy": "ci-pipeline",
    "branch": "main"
  },
  "qaosMode": true,
  "qaosConfig": {
    "startUrl": "https://staging.example.com",
    "subAgents": ["security", "uiux"],
    "maxPages": 50,
    "maxDepth": 4
  }
}

Mode guidé

qaos-config.json
{
  "name": "Audit complet du site — v2.1",
  "projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "maxBudget": 10,
  "agentInfo": {
    "environment": "staging",
    "triggeredBy": "ci-pipeline",
    "branch": "main"
  },
  "tasks": [
    {
      "description": "Naviguer vers la page de connexion et se connecter avec les identifiants admin@example.com / password123",
      "context": "Utiliser le compte de test. La page de connexion dispose d'un formulaire standard nom d'utilisateur/mot de passe.",
      "startUrl": "https://staging.example.com/login",
      "subAgents": ["security", "uiux"]
    },
    {
      "description": "Parcourir le tableau de bord principal et interagir avec les tableaux de données",
      "startUrl": "https://staging.example.com/dashboard",
      "subAgents": ["security", "uiux"]
    },
    {
      "description": "Accéder au panneau d'administration et tenter d'effectuer des actions d'administration en tant qu'utilisateur ordinaire",
      "startUrl": "https://staging.example.com/admin",
      "subAgents": ["security"]
    },
    {
      "description": "Naviguer vers les paramètres du compte utilisateur, modifier le profil et changer le mot de passe",
      "startUrl": "https://staging.example.com/settings",
      "subAgents": ["security", "uiux"]
    }
  ]
}

Champs de niveau racine

name requis

Type : string Un libellé lisible pour cette exécution, affiché dans le tableau de bord et les rapports. Utilisez des noms descriptifs qui identifient la portée et le contexte.
"name": "Audit de sécurité de production — T1 2025"

projectId requis

Type : string (UUID) L’ID du projet QAOS auquel cette exécution appartient. Trouvez les IDs de projet dans le Tableau de bord sous Projets → Paramètres.
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"

agentInfo optionnel

Type : object Métadonnées clé-valeur arbitraires attachées à l’exécution et visibles dans le rapport. Utilisez cela pour suivre le contexte comme le nom de l’environnement, les infos du pipeline CI ou l’utilisateur déclencheur.
"agentInfo": {
  "environment": "staging",
  "commit": "abc1234",
  "triggeredBy": "github-actions"
}

websiteOrigin optionnel

Type : string Le répertoire racine du site web testé. Requis uniquement lorsqu’une startUrl est un chemin de système de fichiers — soit une URL file://, soit un chemin de lecteur Windows local (ex. : C:/mon-site). Lorsqu’il est défini, chaque startUrl (dans toutes les tâches et dans qaosConfig) doit commencer par cette valeur. Les chemins sont comparés avec des barres obliques, donc C:\mon-site et C:/mon-site sont traités de la même façon.
Pour les URLs HTTP et HTTPS, vous pouvez omettez ce champ entièrement — il n’est pas utilisé.
Si une startUrl est un chemin de système de fichiers, l’exécution sera rejetée sauf si websiteOrigin est défini sur le répertoire racine du site.
"websiteOrigin": "C:/mon-site"

maxBudget optionnel

Type : number Budget maximum de l’exécution en USD. Lorsqu’il est défini, l’exécution est arrêtée dès que le coût OpenAI estimé atteint cette valeur.
"maxBudget": 5
Formule de coût utilisée par le serveur : costUsd = (inputTokens / 1000) * 0.00075 + (outputTokens / 1000) * 0.0045

qaosMode optionnel

Type : boolean Quand true, active le mode d’exploration autonome. L’agent démarre depuis qaosConfig.startUrl, découvre les pages par lui-même et audite tout ce qu’il trouve. Le tableau tasks est ignoré.
"qaosMode": true

qaosConfig requis si qaosMode: true

Type : object Configuration de l’exploration autonome. Utilisé uniquement lorsque qaosMode est true.
ChampTypeRequisDescription
startUrlstringOuiL’URL depuis laquelle l’agent commence l’exploration. Doit inclure un schéma reconnu (https://, http://, file://, un chemin Windows ou un chemin absolu Unix/Mac)
subAgentsarrayOuiAgents à exécuter : "security", "uiux", ou les deux
maxPagesnumberNonNombre maximum de pages à visiter. Omettez pour aucune limite
maxDepthnumberNonProfondeur maximale de liens à suivre depuis startUrl. Omettez pour aucune limite
"qaosConfig": {
  "startUrl": "https://app.example.com",
  "subAgents": ["security", "uiux"],
  "maxPages": 20,
  "maxDepth": 3
}

tasks requis sauf si qaosMode: true

Type : array La liste des tâches du mode guidé à exécuter. Les tâches s’exécutent séquentiellement dans l’ordre où elles sont définies. Requis lorsque qaosMode n’est pas défini. Ignoré lorsque qaosMode: true.

Champs de tâche

Chaque objet dans le tableau tasks :

description requis

Type : string Une description en langage naturel de ce que cette tâche doit faire. L’agent l’interprète pour décider quelles actions entreprendre, vers quelles pages naviguer et quoi rechercher. Des descriptions plus précises donnent de meilleurs résultats.
"description": "Aller sur la page de paiement, ajouter l'article #SKU-001 au panier, procéder au paiement et vérifier le formulaire de paiement pour les critères de sécurité"

context optionnel

Type : string Informations supplémentaires dont l’agent doit être conscient lors de l’exécution de cette tâche. Utile pour fournir des identifiants, expliquer un comportement spécifique à l’application ou signaler des limitations connues.
"context": "Utiliser les identifiants de test test@example.com / testpass123. Le tableau de bord peut prendre 2-3 secondes pour charger les données."

startUrl requis

Type : string L’URL vers laquelle l’agent navigue au début de cette tâche. Doit inclure un schéma reconnu :
  • URLs web : https:// ou http://
  • Chemins de système de fichiers : URL file://, un chemin Windows (C:/mon-site/page.html), ou un chemin absolu Unix/Mac (/home/user/site/page.html)
Omettre le schéma (ex. : écrire example.com au lieu de https://example.com) entraînera le rejet de l’exécution. Incluez toujours le schéma complet.
"startUrl": "https://app.example.com/login"

subAgents optionnel

Type : array de "security" | "uiux" Les modules d’agents à activer pour cette tâche. Accepte un tableau contenant une valeur, les deux, ou aucune. Un tableau vide est valide — l’agent naviguera et tentera de compléter la tâche, mais n’effectuera aucune évaluation de critères. Le cas d’usage principal est de vérifier qu’un flux peut être complété de bout en bout (la tâche échoue si l’agent ne peut pas la terminer, ce qui révèle des bugs dans le flux). Il peut aussi servir à préparer un état avant une tâche suivante qui, elle, effectuera des évaluations.
"subAgents": ["security", "uiux"]  // exécuter les deux
"subAgents": ["security"]          // sécurité uniquement
"subAgents": ["uiux"]              // UI/UX uniquement
"subAgents": []                    // évaluation du flux uniquement
AgentCe qu’il vérifie
"security"Contrôle d’accès, injection, cryptographie, gestion des sessions, divulgation d’information
"uiux"Accessibilité, utilisabilité des formulaires, navigation au clavier, contraste des couleurs, conception réactive
Si un sous-agent est inclus dans subAgents mais que tous ses critères sont listés dans ignoredIssueIds, l’exécution sera rejetée avec une erreur. Retirez l’agent de subAgents ou réactivez au moins un de ses critères.

Modèles courants

Mode QAOS — audit complet du site

{
  "name": "Audit complet du site",
  "projectId": "votre-id-de-projet",
  "qaosMode": true,
  "qaosConfig": {
    "startUrl": "https://app.example.com",
    "subAgents": ["security", "uiux"],
    "maxPages": 50,
    "maxDepth": 4
  }
}

Flux d’authentification en plusieurs étapes

{
  "tasks": [
    {
      "description": "Se connecter avec le nom d'utilisateur admin@example.com et le mot de passe TestPass123",
      "startUrl": "https://app.example.com/login",
      "subAgents": ["security", "uiux"]
    },
    {
      "description": "Parcourir le tableau de bord authentifié et la page de profil utilisateur",
      "startUrl": "https://app.example.com/dashboard",
      "subAgents": ["security", "uiux"]
    }
  ]
}

Audit d’administration axé sur la sécurité

{
  "tasks": [
    {
      "description": "Tenter d'accéder au panneau d'administration à /admin sans authentification",
      "startUrl": "https://app.example.com/admin",
      "subAgents": ["security"]
    },
    {
      "description": "Se connecter en tant qu'utilisateur ordinaire et tenter d'accéder aux endpoints réservés aux administrateurs",
      "startUrl": "https://app.example.com/login",
      "context": "Identifiants utilisateur ordinaire : user@example.com / UserPass123",
      "subAgents": ["security"]
    }
  ]
}

Vérification d’accessibilité uniquement

{
  "tasks": [
    {
      "description": "Examiner la page d'accueil pour les critères d'accessibilité",
      "startUrl": "https://app.example.com/",
      "subAgents": ["uiux"]
    },
    {
      "description": "Parcourir le formulaire d'inscription et le formulaire de contact pour les critères d'accessibilité",
      "startUrl": "https://app.example.com/register",
      "subAgents": ["uiux"]
    }
  ]
}

Tâche de complétion uniquement (sans évaluation)

Utilisez "subAgents": [] pour vérifier qu’un flux peut être complété 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. Il est également possible de l’utiliser pour préparer un état (ex. : connexion) avant une tâche suivante qui effectuera des évaluations.
{
  "tasks": [
    {
      "description": "Se connecter au site web",
      "context": "Utilise les informations d'identification test@example.com / testpass123",
      "startUrl": "https://app.example.com/login",
      "subAgents": []
    },
    {
      "description": "Parcourir le tableau de bord authentifié",
      "startUrl": "https://app.example.com/dashboard",
      "subAgents": ["security", "uiux"]
    }
  ]
}

Tester un site statique local

Utilisez des chemins de système de fichiers pour tester un site statique servi localement. Définissez websiteOrigin sur le répertoire racine et utilisez des chemins complets pour chaque tâche.
{
  "name": "Audit du site local",
  "projectId": "votre-id-de-projet",
  "websiteOrigin": "C:/mon-site",
  "tasks": [
    {
      "description": "Examiner la page d'accueil pour les critères d'accessibilité",
      "startUrl": "C:/mon-site/index.html",
      "subAgents": ["uiux"]
    },
    {
      "description": "Examiner le formulaire de contact pour les critères d'accessibilité et de sécurité",
      "startUrl": "C:/mon-site/contact.html",
      "subAgents": ["security", "uiux"]
    }
  ]
}