bots-garden/sidekickspublic Fork
⑂ v1.0.0-macos
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/sidekicks.git
git clone ssh://git@rickub.com/bots-garden/sidekicks.git

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

Download ZIP
📦️ Create a release. 0a53b99 · on v1.0.0-macos · k33g · 2d ago
lancer-un-agent-dans-docker.md · 66 lines · 4.1 KBmarkdown
Blame HistoryOpen raw

Lancer un agent dans un conteneur Docker

Ce guide montre comment déclarer un agent qui tourne dans un conteneur Docker, pour que Sidekicks converse avec lui, affiche ses fichiers et y ouvre un terminal. Il suppose Docker installé, et une image contenant le programme de l'agent (par exemple mm, compilé pour Linux).

Ce dont Sidekicks a besoin

Trois réglages vont ensemble :

Réglage Rôle
command et args comment l'agent démarre : docker exec -i <conteneur> <programme> <arguments>. Sidekicks lui parle par l'entrée et la sortie standard (ACP) : -i est indispensable, -t ne doit pas être utilisé.
workspace le dossier de l'agent sur cet ordinateur. La commande y est lancée, et l'agent reçoit ce même chemin comme dossier de travail de ses sessions — il doit donc exister aussi au même chemin dans le conteneur.
runtime où sont ses fichiers et son terminal : {type: container, container: <conteneur>}.

Étapes

  1. Démarrez le conteneur avec le dossier de l'agent monté au même chemin, et un processus init (il nettoie les programmes que le terminal termine) :

    AGENT_DIR=/Users/moi/agents/scout        # le dossier de l'agent sur cet ordinateur
    docker run -d --init --name scout-box \
      -v "$AGENT_DIR:$AGENT_DIR" -w "$AGENT_DIR" \
      mon-image-agent sleep infinity
    
  2. Vérifiez que le programme tourne et voit le dossier :

    docker exec scout-box sh -c 'command -v mm; pwd; ls'
    
  3. Dans Settings, ajoutez l'agent et enregistrez :

    agents:
      - name: scout
        title: Scout (Docker)
        icon: "🐳"
        command: docker
        args: [exec, -i, scout-box, mm, -acp]
        workspace: /Users/moi/agents/scout
        runtime:
          type: container
          container: scout-box
    
  4. Démarrez l'agent depuis le panneau Agents (▶), ou écrivez-lui : il répond depuis le conteneur. 📂 affiche container scout-box · /Users/moi/agents/scout, ses fichiers et un terminal.

Redémarrer ou recréer le conteneur

  • Arrêté (après un redémarrage, docker stop) : rien à faire. Sidekicks le démarre (docker start) avant l'agent ; l'onglet Journal affiche sandbox: container … stopped: starting it.
  • Disparu (docker rm, un nettoyage) : donnez à Sidekicks la commande qui le crée. Dans l'assistant, choisissez Dans un conteneur Docker, puis déposez le compose.yaml sur Recréer le conteneur s'il a disparu (ou cliquez sur Choisir un fichier Compose…) et choisissez le service : le nom du conteneur et les commandes docker compose sont remplis. Sans Compose, tapez la commande docker run -d --name …. Dans Settings, c'est runtime.lifecycle : voir la référence.
  • ■ Arrêter le conteneur et 🗑 Supprimer le conteneur apparaissent alors dans l'en-tête de l'agent.

Variantes

  • Sidekicks lancé depuis le Finder : une telle application a un PATH réduit et peut ne pas trouver docker. Écrivez son chemin complet (command: /usr/local/bin/docker, voir which docker), ou ajoutez env: {PATH: "…"} à l'agent. Les fichiers et le terminal trouvent Docker tout seuls.
  • Le serveur de modèles tourne sur cet ordinateur (llmman, Ollama…) : dans le conteneur, localhost est le conteneur lui-même ; utilisez host.docker.internal dans la configuration propre de l'agent.
  • Le dossier est monté ailleurs dans le conteneur : indiquez ce chemin dans runtime.workspacePath pour les fichiers et le terminal. Les sessions de l'agent reçoivent toujours workspace comme dossier de travail : préférez le même chemin.
  • Un conteneur existant : tout conteneur démarré convient, s'il contient le programme et le dossier ; docker ps donne son nom.

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
# Lancer un agent dans un conteneur Docker

