bots-garden/sidekickspublic Fork
⑂ v1.0.0
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
premier-echange-acp.md · 104 lines · 3.6 KBmarkdown
Blame HistoryOpen raw

Tutoriel : votre premier échange ACP avec un agent de test

À la fin de ce tutoriel, vous aurez envoyé deux messages à Alice, un des agents de test du projet, par l'Agent Client Protocol, lu ses réponses arriver au fil de l'eau, et retrouvé le trafic JSON-RPC enregistré. C'est la conversation que Sidekicks aura avec chaque agent ; l'application n'existe pas encore, nous utilisons donc le petit client écrit pour le spike ACP.

Prérequis

  • Le dépôt cloné, et un terminal ouvert à sa racine.
  • Go 1.26 ou plus récent (go version).
  • mm v1.0.3 installé et dans votre PATH (mm -version). S'il est ailleurs, définissez MM_BIN=/chemin/vers/mm.
  • llmman lancé sur cette machine, avec le modèle d'Alice téléchargé : llmman pull hf.co/unsloth/gemma-4-E2B-it-GGUF:Q4_K_M.
  • jq (jq --version).

Étape 1 — Regarder ce qui tourne

Tapez :

scripts/agents.sh ps

Vous devriez voir :

agents running (limit 2):
models loaded:

Aucun agent ne tourne et aucun modèle n'est chargé : la machine est prête.

Étape 2 — Parler à Alice

Tapez :

cd spikes/acp-trace
go run . -agent alice -out /tmp/alice.jsonl \
    -prompt "Bonjour, qui es-tu ? Réponds en une phrase." \
    -prompt "Écris un bloc de code Go qui affiche hello."

Le premier lancement télécharge la bibliothèque ACP, puis le modèle se charge, ce qui prend quelques secondes. Vous devriez voir, au milieu de quelques lignes [acp] écrites par mm :

== agent: &{… Name:Alice … Version:v1.0.3}
== protocol version: 1
== session: 20261029-082808-9a7c173b

>> Bonjour, qui es-tu ? Réponds en une phrase.

[commands] 3 available
Je suis Gemma 4, un grand modèle linguistique développé par Google DeepMind.
== stop reason: end_turn

>> Écris un bloc de code Go qui affiche hello.
```go
package main
…
== stop reason: end_turn
unloaded: hf.co/unsloth/gemma-4-E2B-it-GGUF:Q4_K_M

Votre identifiant de session et les mots d'Alice seront différents : le modèle choisit ses mots. Nous venons de faire ce que Sidekicks fera pour chaque message : une poignée de main (initialize), une session (session/new), deux prompts, et des réponses transmises mot à mot.

Étape 3 — Vérifier que la mémoire est libérée

Revenez à la racine et tapez :

cd ../..
scripts/agents.sh ps

Vous devriez voir les mêmes listes vides qu'à l'étape 1. La dernière ligne de l'étape 2, unloaded: …, c'était le script qui libérait le modèle d'Alice dès qu'elle s'est arrêtée.

Étape 4 — Lire le trafic

Tapez :

jq -r '.dir + "  " + (.msg.params.update.sessionUpdate // .msg.method // "response")' /tmp/alice.jsonl | head -8

Vous devriez voir :

client→agent  initialize
agent→client  response
client→agent  session/new
agent→client  response
agent→client  available_commands_update
client→agent  session/prompt
agent→client  agent_message_chunk
agent→client  agent_message_chunk

Chaque ligne est un message JSON-RPC. Juste après la création de la session, Alice annonce ses commandes ; la réponse lue à l'étape 2 est faite de nombreux messages agent_message_chunk.

Et maintenant ?

Vous avez piloté un vrai agent en ACP et vu exactement ce qui passe sur le fil. Pour aller plus loin :

  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
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
# Tutoriel : votre premier échange ACP avec un agent de test

À la fin de ce tutoriel, vous aurez envoyé deux messages à Alice, un des agents de test du projet, par l'Agent Client Protocol, lu ses réponses arriver au fil de l'eau, et retrouvé le trafic JSON-RPC enregistré. C'est la conversation que Sidekicks aura avec chaque agent ; l'application n'existe pas encore, nous utilisons donc le petit client écrit pour le spike ACP.

## Prérequis

- Le dépôt cloné, et un terminal ouvert à sa racine.
- Go 1.26 ou plus récent (`go version`).
- `mm` v1.0.3 installé et dans votre `PATH` (`mm -version`). S'il est ailleurs, définissez `MM_BIN=/chemin/vers/mm`.
- [llmman](https://llmmanorg.github.io/) lancé sur cette machine, avec le modèle d'Alice téléchargé : `llmman pull hf.co/unsloth/gemma-4-E2B-it-GGUF:Q4_K_M`.
- `jq` (`jq --version`).

## Étape 1 — Regarder ce qui tourne

Tapez :

```bash
scripts/agents.sh ps
```

Vous devriez voir :

```text
agents running (limit 2):
models loaded:
```

Aucun agent ne tourne et aucun modèle n'est chargé : la machine est prête.

## Étape 2 — Parler à Alice

Tapez :

```bash
cd spikes/acp-trace
go run . -agent alice -out /tmp/alice.jsonl \
    -prompt "Bonjour, qui es-tu ? Réponds en une phrase." \
    -prompt "Écris un bloc de code Go qui affiche hello."
