Documentation interactive
Chaque application Agent-Lab sert automatiquement une documentation OpenAPI 3 — pour l'implémentation
de référence, à l'adresse http://localhost:18000/docs (ou sur votre
propre application, où qu'elle s'exécute). Le catalogue ci-dessous documente les routeurs intégrés
du framework ; vos extra_routers apparaissent dans le même schéma.
Authentification
Lorsque auth.enabled vaut true (voir la Référence de configuration),
les routes exigent un jeton bearer Keycloak. Le routeur /auth n'est monté que lorsque l'authentification
est activée :
TOKEN=$(curl -s -X POST https://<host>/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "…", "password": "…"}' | jq -r '.access_token')
curl -s https://<host>/agents/list -H "Authorization: Bearer $TOKEN" | jq| Méthode | Point de terminaison | Description |
|---|---|---|
| POST | /auth/login |
Crée un nouveau jeton bearer |
| POST | /auth/renew |
Renouvelle un jeton bearer existant |
| POST | /auth/exchange |
Échange un code d'autorisation Microsoft Entra ID (PKCE) contre un jeton de l'application |
| GET | /auth/profile |
Récupère le profil de l'utilisateur authentifié |
| PUT | /auth/profile |
Met à jour le profil de l'utilisateur authentifié |
La configuration du realm et du client est décrite dans Authentification avec Keycloak.
Chemins non authentifiés : /status/*, /docs, /openapi.json, /mcp, /static,
les points de terminaison OAuth well-known et le montage de la SPA — tout le reste nécessite un jeton
valide.
Points de terminaison
Agents
Créez des instances de n'importe quel type d'agent enregistré ; agent_type est validé dynamiquement
par rapport au registre.
| Méthode | Point de terminaison | Description |
|---|---|---|
| GET | /agents/list |
Liste toutes les instances d'agents |
| GET | /agents/types |
Liste les types d'agents enregistrés (le registre) |
| GET | /agents/{agent_id} |
Récupère une instance d'agent par son ID |
| POST | /agents/create |
Crée une nouvelle instance d'agent |
| POST | /agents/update |
Met à jour les informations de base d'un agent |
| POST | /agents/update_setting |
Met à jour un paramètre unique d'un agent |
| POST | /agents/{agent_id}/reset_settings |
Réinitialise les paramètres d'un agent à leurs valeurs par défaut |
| DELETE | /agents/delete/{agent_id} |
Supprime une instance d'agent |
| WS | /agents/ws/task_updates/{agent_id} |
Flux WebSocket des mises à jour de progression des tâches pour les opérations longues |
Messages
| Méthode | Point de terminaison | Description |
|---|---|---|
| POST | /messages/post |
Envoie un message à un agent et récupère sa réponse |
| POST | /messages/list |
Liste les messages d'un agent |
| GET | /messages/{message_id} |
Récupère le détail complet d'un message (réponses, pièce jointe) |
| DELETE | /messages/delete/{message_id} |
Supprime un message |
Modèles de langage
| Méthode | Point de terminaison | Description |
|---|---|---|
| GET | /llms/list |
Liste les modèles de langage configurés |
| GET | /llms/{language_model_id} |
Récupère un modèle de langage et ses paramètres |
| POST | /llms/create |
Crée un nouveau modèle de langage |
| POST | /llms/update |
Met à jour la configuration d'un modèle de langage |
| POST | /llms/update_setting |
Met à jour un paramètre unique d'un modèle de langage |
| DELETE | /llms/delete/{language_model_id} |
Supprime un modèle de langage |
Intégrations
| Méthode | Point de terminaison | Description |
|---|---|---|
| GET | /integrations/list |
Liste les intégrations externes (fournisseurs d'IA) |
| GET | /integrations/{integration_id} |
Récupère le détail d'une intégration |
| POST | /integrations/create |
Crée une intégration (identifiants stockés dans Vault) |
| DELETE | /integrations/delete/{integration_id} |
Supprime une intégration |
Pièces jointes
| Méthode | Point de terminaison | Description |
|---|---|---|
| GET | /attachments/list |
Liste les pièces jointes |
| GET | /attachments/download/{attachment_id} |
Télécharge une pièce jointe |
| POST | /attachments/upload |
Téléverse un fichier en pièce jointe |
| POST | /attachments/embeddings |
Génère les embeddings d'une pièce jointe |
État et MCP
| Méthode | Point de terminaison | Description |
|---|---|---|
| GET | /status/liveness |
Sonde de liveness |
| GET | /status/readiness |
Sonde de readiness |
| GET | /status/metrics |
Métriques Prometheus |
| * | /mcp |
Le serveur MCP (Streamable HTTP) |
| GET | /.well-known/oauth-protected-resource/mcp |
Métadonnées OAuth pour les clients MCP |
Exemples de requêtes
Créer une instance d'agent — agent_name accepte [a-zA-Z0-9_-] ;
agent_type doit être un type enregistré ; language_model_id est facultatif :
curl -s -X POST http://localhost:18000/agents/create \
-H "Content-Type: application/json" \
-d '{
"agent_name": "support-agent-1",
"agent_type": "coordinator_planner_supervisor",
"language_model_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}' | jqEnvoyer un message — message_role vaut human, assistant ou tool ;
attachment_id est facultatif :
curl -s -X POST http://localhost:18000/messages/post \
-H "Content-Type: application/json" \
-d '{
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"message_role": "human",
"message_content": "Summarize the attached report.",
"attachment_id": null
}' | jqMettre à jour un paramètre d'agent — setting_key accepte [a-zA-Z_-] ;
setting_value contient jusqu'à 16 000 caractères (les templates de prompts et les charges utiles JSON
se trouvent ici — voir le Modèle de domaine des entités) :
curl -s -X POST http://localhost:18000/agents/update_setting \
-H "Content-Type: application/json" \
-d '{
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"setting_key": "system_prompt",
"setting_value": "You are a concise research assistant…"
}' | jqConventions
- Les ID sont des UUID ; tous les points de terminaison de liste acceptent des corps JSON, et non des query strings.
- Les paramètres sont des paires clé-valeur persistées avec l'agent ou le modèle — c'est ainsi qu'une même implémentation peut faire tourner de nombreuses instances configurées différemment.
- Le registre fait foi pour les valeurs valides de
agent_type— appelezGET /agents/typespour voir ce que l'application en cours d'exécution a découvert (y compris vos propres packages viascan_packages).