## TP — un assistant qui agit sur vos systèmes

**Objectif** : construire un agent capable de répondre à partir de la base documentaire
(RAG) **et** d'appeler un outil interne (ex. consulter un statut de dossier).

### Schéma cible
```
Utilisateur → Agent (LLM)
                ├── outil: recherche_documentaire(query)   → base vectorielle
                └── outil: statut_dossier(numero)          → API métier interne
```

### Étapes
1. Définir **deux outils** (fonctions) avec un schéma d'arguments clair et typé.
2. **Décrire** ces outils au modèle (function calling).
3. Implémenter la **boucle agent** : appel modèle → exécution outil → renvoi du résultat →
   le modèle décide s'il a fini ou rappelle un outil.
4. Ajouter une **garde** : valider/filtrer les arguments avant toute exécution (ne jamais
   exécuter en confiance aveugle ce que propose le modèle).

### 📌 Mise en situation
Reprenez le cas « instruction d'une demande citoyenne ». Implémentez réellement les deux
outils (avec des données fictives), puis testez la question composée : « Quel est le statut
du dossier 4821 et que dit la procédure applicable ? ». Observez la **trace** : combien
d'appels d'outils, dans quel ordre, avec quels arguments.

### Livrable
Une démo fonctionnelle où l'assistant combine l'appel à l'API métier et la recherche
documentaire, **plus** la trace d'exécution commentée (utile pour la traçabilité du Jour 4).