11 - TP Agent sur Unknown Tech

Explorer une technologie inconnue avec un agent LLM


Objectif

Utiliser un agent IA pour explorer une technologie que vous ne connaissez pas : ici Rust et le framework de jeux vidéo Bevy.

Ce n’est pas un TP sur la veille IA - le cours (11_cours_veille.md) couvre déjà les sources (HN/Lobste.rs LLM tags, LocalLLM).
C’est un TP sur le travail avec un agent sur un domaine inconnu.


Le concept “Unknown Tech”

Pourquoi explorer l’inconnu ?

Un des grands pouvoirs des agents LLM : vous guider dans une technologie que vous ne maîtrisez pas.

Scénario : Vous êtes développeur Python/JS, vous n’avez jamais fait de Rust. Mais vous voulez créer un petit jeu.

L’agent peut :

  • Expliquer la syntaxe Rust
  • Guider l’installation
  • Suggérer des patterns de code
  • Proposer des idées de démos simples
  • Débugger les erreurs du compilateur Rust

Partie 1 : Setup Rust + Bevy

Étape 1 : Questionner l’agent

Prompt initial :

I want to build a simple game demo in Rust using the Bevy game engine.
I have never used Rust or Bevy before.

1. What do I need to install?
2. What's a simple first demo I could build in 2-3 hours?
3. What are common gotchas for beginners?

Give me 3 demo ideas ranked by difficulty.

L’agent va suggérer :

  • Des idées de démos (Pong, snake, particle system, etc.)
  • Le setup nécessaire (rustup, cargo, bevy dependencies)
  • Les pièges classiques (borrow checker, ECS patterns)

Étape 2 : Installation guidée

Demander à l’agent de générer les commandes :

Give me the exact commands to:
1. Install Rust on my system (Linux/macOS)
2. Create a new Bevy project
3. Run a minimal window

Notez chaque commande dans votre historique.
Gardez le Git workflow actif - voir section transversale.


Partie 2 : L’agent propose, vous codez

Sélectionner une démo

Exemple de réponse agent :

## Demo Ideas (ranked by difficulty)

1. **Hello Window** (30 min)
   - Just opens a window
   - Teaches: Cargo, dependencies, Bevy App structure
   
2. **Moving Sprite** (2h)
   - A sprite that moves with keyboard
   - Teaches: Systems, Query, Components, Input handling
   
3. **Simple Pong** (3-4h)
   - Two paddles, a ball, collision
   - Teaches: ECS architecture, collision detection, game loops

Choisir le niveau adapté à votre temps disponible.


Implémenter avec l’agent

Pattern de travail :

YOU: "I chose the moving sprite demo. Let's start."

AGENT: Explains the structure, provides base code

YOU: Copy-paste into your editor

ERROR: Compiler error appears

YOU: Paste error to agent

AGENT: Explains the error, suggests fix

YOU: Apply fix, test again

[Loop until working]

Important : Vous ne copiez pas aveuglément. Vous comprenez chaque ligne.


Partie 3 : Documenter le processus

Créer un fichier de suivi

# RUST_BEVY_LEARNING.md

## Date: DD/MM/YYYY

## Why Rust + Bevy?
[Ce qui vous a motivé]

## Demo Chosen
[Hello Window / Moving Sprite / Pong]

## Installation Log

```bash
# Commandes exécutées
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo new my_bevy_game
cd my_bevy_game
# ... toutes les commandes ...

Errors Encountered

Error 1: [Titre]

[Error message exact]

Cause: [Explication agent] Fix: [Solution appliquée]

Error 2: …


**Ce fichier devient votre mémoire de session.**  
**Utile pour vous ET pour l'équipe.**

---

# Partie 4 : Le check agent

## Critiquer le résultat

**Questions à poser à la fin :**

  1. What are the limitations of the code we wrote?
  2. What would you improve if we had more time?
  3. What are the next learning steps for Rust/Bevy?
  4. What bad habits did I show that I should fix?

**L'agent peut vous surprendre :**
- Code qui fonctionne mais pas idiomatique
- Patterns simplistes qui passent à l'échelle
- Dette technique invisible

---

# Git & Docker Workflow (Transversal)

> **⚠️ Voir `00_workflow_transversal.md` pour le workflow complet.**

**Rappels rapides pour ce TP :**

```bash
# Git : Une branche par feature
git checkout -b feature/bevy-demo
git add src/main.rs && git commit -m "feat: add basic Bevy window"

# Docker : Isolation optionnelle pour Rust/Bevy
docker run -it -v $(pwd):/app rust:latest bash
cargo new my_bevy_game

Pourquoi c’est important : En unknown tech, Git est votre safety net. Si l’agent suggère du code qui casse tout, vous pouvez git diff ou git revert.


Yolo Mode ⚠️

⚠️ Voir 00_workflow_transversal.md pour les détails complets sur Yolo Mode et Catastrophic Forgetting.

Rappel rapide : Le “yolo mode” (laisser l’agent faire tout seul) est risqué. En unknown tech, c’est encore plus dangereux car vous ne savez pas si le code généré est correct.

Pattern recommandé :

BAD: "Just create the game for me."

GOOD: "Explain the code structure first."
      [Ask clarifying questions]
      [Request one function at a time]

Livrable

À la fin de ce TP :

  • Rust et Bevy installés (ou dans Docker)
  • Une démo fonctionnelle (au choix)
  • Fichier RUST_BEVY_LEARNING.md documenté
  • Commits atomiques avec messages clairs
  • Compréhension du code produit (vous pouvez l’expliquer)

Checkpoint

Pattern retenu : L’agent est un guide, pas un développeur remplaçant.

Question clé : Si l’agent a écrit du code que vous ne comprenez pas, comment allez-vous le maintenir ?

Prochain module : Module 12 - Projet final avec intégration complète du Git workflow.


Ressources