Aller au contenu principal

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

ChampTypeRequisDescription
namestringouiIdentifiant de l'outil (utilisé par le LLM)
typestringouiDoit être rest_api
descriptionstringrecommandéDescription affichée au LLM pour l'aider à décider quand utiliser cet outil
urlstringouiURL du point de terminaison (prend en charge ${VAR} pour les variables d'environnement)
methodstringouiMéthode HTTP : GET, POST, PUT, DELETE
headersmapnonEn-têtes HTTP à inclure dans la requête
timeoutstringnonDélai d'expiration de la requête (par défaut : 30s)

Fonctionnement

  1. Le LLM décide d'appeler un outil d'API REST en se basant sur le name et la description de l'outil.
  2. 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.
  3. La réponse est renvoyée au LLM comme résultat de l'outil.
  4. 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 timeout empê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"