Outils d'API REST
Les agents Sinaptic® DROID+ peuvent appeler des points de terminaison (endpoints) HTTP externes en tant qu'outils. Cela permet aux agents d'interagir avec n'importe quelle API REST — services internes, API tierces, webhooks — sans écrire de code personnalisé.
Configuration
Ajoutez des outils d'API REST directement dans la configuration YAML de votre agent :
# configs/agents/mon-agent.yaml
name: "mon-agent"
tools:
- name: "get-weather"
type: "rest_api"
description: "Obtenir la météo actuelle pour une ville"
url: "https://api.weather.example.com/current?city=${city}"
method: "GET"
headers:
Authorization: "Bearer ${WEATHER_API_KEY}"
timeout: "10s"
- name: "create-ticket"
type: "rest_api"
description: "Créer un ticket de support"
url: "https://api.example.com/tickets"
method: "POST"
headers:
Content-Type: "application/json"
Authorization: "Bearer ${INTERNAL_API_KEY}"
timeout: "15s"
Champs
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | oui | Identifiant de l'outil (utilisé par le LLM) |
type | string | oui | Doit être rest_api |
description | string | recommandé | Description affichée au LLM pour l'aider à décider quand utiliser cet outil |
url | string | oui | URL du point de terminaison (prend en charge ${VAR} pour les variables d'environnement) |
method | string | oui | Méthode HTTP : GET, POST, PUT, DELETE |
headers | map | non | En-têtes HTTP à inclure dans la requête |
timeout | string | non | Délai d'expiration de la requête (par défaut : 30s) |
Fonctionnement
- Le LLM décide d'appeler un outil d'API REST en se basant sur le
nameet ladescriptionde l'outil. - Sinaptic® DROID+ effectue la requête HTTP avec la méthode, l'URL, les en-têtes configurés et tout corps (body) fourni par le LLM.
- La réponse est renvoyée au LLM comme résultat de l'outil.
- Le LLM incorpore le résultat dans sa réponse à l'utilisateur.
Sécurité
- Les outils d'API REST respectent les paramètres SinapticAI de l'agent — les entrées et sorties des outils sont scannées pour détecter les PII (informations personnelles) et les tentatives d'injection.
- Utilisez des variables d'environnement (
${VAR}) pour les clés API et les secrets dans les en-têtes — ne les écrivez jamais en dur. - Le champ
timeoutempêche les outils de rester bloqués indéfiniment sur des points de terminaison lents.
Exemples
Appeler un microservice interne
tools:
- name: "lookup-order"
type: "rest_api"
description: "Consulter le statut d'une commande par ID de commande"
url: "https://internal-api.example.com/orders/${order_id}"
method: "GET"
headers:
X-Service-Token: "${INTERNAL_TOKEN}"
timeout: "5s"
Envoyer un webhook
tools:
- name: "notify-slack"
type: "rest_api"
description: "Envoyer une notification à un canal Slack"
url: "${SLACK_WEBHOOK_URL}"
method: "POST"
headers:
Content-Type: "application/json"
timeout: "10s"