# Référence : fichier de configuration > Description neutre et exhaustive du fichier YAML lu par `mm`. Chaque clé est optionnelle ; une clé omise garde sa valeur par défaut intégrée. Le fichier est décodé par-dessus les valeurs par défaut, donc les clés inconnues sont ignorées. ## Clés de premier niveau | Clé | Type | Défaut | Description | |-----|------|--------|-------------| | `provider` | chaîne | `dmr` | Clé du registre du serveur LLM : `dmr` ou `llamacpp`. Surchargée par `AGENT_PROVIDER`. | | `model` | chaîne | `huggingface.co/jetbrains/mellum2-12b-a2.5b-instruct-gguf-q4_k_m:Q4_K_M` | Identifiant du modèle dans la nomenclature du fournisseur. Surchargé par `AGENT_MODEL`. | | `baseUrl` | chaîne | `""` (défaut du fournisseur) | Point d'accès compatible OpenAI essayé en premier. Surchargé par `AGENT_BASE_URL`. | | `fallback` | chaîne ou absente | absente (défaut du fournisseur) | Point d'accès utilisé quand `baseUrl` ne répond pas sur `/models` en 2 s. Absente = défaut du fournisseur ; `""` = pas de repli. | | `apiKeyEnv` | chaîne | `""` (défaut du fournisseur) | Nom de la variable d'environnement qui contient la clé d'API. | | `contextWindow` | entier | `0` | Tokens servis par le serveur. `0` = demander au serveur, sinon inconnu. Doit être ≥ 0. | | `maxOutput` | entier | `16000` | Nombre maximal de caractères qu'un outil renvoie au modèle ; au-delà, la sortie garde son début et jusqu'à 2000 caractères de fin. Doit être > 0. | | `maxTurns` | entier | `10` | Nombre maximal d'allers-retours modèle ↔ outils par question. Doit être > 0. | | `previewLines` | entier | `20` | Lignes de la sortie d'une commande affichées dans le terminal. `0` désactive l'affichage. Doit être ≥ 0. | | `displayCommands` | booléen | `false` | Affiche la liste numérotée des commandes et opérations sur fichiers après chaque réponse. | | `system` | chaîne | prompt intégré | Le prompt système, premier message de chaque historique. | | `skillsDir` | chaîne | `skills` | Répertoire des skills, sous forme de fichiers `.md` ou de répertoires `/SKILL.md`. Un chemin relatif est résolu depuis le répertoire de lancement de `mm` (mode terminal, ou mode ACP sans fichier de configuration), ou à côté du fichier de configuration (mode ACP avec fichier) ; la bannière avertit avec le chemin absolu quand rien n'y est trouvé. | | `editTools` | booléen | `true` | Déclare `read_file`, `write_file`, `edit_file`. `false` ne laisse que `bash` et `read_skill`. | | `sampling` | dictionnaire | `temperature: 0.0`, `top_p: 0.9`, `max_tokens: 4096` | Paramètres de génération, noms de l'API OpenAI, transmis au serveur. L'`agent.yaml` livré ajoute `parallel_tool_calls: false`. | | `watchdogTimeout` | durée | `20s` | Silence toléré entre deux tokens diffusés avant de déclarer la connexion bloquée. Doublé pour les requêtes de résumé. | | `context` | dictionnaire | voir ci-dessous | Compression automatique de l'historique. | ## Clés de `context` | Clé | Type | Défaut | Description | |-----|------|--------|-------------| | `enabled` | booléen | `false` | Active la compression automatique. `/compact` fonctionne dans tous les cas. | | `threshold` | entier | `75` | Pourcentage de la fenêtre de contexte au-delà duquel l'historique est compressé avant la question suivante. Entre 1 et 100. | | `maxMessages` | entier | `80` | Nombre de messages qui déclenche une compression quand la fenêtre est inconnue ou l'estimation trop basse. `0` désactive. Doit être ≥ 0. | | `keepLastTurns` | entier | `3` | Tours de question conservés bruts en fin d'historique. Doit être ≥ 1. | | `summaryMaxTokens` | entier | `1200` | `max_tokens` de la requête de résumé. Doit être > 0. | | `prompt` | chaîne | `""` | Remplace le prompt de résumé intégré quand non vide. | | `showStats` | booléen | `true` | Affiche le rapport `🗜️` d'une ligne après chaque compression. | ## Valeurs par défaut des fournisseurs | Fournisseur | `baseUrl` | `fallback` | `apiKeyEnv` | Clé requise | |-------------|-----------|------------|-------------|-------------| | `dmr` | `http://localhost:12434/engines/v1` | `http://host.docker.internal:12434/engines/v1` | aucune | non | | `llamacpp` | `http://127.0.0.1:8080/v1` | aucun | `LLAMA_API_KEY` | non | ## Erreurs de validation Signalées sous la forme `[config error: : ]`, code de sortie 1. | Message | Cause | |---------|-------| | `provider must not be empty` | `provider: ""` | | `model must not be empty` | `model: ""` | | `contextWindow must be >= 0` | valeur négative | | `maxOutput must be > 0` | zéro ou négatif | | `maxTurns must be > 0` | zéro ou négatif | | `previewLines must be >= 0` | valeur négative | | `context.threshold must be between 1 and 100` | hors intervalle | | `context.keepLastTurns must be >= 1` | zéro ou négatif | | `context.summaryMaxTokens must be > 0` | zéro ou négatif | | `context.maxMessages must be >= 0` | valeur négative | | `unknown provider "x" (known: dmr, llamacpp)` | Signalée par le moteur, sous la forme `[engine error: …]`. | Un avertissement au démarrage, et non une erreur, est affiché quand `context.enabled` vaut `true`, que la fenêtre est inconnue et que `context.maxMessages` vaut `0`. ## Fichiers livrés | Fichier | Rôle | |---------|------| | `agent.yaml` | Configuration Docker Model Runner : `provider: dmr`, `maxTurns: 40`, `displayCommands: true`, compression désactivée, un prompt système nommé « Bob » qui décrit les skills et les règles d'édition de fichiers. | | `agent.llamacpp.yaml` | Configuration llama.cpp : `provider: llamacpp`, `baseUrl: http://127.0.0.1:8080/v1`, `fallback: ""`, compression activée. | ### Exemple ```yaml provider: llamacpp model: mon-alias baseUrl: http://127.0.0.1:8080/v1 fallback: "" maxTurns: 40 context: enabled: true ```