# Outils utilitaires Les endpoints `/tools` sont des utilitaires publics — aucune authentification requise. Ils sont utiles pour les agents LLM qui ont besoin de l'heure côté serveur, de calculs sûrs ou de valeurs aléatoires. ## GET /tools/time Récupère l'heure actuelle du serveur, le fuseau horaire et le décalage UTC. ```bash curl https://synapse.schaefer.zone/tools/time ``` Réponse : ```json { "time": "2026-06-27T14:30:00.000Z", "timezone": "Europe/Berlin", "offset": 120 } ``` Cas d'usage : agents LLM qui ont besoin de savoir « quelle heure est-il maintenant » pour la planification, les horodatages ou les calculs de dates relatives. ## GET /tools/calc Calculatrice sûre — arithmétique uniquement, pas d'`eval()`. Prend en charge `+`, `-`, `*`, `/`, `%`, `(`, `)` et les nombres. ```bash curl "https://synapse.schaefer.zone/tools/calc?expr=(10+5)*3" ``` Réponse : ```json { "result": 45, "expr": "(10+5)*3" } ``` > [!TIP] > Utilisez ceci plutôt que d'essayer de faire des calculs de tête ou via l'analyse > de chaînes. C'est sûr (aucune injection de code possible) et précis. ### Opérateurs pris en charge - `+` addition - `-` soustraction - `*` multiplication - `/` division - `%` modulo - `(` `)` parenthèses - Nombres (entiers et décimaux) ### Exemples ```bash curl ".../tools/calc?expr=2+2" # → 4 curl ".../tools/calc?expr=3.14*100" # → 314 curl ".../tools/calc?expr=100%7" # → 2 curl ".../tools/calc?expr=(2+3)*4-1" # → 19 ``` ## GET /tools/random Génère des valeurs aléatoires. ```bash # UUID v4 curl "https://synapse.schaefer.zone/tools/random?type=uuid" # → { "value": "a1b2c3d4-...", "type": "uuid" } # Entier (plage par défaut 0-100) curl "https://synapse.schaefer.zone/tools/random?type=int&min=1&max=10" # → { "value": 7, "type": "int" } # Flottant curl "https://synapse.schaefer.zone/tools/random?type=float&min=0&max=1" # → { "value": 0.7234, "type": "float" } # Chaîne hexadécimale curl "https://synapse.schaefer.zone/tools/random?type=hex&min=8&max=16" # → { "value": "a3f7b2c1", "type": "hex" } # Chaîne alphabétique curl "https://synapse.schaefer.zone/tools/random?type=alpha&min=8&max=12" # → { "value": "kQmzPwXn", "type": "alpha" } ``` ### Paramètres par type | Type | Paramètres | Sortie | |------|-----------|--------| | `uuid` | aucun | Chaîne UUID v4 | | `int` | `min`, `max` (par défaut 0-100) | Entier | | `float` | `min`, `max` (par défaut 0-100) | Flottant | | `hex` | `min`, `max` (plage de longueur, par défaut 8-16) | Chaîne hexadécimale | | `alpha` | `min`, `max` (plage de longueur, par défaut 8-16) | Chaîne alphabétique | ## Cas d'usage pour les agents LLM ### Générer des identifiants uniques ```bash ID=$(curl -s .../tools/random?type=uuid | jq -r .value) curl -X POST .../memory -d "{\"key\": \"task_$ID\", ...}" ``` ### Calculer des pourcentages ```bash TOTAL=142 DONE=87 PERCENT=$(curl -s ".../tools/calc?expr=($DONE*100)/$TOTAL" | jq -r .result) echo "Progress: $PERCENT%" ``` ### Obtenir l'horodatage courant ```bash NOW=$(curl -s .../tools/time | jq -r .time) curl -X POST .../var -d "{\"key\": \"last_run\", \"value\": \"$NOW\"}" ``` ### Générer des données de test ```bash for i in {1..10}; do NAME=$(curl -s ".../tools/random?type=alpha&min=5&max=10" | jq -r .value) curl -X POST .../memory -d "{\"key\": \"test_$i\", \"content\": \"$NAME\"}" done ``` ## Prochaines étapes - [Vue d'ensemble de l'API](/docs/api/overview) — tous les groupes d'endpoints - [Erreurs & gestion des erreurs](/docs/api/errors)