bots-garden/mini-mepublic Fork
⑂ feature/system-one
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/mini-me.git
git clone ssh://git@rickub.com/bots-garden/mini-me.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
🛟 Updated. 8d1c5cb · on feature/system-one · k33g · yesterday
create-an-agent.md · 91 lines · 8.3 KBmarkdown
Blame HistoryOpen raw

Créer un agent avec mm init

Ce guide montre comment écrire un nouvel agent.yaml pour un modèle et une tâche, avec l'assistant de mm : il pose quelques questions, lit ce que le serveur de modèles dit du modèle, et écrit un fichier commenté — chaque valeur avec la raison qui la justifie. Aucun modèle ne tourne pendant ce temps. Il suppose qu'un serveur de modèles tourne (llmman, Ollama, Docker Model Runner, llama-server, ou n'importe quel serveur compatible OpenAI).

Étapes

  1. Dans le répertoire où l'agent travaillera, lancez :

    mm init
    

    (mm --init fait la même chose.)

  2. Dans un terminal, une fenêtre s'ouvre, dans le style de mm -tui : les étapes à gauche, la question en cours au centre — avec ce que signifie le choix surligné —, et à droite l'agent.yaml tel qu'il serait écrit, mis à jour quand la sélection bouge. Une capture réelle (130 × 34, llmman, étape de l'usage, docs surligné) :

     mm init — new agent · llmman · Qwen3.5-4B:Q4_K_M
    ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
     ✓ Server    llmman   │ What is the agent for?                   │ # docs — answers from a documentation folder (docs/), with lin…
     ✓ Model     Qwen3.5-…│                                          │ #
     ✓ Family    qwen     │   developer  (default)                   │ # Written by `mm init`. Every value says why it has that value…
     ▸ Usage              │   reviewer                               │ # them as you watch the agent work (guides/agent-settings-for-…
     · Machine            │   translator                             │ #
     · Ask first          │   writer                                 │ #   model family: qwen
     · Name               │   assistant                              │ #   usage:        docs
     · File               │   researcher                             │ #   machine:      small — a laptop, models up to about 8B
                          │ ▸ docs                                   │ #
                          │   json                                   │ #   mm -config <this file>          or   mm -tui <this file>
                          │   coordinator                            │
                          │                                          │ provider: llmman
                          │ answers from a documentation folder      │ model: "hf.co/unsloth/Qwen3.5-4B-GGUF:Q4_K_M"
                          │ (docs/), with links to the passages      │
                          │                                          │ # 0 = mm asks the server for the window it serves (the model's…
                          │                                          │ # is 262144 tokens; the server may serve less)
                          │                                          │ contextWindow: 0
                          │                                          │ # usage docs's default: tools run without asking
                          │                                          │ yolo: true
                          │                                          │ # usage docs
                          │                                          │ bashTool: false
                          │                                          │ editTools: true
                          │                                          │ planTool: false
                          │                                          │ askUserTool: false
                          │                                          │ # no skills: add a skills/ folder and set skillsDir to use som…
                          │                                          │ # docs/en/how-to/add-a-skill.md)
                          │                                          │ skillsDir: no-skills
                          │                                          │ # usage docs
                          │                                          │ maxTurns: 8
                          │                                          │ # settings guide, row "Small model (≤ 8B), short tasks"
    ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
     ↑↓ choose · Enter next · Esc back · PgUp/PgDn preview · Ctrl-C quit
    

    ↑ ↓ choisissent, Entrée répond et passe à la question suivante, Échap revient d'une question en arrière, PgUp PgDn font défiler l'aperçu, Ctrl-C quitte sans rien écrire. Une question de texte (le nom, le fichier) se tape ; Ctrl-U l'efface. Sur un écran de moins de 100 colonnes, Tab affiche l'aperçu à la place de la question. Quand toutes les questions ont une réponse, Entrée écrit le fichier.

    Les questions : le serveur de modèles, le modèle (dans la liste du serveur), sa famille (détectée d'après le nom), à quoi sert l'agent (developer, reviewer, translator, writer, assistant, researcher, docs, json, coordinator), quelle machine fait tourner le modèle (small, medium, large), s'il faut demander avant chaque commande ou modification de fichier, le nom de l'agent et le fichier.

  3. mm écrit le fichier et vérifie qu'il se charge :

    ✅ wrote agent.yaml
    ✅ mm loads it
    Next: mm -config agent.yaml   (or mm -tui agent.yaml)
    
  4. Lisez le fichier : chaque valeur est précédée de sa raison — l'échantillonnage du GGUF lui-même, une carte de modèle, une démo mesurée de ce dépôt, la ligne du guide des réglages pour votre machine. Modifiez ce qui ne convient pas en regardant l'agent travailler.

Variantes

  • Vérifier que le modèle répond. Ajoutez --check : après l'écriture, mm pose au modèle la question « Say hello in one line. » avec le nouveau fichier et indique s'il a répondu. La première réponse charge le modèle, ce qui peut prendre un moment.

  • Ligne par ligne. --line, ou une exécution dont l'entrée ou la sortie n'est pas un terminal (mm init < reponses.txt), pose les mêmes questions une par ligne : choix numérotés, Entrée prend la valeur par défaut.

  • Aucune question, pour un script. Donnez chaque réponse en option, et --yes pour le reste :

    mm init --provider llmman --model hf.co/unsloth/Qwen3.5-4B-GGUF:Q4_K_M \
            --usage docs --machine small --name rata -o agent.yaml --yes --check
    
  • Voir le fichier sans l'écrire. -o - l'affiche sur la sortie standard.

  • Un serveur ailleurs. --base-url http://192.168.1.20:17434/v1 ; il est écrit dans le fichier comme baseUrl.

  • Un serveur qui ne répond pas. mm le dit et demande le nom du modèle : les réglages viennent alors de la seule table des familles.

  • Un fichier existant. mm ne l'écrase jamais, et le dit avant de poser la moindre question : choisissez un autre nom avec -o.

  • Un agent JSON. --usage json écrit un exemple de structuredOutput (des types Go) à remplacer par les vôtres, et désactive tous les outils, puisqu'une réponse structurée interdit les outils.

  • Un modèle que mm ne connaît pas. La famille other donne un point de départ générique et une note dans le fichier : vérifiez la carte du modèle.

Voir aussi

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# Créer un agent avec `mm init`

Ce guide montre comment écrire un nouvel agent.yaml pour un modèle et une tâche, avec l'assistant de mm : il pose quelques questions, lit ce que le serveur de modèles dit du modèle, et écrit un fichier commenté — chaque valeur avec la raison qui la justifie. Aucun modèle ne tourne pendant ce temps. Il suppose qu'un serveur de modèles tourne (llmman, Ollama, Docker Model Runner, llama-server, ou n'importe quel serveur compatible OpenAI).

## Étapes

1. Dans le répertoire où l'agent travaillera, lancez :

   ```bash
   mm init
   ```

   (`mm --init` fait la même chose.)

2. Dans un terminal, une fenêtre s'ouvre, dans le style de `mm -tui` : les étapes à gauche, la question en cours au centre — avec ce que signifie le choix surligné —, et à droite l'agent.yaml tel qu'il serait écrit, mis à jour quand la sélection bouge. Une capture réelle (130 × 34, llmman, étape de l'usage, `docs` surligné) :

   ```text
    mm init — new agent · llmman · Qwen3.5-4B:Q4_K_M
   ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    ✓ Server    llmman   │ What is the agent for?                   │ # docs — answers from a documentation folder (docs/), with lin…
    ✓ Model     Qwen3.5-…│                                          │ #
    ✓ Family    qwen     │   developer  (default)                   │ # Written by `mm init`. Every value says why it has that value…
    ▸ Usage              │   reviewer                               │ # them as you watch the agent work (guides/agent-settings-for-…
    · Machine            │   translator                             │ #
    · Ask first          │   writer                                 │ #   model family: qwen
    · Name               │   assistant                              │ #   usage:        docs
    · File               │   researcher                             │ #   machine:      small — a laptop, models up to about 8B
                         │ ▸ docs                                   │ #
                         │   json                                   │ #   mm -config <this file>          or   mm -tui <this file>
                         │   coordinator                            │
                         │                                          │ provider: llmman
                         │ answers from a documentation folder      │ model: "hf.co/unsloth/Qwen3.5-4B-GGUF:Q4_K_M"
                         │ (docs/), with links to the passages      │
                         │                                          │ # 0 = mm asks the server for the window it serves (the model's…
                         │                                          │ # is 262144 tokens; the server may serve less)
                         │                                          │ contextWindow: 0
                         │                                          │ # usage docs's default: tools run without asking
                         │                                          │ yolo: true
                         │                                          │ # usage docs
                         │                                          │ bashTool: false
                         │                                          │ editTools: true
                         │                                          │ planTool: false
                         │                                          │ askUserTool: false
                         │                                          │ # no skills: add a skills/ folder and set skillsDir to use som…
                         │                                          │ # docs/en/how-to/add-a-skill.md)
                         │                                          │ skillsDir: no-skills
                         │                                          │ # usage docs
                         │                                          │ maxTurns: 8
                         │                                          │ # settings guide, row "Small model (≤ 8B), short tasks"
   ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    ↑↓ choose · Enter next · Esc back · PgUp/PgDn preview · Ctrl-C quit
   ```

   `↑` `↓` choisissent, `Entrée` répond et passe à la question suivante, `Échap` revient d'une question en arrière, `PgUp` `PgDn` font défiler l'aperçu, `Ctrl-C` quitte sans rien écrire. Une question de texte (le nom, le fichier) se tape ; `Ctrl-U` l'efface. Sur un écran de moins de 100 colonnes, `Tab` affiche l'aperçu à la place de la question. Quand toutes les questions ont une réponse, `Entrée` écrit le fichier.

   Les questions : le serveur de modèles, le modèle (dans la liste du serveur), sa famille (détectée d'après le nom), à quoi sert l'agent (developer, reviewer, translator, writer, assistant, researcher, docs, json, coordinator), quelle machine fait tourner le modèle (small, medium, large), s'il faut demander avant chaque commande ou modification de fichier, le nom de l'agent et le fichier.

3. mm écrit le fichier et vérifie qu'il se charge :

   ```text
   ✅ wrote agent.yaml
   ✅ mm loads it
   Next: mm -config agent.yaml   (or mm -tui agent.yaml)
   ```

4. Lisez le fichier : chaque valeur est précédée de sa raison — l'échantillonnage du GGUF lui-même, une carte de modèle, une démo mesurée de ce dépôt, la ligne du guide des réglages pour votre machine. Modifiez ce qui ne convient pas en regardant l'agent travailler.

## Variantes

- **Vérifier que le modèle répond.** Ajoutez `--check` : après l'écriture, mm pose au modèle la question « Say hello in one line. » avec le nouveau fichier et indique s'il a répondu. La première réponse charge le modèle, ce qui peut prendre un moment.
- **Ligne par ligne.** `--line`, ou une exécution dont l'entrée ou la sortie n'est pas un terminal (`mm init < reponses.txt`), pose les mêmes questions une par ligne : choix numérotés, Entrée prend la valeur par défaut.
- **Aucune question, pour un script.** Donnez chaque réponse en option, et `--yes` pour le reste :

  ```bash
  mm init --provider llmman --model hf.co/unsloth/Qwen3.5-4B-GGUF:Q4_K_M \
          --usage docs --machine small --name rata -o agent.yaml --yes --check
  ```

- **Voir le fichier sans l'écrire.** `-o -` l'affiche sur la sortie standard.
- **Un serveur ailleurs.** `--base-url http://192.168.1.20:17434/v1` ; il est écrit dans le fichier comme `baseUrl`.
- **Un serveur qui ne répond pas.** mm le dit et demande le nom du modèle : les réglages viennent alors de la seule table des familles.
- **Un fichier existant.** mm ne l'écrase jamais, et le dit avant de poser la moindre question : choisissez un autre nom avec `-o`.
- **Un agent JSON.** `--usage json` écrit un exemple de `structuredOutput` (des types Go) à remplacer par les vôtres, et désactive tous les outils, puisqu'une réponse structurée interdit les outils.
- **Un modèle que mm ne connaît pas.** La famille `other` donne un point de départ générique et une note dans le fichier : vérifiez la carte du modèle.

## Voir aussi

- [Référence de la ligne de commande — `mm init`](../reference/cli.md#mm-init--lassistant-agentyaml) : chaque option, les sources, les codes de sortie
- [Référence de la configuration](../reference/configuration.md) : chaque clé du fichier
- [Réglages des agents pour petits modèles](../../../guides/reglages-agents-petits-modeles.md) : ce que fait chaque réglage, les lignes par machine
- `agent.creator.yaml` : un agent qui crée des agents avec un modèle, pour les cas qui sortent de l'ordinaire