Il y a quelques années, « l'IA dans votre application » signifiait un chatbot qui répondait aux FAQ. Aujourd'hui, cela signifie un agent capable de rechercher, filtrer, comparer, réserver et effectuer des transactions, tout en se souvenant de ce que vous avez dit il y a trois messages.
Rufus d'Amazon a déjà répondu à des dizaines de millions de questions d'acheteurs – des comparaisons de produits telles que « Quelle est la différence entre les téléviseurs OLED et QLED ? », des recommandations (« les meilleures enceintes d'extérieur sans fil »), ainsi que des cas d'utilisation spécifiques (« jeux de pelouse pour les anniversaires d'enfants »). L'IA Trip Support de Booking.com fait la même chose pour les voyageurs : un client avec une voiture demande « Un parking est-il disponible à l'hôtel ? », l'agent récupère les informations sur la propriété et répond en quelques secondes.
À tout moment, des milliers de ces questions ne sont que des variantes de quelque chose qui a déjà été posé et répondu.
Mais ces assistants ne se contentent pas de répondre aux questions. Chaque fois que les utilisateurs posent les mêmes questions encore et encore, cela déclenche un appel LLM coûteux et à latence élevée, ainsi que souvent des recherches dans la base de données. Les agents d’IA doivent rechercher, filtrer, comparer et transmettre le contexte tout au long d’une conversation. Et cette seule distinction change tout.
C’est exactement le problème pour lequel la mise en cache sémantique a été conçue. Pour une application RAG (Retrieval-Augmented Generation) standard, cela fonctionne très bien : convertissez les questions fréquemment posées en intégrations vectorielles et stockez les paires question-réponse dans un cache. La prochaine fois que quelqu'un vous demandera quelque chose de similaire sur le plan sémantique, vous renverrez simplement la réponse mise en cache.
Mais lorsqu’un agent IA peut entreprendre des actions et produire des réponses qui dépendent de la personne qui demande et de ce qu’il a déjà fait, vous ne pouvez pas tout mettre en cache de la même manière. Mettez en cache la mauvaise réponse et vous servez le panier de quelqu'un d'autre. Mettez en cache de manière trop agressive et vos utilisateurs obtiennent des prix obsolètes et des recommandations en cas de rupture de stock.
La question n’est donc pas simplement « pouvons-nous mettre cela en cache ? » - c'est "devrions-nous, et pour combien de temps ?" C'est un problème beaucoup plus difficile.
L'IA agentique introduit des défis de mise en cache qu'un pipeline RAG conventionnel n'a jamais à relever. Avec les agents IA, l’état est maintenu d’un tour à l’autre, les outils sont appelés, les flux de travail en plusieurs étapes sont exécutés et les réponses dépendent du contexte qui ne cesse de changer. Cela change considérablement le problème de mise en cache. Voyons à quoi cela ressemble en pratique !
Pour voir comment ces défis se déroulent, j'utiliserai une application de commerce électronique basée sur l'IA comme exemple concret. Pensez à un assistant d'achat qui aide les utilisateurs à rechercher des produits, à gérer leur panier et à répondre aux questions relatives aux produits. Pour une telle application, voici à quoi pourrait ressembler le flux de travail :
Voici une implémentation de base dans LangGraph :
from langgraph.graph import StateGraph, START, END from typing import TypedDict, List class AgentState(TypedDict): messages: List[dict] session_id: str cache_status: str result: str tools_used: List[str] # Nœud 1 : Vérifier le cache sémantique async def query_cache_check(state: AgentState) -> AgentState: query = state["messages"][-1]["content"] # Vérifiez si nous avoir une réponse en cache sémantiquement similaire cached_result = wait check_semantic_cache(query) if cached_result: return { **state, "cache_status": "hit", "result": cached_result } return { **state, "cache_status": "miss" } # Nœud 2 : Agent IA avec outils async def agen...
[Courte citation de 8% de l'article original]