```

Le premier lancement télécharge la bibliothèque ACP, puis le modèle se charge, ce qui prend quelques secondes. Vous devriez voir, au milieu de quelques lignes `[acp]` écrites par mm :

~~~text
== agent: &{… Name:Alice … Version:v1.0.3}
== protocol version: 1
== session: 20261029-082808-9a7c173b

>> Bonjour, qui es-tu ? Réponds en une phrase.

[commands] 3 available
Je suis Gemma 4, un grand modèle linguistique développé par Google DeepMind.
== stop reason: end_turn

>> Écris un bloc de code Go qui affiche hello.
```go
package main
…
== stop reason: end_turn
unloaded: hf.co/unsloth/gemma-4-E2B-it-GGUF:Q4_K_M
~~~

Votre identifiant de session et les mots d'Alice seront différents : le modèle choisit ses mots. Nous venons de faire ce que Sidekicks fera pour chaque message : une poignée de main (`initialize`), une session (`session/new`), deux prompts, et des réponses transmises mot à mot.

## Étape 3 — Vérifier que la mémoire est libérée

Revenez à la racine et tapez :

```bash
cd ../..
scripts/agents.sh ps
```

Vous devriez voir les mêmes listes vides qu'à l'étape 1. La dernière ligne de l'étape 2, `unloaded: …`, c'était le script qui libérait le modèle d'Alice dès qu'elle s'est arrêtée.

## Étape 4 — Lire le trafic

Tapez :

```bash
jq -r '.dir + "  " + (.msg.params.update.sessionUpdate // .msg.method // "response")' /tmp/alice.jsonl | head -8
```

Vous devriez voir :

```text
client→agent  initialize
agent→client  response
client→agent  session/new
agent→client  response
agent→client  available_commands_update
client→agent  session/prompt
agent→client  agent_message_chunk
agent→client  agent_message_chunk
```

Chaque ligne est un message JSON-RPC. Juste après la création de la session, Alice annonce ses commandes ; la réponse lue à l'étape 2 est faite de nombreux messages `agent_message_chunk`.

## Et maintenant ?

Vous avez piloté un vrai agent en ACP et vu exactement ce qui passe sur le fil. Pour aller plus loin :

- Démarrer des agents de test dans d'autres situations → [Comment lancer un agent de test](../how-to/lancer-un-agent-de-test.md)
- Toutes les commandes du script → [Référence : scripts/agents.sh](../reference/script-agents.md)
- Pourquoi Sidekicks parle ACP, et ce que le spike a appris → [Pourquoi ACP](../explanation/pourquoi-acp.md)