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). mmv1.0.3 installé et dans votrePATH(mm -version). S'il est ailleurs, définissezMM_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 :
- Démarrer des agents de test dans d'autres situations → Comment lancer un agent de test
- Toutes les commandes du script → Référence : scripts/agents.sh
- Pourquoi Sidekicks parle ACP, et ce que le spike a appris → Pourquoi ACP
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 |
|