Les agents IA dévorent ton budget ? Ces 4 modèles mathématiques te montrent comment les optimiser pour dépenser moins sans perdre en efficacité.
LES AGENTS IA SONT DES GOURMANDS QUI COÛTENT CHER
Imagine une entreprise qui se lance dans les agents IA. Au début, c'est magique : chaque agent a une spécialité, comme un super-héros avec un pouvoir unique. Mais très vite, le nombre d'agents explose, et avec lui, la facture. 1 agent = 20 000 $ par an, c'est le prix moyen pour en faire un. Résultat ? Une équipe de 10 agents coûte déjà 200 000 $ par an, et ce n'est que le début.
Le problème, c'est qu'on a souvent l'impression que plus on a d'agents, mieux c'est. Mais en réalité, beaucoup d'agents font la même chose, ou pire : certains sont inutiles. Sans une stratégie claire, tu dépenses des fortunes pour des doublons ou des compétences qui ne servent à rien. Heureusement, il existe une solution : l'optimisation mathématique.
L'optimisation mathématique, c'est l'art de trouver la meilleure solution possible sous des contraintes réelles. En gros, c'est comme résoudre un puzzle où chaque pièce a un coût, et où tu veux obtenir le meilleur résultat avec le moins de pièces possible. Dans le monde des agents IA, ça veut dire : comment allouer tes ressources (agents, budget, compétences) pour obtenir le maximum d'efficacité au moindre coût ?
Les entreprises qui maîtrisent cette technique réduisent leurs coûts de 40% en moyenne, tout en gardant la même qualité de service. Voici comment ça marche, avec des exemples concrets en Python.
LE SET-COVERING : COMMENT COUVRIR TOUTES TES COMPÉTENCES AVEC 4 AGENTS SEULEMENT
Première situation classique : une entreprise a besoin de couvrir 9 compétences différentes pour faire fonctionner ses agents IA au quotidien. Chaque compétence correspond à un domaine précis, comme le support technique, l'analyse de données, ou la gestion des permissions. Le problème ? Chaque agent ne maîtrise qu'une partie de ces compétences.
Voici le défi : comment choisir le nombre minimal d'agents pour couvrir l'ensemble des 9 compétences, tout en dépensant le moins possible ? C'est exactement le genre de problème que résout le set-covering (en français : couverture de sets).
Prenons un exemple concret avec 4 agents aux spécialités différentes :
- Agent Support Général : Support, Connaissance, Collaboration
- Agent Accès & Permissions : Support, Automatisation, Gouvernance
- Agent CRM : Planification, Utilisation d'Outils, Connaissance
- Agent Optimisation Coûts : Analyse, Surveillance, Optimisation
Chaque agent coûte 20 000 $ par an. Si tu choisis les 4 agents, tu couvres toutes les compétences pour 80 000 $. Mais si tu choisis au hasard, tu peux facilement dépenser 200 000 $ pour la même couverture. Le set-covering te permet d'éviter ce gaspillage.
COMMENT ÇA MARCHE EN PYTHON ? LE CODE QUI FAIT TOUT
Voici comment transformer ce problème en code Python avec la bibliothèque Gurobi, un outil puissant pour résoudre ce genre de problèmes. Gurobi est comme un super-calculateur qui trouve la meilleure solution en quelques secondes, même pour des problèmes complexes.
## données des compétences et des agents
skills = data["skills"]
agents = data["agents"]
agentskills = data["agentskills"]
agent_costs = {i: 20 for i in agents} # Chaque agent coûte 20k
## création du modèle
import gurobipy as gp
model = gp.Model("Set Covering") # On donne un nom au modèle
## définition des variables
# X[i] = 1 si l'agent i est sélectionné, 0 sinon
X = model.addVars(agents, lb=0, ub=1, vtype=GRB.BINARY, name="x")
## ajout des contraintes
# Pour chaque compétence, la somme des agents sélectionnés doit être ≥ 1
for j in skills:
model.addConstr(
gp.quicksum(X[i] for i in agents if j in agent_skills[i]) >= 1,
name=f'{j}areaconstr'
)
## définition de l'objectif
# On veut minimiser le coût total des agents sélectionnés
model.setObjective(
gp.quicksum(agent_costs[i] * X[i] for i in agents),
GRB.MINIMIZE
)
## résolution du modèle
model.optimize()
Une fois le modèle résolu, tu obtiens le résultat suivant :
================ Set-Covering: Skill Coverage ================
Minimum agents needed : 4
Total cost : $80k
Selected agents:
- General Support Agent [F(Support), C(Knowledge), H(Collaboration)]
- Access & Permissions Agent [F(Support), E(Automation), G(Governance)]
- CRM / Relationship Management Agent [A(Planning), B(Tool Use), C(Knowledge)]
- Cost & Performance Optimization Agent [D(Analytics), I(Monitoring), J(Optimization)]
Le modèle a sélectionné exactement 4 agents, couvrant toutes les compétences pour un coût total de 80 000 $. Sans optimisation, une sélection aléatoire aurait coûté en moyenne 132 880 $, avec des pics à 220 000 $. C'est une économie massive .
Pour visualiser l'impact, on peut simuler 500 sélections aléatoires et comparer leurs coûts. Résultat : l'optimisation permet d'économiser en moyenne 52 880 $ par an sur ce seul projet.
──────────────────────────────────────────────────
Set Covering — Skill Coverage
──────────────────────────────────────────────────
Minimum (Optimal) : 80.00 k$
Sim mean : 132.88 k$
Sim min : 80.00 k$
Sim max : 220.00 k$
Feasible solutions : 500/500
──────────────────────────────────────────────────
LE PROBLÈME D'AFFECTATION : COMMENT AFFECTER LES BONS AGENTS AUX BONS PROJETS
Deuxième situation fréquente : une entreprise a 9 projets à réaliser, et chaque projet a besoin d'un agent principal. Le problème ? Chaque agent a des compétences différentes, et certains sont plus adaptés que d'autres à certains projets. Comment maximiser la valeur totale produite en affectant les bons agents aux bons projets ?
C'est le problème d'affectation (ou assignment problem). L'objectif est simple : maximiser la somme des scores de valeur, où chaque score représente à quel point un agent est adapté à un projet. Par exemple, un agent spécialisé en analyse de données aura un score élevé pour un projet de tableau de bord, mais faible pour un projet de gestion de permissions.
Voici un exemple de tableau de scores :
- Agent Insights & Analyse : Projet P1 (9), Projet P7 (8)
- Agent Gestion des Connaissances : Projet P8 (9)
- Agent Orchestration Marketing : Projet P3 (9), Projet P6 (8)
- Agent Support Client Automatisé : Projet P2 (9)
- Agent Qualité des Données : Projet P9 (8)
- Agent Orchestration des Workflows : Projet P5 (8)
- Agent Gouvernance & Conformité : Projet P4 (9)
Le modèle doit respecter deux contraintes :
- Chaque projet a exactement un agent principal.
- Chaque agent est affecté à au moins un projet.
LE CODE PYTHON POUR RÉSOUDRE LE PROBLÈME D'AFFECTATION
Voici comment coder ce problème avec Gurobi. On commence par préparer les données, puis on crée le modèle, les variables, les contraintes et l'objectif.
## données des agents et des projets
agents = data["agents"]
projects = data["projects"]
values = data["values"]
## création d'une carte de valeur : (agent, projet) -> score
value_map = {
(agents[i], projects[j]): values[i][j]
for i in range(len(agents))
for j in range(len(projects))
}
## création du modèle
import gurobipy as gp
model = gp.Model("Assignment")
## définition des variables
# X[(i,j)] = 1 si l'agent i est affecté au projet j, 0 sinon
X = model.addVars(agents, projects, lb=0, ub=1, vtype=GRB.BINARY, name="x")
## ajout des contraintes
# Chaque projet a exactement un agent
for j in projects:
model.addConstr(
gp.quicksum(X[(i, j)] for i in agents) == 1,
name=f"{j}projectconstr",
)
# Chaque agent est affecté à au moins un projet
for i in agents:
model.addConstr(
gp.quicksum(X[(i, j)] for j in projects) >= 1,
name=f"{i}agentconstr",
)
## définition de l'objectif
# On veut maximiser la somme des scores de valeur
model.setObjective(
gp.quicksum(value_map[(i, j)] * X[(i, j)] for i in agents for j in projects),
GRB.MAXIMIZE,
)
## résolution du modèle
model.optimize()
Résultat après résolution :
================ Assignment Problem: Resource Allocation ================
Maximum total suitability score: 77
Agent Project Description Score
-----------------------------------------------------------------------------------------------
Analytics & Insights Agent P1 Exec Metrics Dashboard 9
Analytics & Insights Agent P7 Churn Risk Monitor 8
Knowledge Management Agent P8 Onboarding Guide Bot 9
Marketing Campaign Orchestration Agent P3 Lead-Scoring Model 9
Marketing Campaign Orchestration Agent P6 Feature Launch Brief 8
Customer Support Automation Agent P2 CX Knowledge Bot 9
Data Quality & Monitoring Agent P9 SLA Incident Triage 8
Workflow Orchestration Agent P5 Experiment Analysis 8
Governance & Compliance Agent P4 Policy QA Assistant 9
Le modèle a trouvé une affectation optimale où la valeur totale est de 77. Sans optimisation, une affectation aléatoire aurait donné une valeur moyenne de 63,16, avec un minimum de 55 et un maximum de 72. L'optimisation améliore donc la valeur totale de 22%.
Voici ce que ça donne en simulation : sur 500 solutions possibles, l'optimisation garantit toujours le score maximal de 77.
──────────────────────────────────────────────────
Assignment — Agent-to-Project Allocation
──────────────────────────────────────────────────
Maximum (Optimal) : 77.00 score
Sim mean : 63.16 score
Sim min : 55.00 score
Sim max : 72.00 score
Feasible solutions : 500/500
──────────────────────────────────────────────────
LE KNAPSACK : COMMENT CHOISIR LES MEILLEURS AGENTS SANS DÉPASSER TON BUDGET
Troisième problème courant : une entreprise a un budget mensuel limité pour ses agents IA, disons 4 000 $. Chaque agent a un coût et une capacité de production (par exemple, le nombre de requêtes qu'il peut traiter par mois). Comment choisir les agents pour maximiser la production totale, sans dépasser le budget ?
C'est le problème du sac à dos (ou knapsack problem). Imagine que tu as un sac à dos qui ne peut contenir que 4 000 $ de valeur, et que tu veux y mettre les objets les plus précieux possibles. Chaque objet a un coût et une valeur. Le défi est de maximiser la valeur totale sans dépasser la capacité du sac.
Dans le cas des agents IA, la
- Towards Data Science
L'indépendance de CLODCO est votre garantie.
Pour que l'actualité de l'IA reste sans filtre et sans concession, votre soutien est indispensable. Votre contribution est le seul moteur de notre liberté éditoriale.
Soutenir CLODCO


