| 💾 Saved. d722711 k33g 5h ago | 1 | # Référence : fichier de configuration |
| 2 | |
| 3 | > 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. |
| 4 | |
| 5 | ## Clés de premier niveau |
| 6 | |
| 7 | | Clé | Type | Défaut | Description | |
| 8 | |-----|------|--------|-------------| |
| 9 | | `provider` | chaîne | `dmr` | Clé du registre du serveur LLM : `dmr` ou `llamacpp`. Surchargée par `AGENT_PROVIDER`. | |
| 10 | | `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`. | |
| 11 | | `baseUrl` | chaîne | `""` (défaut du fournisseur) | Point d'accès compatible OpenAI essayé en premier. Surchargé par `AGENT_BASE_URL`. | |
| 12 | | `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. | |
| 13 | | `apiKeyEnv` | chaîne | `""` (défaut du fournisseur) | Nom de la variable d'environnement qui contient la clé d'API. | |
| 14 | | `contextWindow` | entier | `0` | Tokens servis par le serveur. `0` = demander au serveur, sinon inconnu. Doit être ≥ 0. | |
| 15 | | `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. | |
| 16 | | `maxTurns` | entier | `10` | Nombre maximal d'allers-retours modèle ↔ outils par question. Doit être > 0. | |
| 17 | | `previewLines` | entier | `20` | Lignes de la sortie d'une commande affichées dans le terminal. `0` désactive l'affichage. Doit être ≥ 0. | |
| 18 | | `displayCommands` | booléen | `false` | Affiche la liste numérotée des commandes et opérations sur fichiers après chaque réponse. | |
| 19 | | `system` | chaîne | prompt intégré | Le prompt système, premier message de chaque historique. | |
| 20 | | `skillsDir` | chaîne | `skills` | Répertoire des skills, sous forme de fichiers `<nom>.md` ou de répertoires `<nom>/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é. | |
| 21 | | `editTools` | booléen | `true` | Déclare `read_file`, `write_file`, `edit_file`. `false` ne laisse que `bash` et `read_skill`. | |
| 22 | | `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`. | |
| 23 | | `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é. | |
| 24 | | `context` | dictionnaire | voir ci-dessous | Compression automatique de l'historique. | |
| 25 | |
| 26 | ## Clés de `context` |
| 27 | |
| 28 | | Clé | Type | Défaut | Description | |
| 29 | |-----|------|--------|-------------| |
| 30 | | `enabled` | booléen | `false` | Active la compression automatique. `/compact` fonctionne dans tous les cas. | |
| 31 | | `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. | |
| 32 | | `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. | |
| 33 | | `keepLastTurns` | entier | `3` | Tours de question conservés bruts en fin d'historique. Doit être ≥ 1. | |
| 34 | | `summaryMaxTokens` | entier | `1200` | `max_tokens` de la requête de résumé. Doit être > 0. | |
| 35 | | `prompt` | chaîne | `""` | Remplace le prompt de résumé intégré quand non vide. | |
| 36 | | `showStats` | booléen | `true` | Affiche le rapport `🗜️` d'une ligne après chaque compression. | |
| 37 | |
| 38 | ## Valeurs par défaut des fournisseurs |
| 39 | |
| 40 | | Fournisseur | `baseUrl` | `fallback` | `apiKeyEnv` | Clé requise | |
| 41 | |-------------|-----------|------------|-------------|-------------| |
| 42 | | `dmr` | `http://localhost:12434/engines/v1` | `http://host.docker.internal:12434/engines/v1` | aucune | non | |
| 43 | | `llamacpp` | `http://127.0.0.1:8080/v1` | aucun | `LLAMA_API_KEY` | non | |
| 44 | |
| 45 | ## Erreurs de validation |
| 46 | |
| 47 | Signalées sous la forme `[config error: <chemin>: <message>]`, code de sortie 1. |
| 48 | |
| 49 | | Message | Cause | |
| 50 | |---------|-------| |
| 51 | | `provider must not be empty` | `provider: ""` | |
| 52 | | `model must not be empty` | `model: ""` | |
| 53 | | `contextWindow must be >= 0` | valeur négative | |
| 54 | | `maxOutput must be > 0` | zéro ou négatif | |
| 55 | | `maxTurns must be > 0` | zéro ou négatif | |
| 56 | | `previewLines must be >= 0` | valeur négative | |
| 57 | | `context.threshold must be between 1 and 100` | hors intervalle | |
| 58 | | `context.keepLastTurns must be >= 1` | zéro ou négatif | |
| 59 | | `context.summaryMaxTokens must be > 0` | zéro ou négatif | |
| 60 | | `context.maxMessages must be >= 0` | valeur négative | |
| 61 | | `unknown provider "x" (known: dmr, llamacpp)` | Signalée par le moteur, sous la forme `[engine error: …]`. | |
| 62 | |
| 63 | 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`. |
| 64 | |
| 65 | ## Fichiers livrés |
| 66 | |
| 67 | | Fichier | Rôle | |
| 68 | |---------|------| |
| 69 | | `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. | |
| 70 | | `agent.llamacpp.yaml` | Configuration llama.cpp : `provider: llamacpp`, `baseUrl: http://127.0.0.1:8080/v1`, `fallback: ""`, compression activée. | |
| 71 | |
| 72 | ### Exemple |
| 73 | |
| 74 | ```yaml |
| 75 | provider: llamacpp |
| 76 | model: mon-alias |
| 77 | baseUrl: http://127.0.0.1:8080/v1 |
| 78 | fallback: "" |
| 79 | maxTurns: 40 |
| 80 | context: |
| 81 | enabled: true |
| 82 | ``` |