Agents IA (Léo)
Système multi-agent propulsé par Claude pour le CRM Kasar
Léo est le système d'IA intégré à Kasar, construit avec le Claude SDK (Anthropic). Il utilise une architecture multi-agent avec un orchestrateur qui route les requêtes vers des agents spécialisés.
Architecture
Utilisateur → Orchestrateur → Agent spécialisé → Outils → Réponse
↓
Confirmation utilisateur (si mutation)Le streaming utilise les Server-Sent Events (SSE) via /api/agent/stream avec des chunks typés : thought, content, structured_content, action, done.
Agents disponibles
Orchestrateur (Triage)
L'orchestrateur analyse l'intention de l'utilisateur et délègue au bon agent. Il ne réalise aucune action directement (sauf salutations).
| Intention | Agent cible |
|---|---|
| Créer/rechercher/modifier des données | Data Agent |
| Ajouter un champ, créer un objet | Architecte Agent |
| Statistiques, graphiques | Dashboard Agent |
| Tâches, rappels | Task Agent |
| Conseil commercial | Sales Coach |
| Questions générales | Assistant |
Data Agent
L'agent le plus puissant, spécialisé dans les opérations CRUD et la recherche de données.
Modèle : Claude Sonnet 4.5 + Web Search
16 outils :
| Outil | Description |
|---|---|
search_records | Recherche full-text avec filtres et mode batch |
create_record | Création avec aperçu et confirmation |
update_record | Modification avec aperçu et confirmation |
display_record | Affichage détaillé d'un enregistrement |
display_record_list | Affichage de plusieurs enregistrements |
get_object_schema | Structure d'un objet |
get_crm_schema | Schéma complet du CRM |
link_records | Liaison MANY_TO_MANY |
manage_emails_phones | Gestion des emails/téléphones composés |
query_data | Requêtes avancées avec filtres |
aggregate_data | Agrégations : COUNT, SUM, AVG, MIN, MAX |
get_deal_context | Contexte complet d'une opportunité |
WebSearch | Recherche web pour enrichissement |
enrich_company | Enrichissement entreprise via web |
enrich_contact | Enrichissement contact via web |
Règles importantes :
- Toute création/modification nécessite une confirmation utilisateur
- Ne dit jamais "créé" mais "proposé" (en attente de confirmation)
- N'invente jamais de données — utilise la recherche web pour des informations réelles
- Détection de doublons avant création
Architecte Agent
Gestion du modèle de données : création/modification d'objets, champs et relations.
Modèle : Claude Sonnet 4.5
11 outils :
| Outil | Description |
|---|---|
list_objects | Liste tous les objets CRM |
get_object_details | Détails complets d'un objet |
get_crm_schema | Vue d'ensemble du schéma |
create_field | Ajout de champ (35+ types) |
update_field | Modification de champ |
deactivate_field | Désactivation de champ |
reorder_fields | Réorganisation de l'ordre des champs |
create_object | Création d'objet CRM |
update_object | Modification des métadonnées d'objet |
deactivate_object | Désactivation d'objet |
create_relation | Création de relation (BELONGS_TO_ONE, MANY_TO_MANY) |
Règles :
- Toutes les modifications nécessitent une confirmation
- Ne peut pas modifier les objets système (
is_system = true) - Les SELECT/MULTI_SELECT nécessitent des options avec valeur/label/couleur
Dashboard Agent
Visualisation de données et création de graphiques.
Modèle : Claude Sonnet 4.5
6 outils :
| Outil | Description |
|---|---|
list_dashboard_sources | Sources de données disponibles |
preview_chart | Génération de graphique dans le chat |
get_aggregation | Calcul de KPI |
list_dashboards | Liste des dashboards |
get_dashboard | Détails d'un dashboard |
suggest_dashboard | Suggestion de layout par l'IA |
Types de graphiques :
| Type | Usage |
|---|---|
indicator | KPI unique (valeur seule) |
bar | Comparaison de catégories |
line | Séries temporelles (>30 points) |
area | Séries temporelles (≤30 points) |
doughnut | Distribution (≤8 catégories) |
pie | Distribution alternative |
funnel | Pipeline / conversion |
Agrégations : count, count_distinct, sum, avg, min, max, stddev, variance, count_true, count_false, percent_true
Intervalles temporels : heure, jour, semaine, mois, trimestre, année
Task Agent
Gestion complète des tâches.
Modèle : Claude Sonnet 4.5
7 outils :
| Outil | Description |
|---|---|
get_my_tasks | Mes tâches (aujourd'hui, en retard, à venir, toutes) |
get_team_tasks | Tâches de l'équipe |
get_task_stats | Statistiques (total, terminées, en retard, par priorité) |
display_tasks | Affichage des tâches dans l'UI |
create_tasks | Création (unitaire ou batch) |
update_tasks | Modification (batch supporté) |
complete_tasks | Marquer comme terminées |
Fonctionnalités :
- Opérations en lot (créer/modifier/compléter plusieurs tâches)
- Filtrage intelligent (en retard, aujourd'hui, cette semaine)
- Décalage relatif de dates (ex: "repousse tout de 3 jours")
- Réassignation de tâches
- Toutes les mutations nécessitent confirmation
Sales Coach
Conseiller commercial pour la stratégie de vente.
Modèle : Claude Haiku 4.5 + Web Search
4 outils (lecture seule) :
| Outil | Description |
|---|---|
search_records | Accès CRM en lecture |
get_deal_context | Contexte complet d'une affaire |
display_record | Affichage d'enregistrement |
WebSearch | Recherche de bonnes pratiques |
Domaines d'expertise :
- Prospection (outreach, cold calling, qualification)
- Négociation (closing, objections, pricing)
- Process (BANT/MEDDIC, discovery, demos)
- Communication (templates email, messages LinkedIn, préparation d'appels)
Ne modifie jamais les données CRM.
Assistant
Agent généraliste pour les questions en dehors du périmètre des autres agents.
Modèle : Claude Haiku 4.5 + Web Search
3 outils (lecture seule) : search_records, display_record, WebSearch
Gère les conversations générales, recherches d'information et redirige vers l'agent approprié si nécessaire.
Import Agent
Agent interne (non accessible directement via le chat) pour l'import CSV/XLSX.
Modèle : Claude Sonnet 4.5
Capacités :
- Détection automatique des en-têtes et de l'encodage
- Suggestion d'objet cible (seuil 60%)
- Inférence de type par colonne
- Détection split/merge (ex: "John Doe" → first_name + last_name)
- Auto-évaluation et itération (arrêt à score ≥8/10 ou après 3 itérations)
Workflow de confirmation
Toutes les mutations (création, modification, suppression) suivent un workflow de confirmation :
- L'agent génère un aperçu de l'action proposée
- L'aperçu est affiché avec les boutons Confirmer / Annuler
- Sur confirmation, l'action est exécutée côté serveur
- Les IDs temporaires (preview) sont résolus en IDs réels
Agent propose → Aperçu affiché → Utilisateur confirme → Exécution → Résultat
↓
AnnulationComposants UI (Leo Chat)
| Composant | Rôle |
|---|---|
LeoChatPanelContent | Conteneur principal du chat |
LeoThinkingSection | Étapes de réflexion (dépliable) |
LeoRecordCard | Aperçu d'un enregistrement |
LeoRecordList | Liste d'enregistrements |
LeoTaskCard | Carte de tâche avec couleurs d'urgence |
LeoChartCard | Graphique interactif |
LeoAggregationCard | Valeur KPI unique |
LeoDataModelCards | Aperçu objet/champ (architecte) |
Gestion du contexte
Chaque agent reçoit :
- Prompt système — Instructions spécifiques à l'agent
- Schéma CRM — Métadonnées compactes (objets, champs, enums, relations)
- Résumé de conversation — Historique compressé des échanges précédents
- Contexte utilisateur — Nom, email, organisation
- Date courante
L'historique est automatiquement résumé après N messages pour éviter le dépassement de tokens.
Limites et quotas
| Paramètre | Valeur |
|---|---|
| Durée max | 300 secondes (5 min) |
| Tours max par agent | 20 |
| Délégations max | 3 |
| Budget recherche web (simple) | 2 recherches |
| Budget recherche web (intermédiaire) | 5 recherches |
| Budget recherche web (approfondi) | 15 recherches |