Ce guide montre comment déclarer un agent qui tourne dans un conteneur Docker, pour que Sidekicks converse avec lui, affiche ses fichiers et y ouvre un terminal. Il suppose Docker installé, et une image contenant le programme de l'agent (par exemple `mm`, compilé pour Linux).

## Ce dont Sidekicks a besoin

Trois réglages vont ensemble :

| Réglage | Rôle |
| --- | --- |
| `command` et `args` | comment l'agent démarre : `docker exec -i <conteneur> <programme> <arguments>`. Sidekicks lui parle par l'entrée et la sortie standard (ACP) : `-i` est indispensable, `-t` ne doit pas être utilisé. |
| `workspace` | le dossier de l'agent **sur cet ordinateur**. La commande y est lancée, et l'agent reçoit ce même chemin comme dossier de travail de ses sessions — il doit donc exister aussi **au même chemin dans le conteneur**. |
| `runtime` | où sont ses fichiers et son terminal : `{type: container, container: <conteneur>}`. |

## Étapes

1. Démarrez le conteneur avec le dossier de l'agent monté au même chemin, et un processus init (il nettoie les programmes que le terminal termine) :

   ```bash
   AGENT_DIR=/Users/moi/agents/scout        # le dossier de l'agent sur cet ordinateur
   docker run -d --init --name scout-box \
     -v "$AGENT_DIR:$AGENT_DIR" -w "$AGENT_DIR" \
     mon-image-agent sleep infinity
   ```

2. Vérifiez que le programme tourne et voit le dossier :

   ```bash
   docker exec scout-box sh -c 'command -v mm; pwd; ls'
   ```

3. Dans **Settings**, ajoutez l'agent et enregistrez :

   ```yaml
   agents:
     - name: scout
       title: Scout (Docker)
       icon: "🐳"
       command: docker
       args: [exec, -i, scout-box, mm, -acp]
       workspace: /Users/moi/agents/scout
       runtime:
         type: container
         container: scout-box
   ```

4. Démarrez l'agent depuis le panneau **Agents** (▶), ou écrivez-lui : il répond depuis le conteneur. **📂** affiche `container scout-box · /Users/moi/agents/scout`, ses fichiers et un terminal.

## Redémarrer ou recréer le conteneur

- **Arrêté** (après un redémarrage, `docker stop`) : rien à faire. Sidekicks le démarre (`docker start`) avant l'agent ; l'onglet **Journal** affiche `sandbox: container … stopped: starting it`.
- **Disparu** (`docker rm`, un nettoyage) : donnez à Sidekicks la commande qui le crée. Dans l'assistant, choisissez **Dans un conteneur Docker**, puis déposez le `compose.yaml` sur **Recréer le conteneur s'il a disparu** (ou cliquez sur **Choisir un fichier Compose…**) et choisissez le service : le nom du conteneur et les commandes `docker compose` sont remplis. Sans Compose, tapez la commande `docker run -d --name …`. Dans **Settings**, c'est `runtime.lifecycle` : voir [la référence](../reference/configuration.md#runtimelifecycle-conteneur-et-sbx).
- **■ Arrêter le conteneur** et **🗑 Supprimer le conteneur** apparaissent alors dans l'en-tête de l'agent.

## Variantes

- **Sidekicks lancé depuis le Finder** : une telle application a un `PATH` réduit et peut ne pas trouver `docker`. Écrivez son chemin complet (`command: /usr/local/bin/docker`, voir `which docker`), ou ajoutez `env: {PATH: "…"}` à l'agent. Les fichiers et le terminal trouvent Docker tout seuls.
- **Le serveur de modèles tourne sur cet ordinateur** (llmman, Ollama…) : dans le conteneur, `localhost` est le conteneur lui-même ; utilisez `host.docker.internal` dans la configuration propre de l'agent.
- **Le dossier est monté ailleurs dans le conteneur** : indiquez ce chemin dans `runtime.workspacePath` pour les fichiers et le terminal. Les sessions de l'agent reçoivent toujours `workspace` comme dossier de travail : préférez le même chemin.
- **Un conteneur existant** : tout conteneur démarré convient, s'il contient le programme et le dossier ; `docker ps` donne son nom.

## Voir aussi

- [Travailler avec les fichiers et le terminal d'un agent](fichiers-et-terminal-d-un-agent.md)
- [Lancer un agent dans une sandbox sbx](lancer-un-agent-dans-une-sandbox.md)
- [Référence : le fichier de configuration](../reference/configuration.md) · [workspaces](../reference/agents-et-evenements.md#workspaces-milestone-m4)