# Tutoriel : votre première session avec mini-me À la fin de ce tutoriel, vous aurez compilé le binaire `mm`, lancé l'agent face à Docker Model Runner, posé une question qui lui fait exécuter une commande shell, puis quitté proprement. Aucune connaissance préalable du projet n'est requise. ## Prérequis - Go 1.25 ou plus récent dans votre `PATH` (`go version` répond). - Docker Desktop avec Docker Model Runner activé et joignable sur `http://localhost:12434`. - Le modèle nommé dans `agent.yaml` téléchargé localement. Le fichier livré avec le projet nomme `huggingface.co/jetbrains/mellum2-12b-a2.5b-instruct-gguf-q4_k_m:Q4_K_M` ; récupérez-le avec `docker model pull `. - Un terminal ouvert à la racine du dépôt (le répertoire qui contient `main.go` et `agent.yaml`). ## Étape 1 — Compiler le binaire Tapez : ```bash go build -o mm . ``` Vous ne devez voir aucune sortie. Un fichier `mm` se trouve maintenant dans le répertoire courant. Nous venons de compiler tout l'agent en un seul exécutable. ## Étape 2 — Lancer l'agent Tapez : ```bash ./mm ``` Vous devez voir une bannière comme celle-ci (le nom du modèle est celui d'`agent.yaml`) : ``` config: agent.yaml | provider: dmr | model: huggingface.co/jetbrains/mellum2-12b-a2.5b-instruct-gguf-q4_k_m:Q4_K_M | ctx: unknown | tools: bash, read_file, write_file, edit_file | skills: 0 Agent ready. Commands: "/quit" to exit, "/abort" to stop current generation, "/compact" to compress the history, "/new" to start a new session. Shortcut: Ctrl+C to abort generation, or Ctrl+C at prompt to quit. > ``` Si une ligne grisée `[warning: dmr: nothing answers at …]` apparaît au-dessus de la bannière, Docker Model Runner ne tourne pas : démarrez-le, puis relancez `./mm`. L'agent démarre quand même, mais l'étape suivante échouerait. Nous venons de charger la configuration, de nous connecter au serveur de modèle et de déclarer les outils que le modèle peut appeler. ## Étape 3 — Poser une question qui demande une commande À l'invite `>`, tapez : ``` list the files in this directory ``` Vous devez voir, dans l'ordre : un spinner pendant que le modèle réfléchit, une ligne commençant par `🛠️ bash:` qui montre la commande choisie par le modèle (typiquement `ls` ou `ls -la`), les premières lignes de la sortie de cette commande, indentées et grisées, puis la réponse du modèle en texte. Le tour se termine par un récapitulatif grisé tel que : ``` ⚙ 1 command(s) ``` suivi de la liste numérotée, en vert, des commandes exécutées. Nous venons d'observer un tour de la boucle de l'agent : le modèle a demandé un outil, l'outil a tourné, sa sortie est revenue au modèle, et le modèle a répondu. ## Étape 4 — Quitter À l'invite `>`, tapez : ``` /quit ``` Le programme se termine. `Ctrl+C` à l'invite fait la même chose et affiche d'abord `Goodbye.`. ## Et ensuite ? Vous avez compilé `mm`, exécuté un tour avec appel d'outil, et quitté. Pour aller plus loin : - Pour le faire tourner sur llama.cpp, l'héberger dans un éditeur ou ajouter des skills → voir les [guides pratiques](../how-to/) - Pour retrouver une option, une clé YAML ou une commande slash → voir la [référence](../reference/) - Pour comprendre comment la boucle et les deux façades s'articulent → voir les [explications](../explanation/)