Stack technique
Vue d'ensemble
Interface → Orchestration → LLM → Mémoire/Outils → Infrastructure
Orchestration
Cycles, branches conditionnelles et persistance d'état entre les appels. Checkpointing natif : si le process plante à 3h du matin, il reprend au dernier nœud stable.
vs LangChain LCEL : LangGraph pour tout ce qui demande des cycles ou de l'état. LCEL pour les pipelines linéaires simples.
Quand le problème se découpe naturellement en rôles distincts : Researcher, Writer, Validator. Abstraction plus haute que LangGraph, moins de code pour les cas sans cycles complexes.
vs LangGraph : CrewAI pour les pipelines séquentiels organisés par rôles. LangGraph quand vous avez besoin de cycles ou de machines à états précises.
Mémoire & recherche
Extension PostgreSQL pour la recherche vectorielle : pas d'infrastructure séparée. La même base gère l'état applicatif, les embeddings et le Row Level Security pour isoler les tenants.
vs Pinecone : pgvector pour < 10M vecteurs quand la cohérence transactionnelle compte. Pinecone pour les volumes extrêmes (> 100M vecteurs).
API de recherche conçue pour les LLM : snippets déjà nettoyés, filtrage par domaine. Utilisé dans les agents de veille concurrentielle et de recherche documentaire.
vs SerpAPI : Tavily retourne du contenu directement exploitable par un LLM. Coût par requête ~3× plus bas à qualité de snippet équivalente.
Open source, auto-hébergeable, RGPD natif. Chaque appel LLM est tracé : input, output, durée, coût en tokens par modèle. Dashboard de coût par agent, par tenant, par feature.
vs LangSmith : Langfuse pour la souveraineté des données (auto-hébergé sur Scaleway). LangSmith si vous voulez rester 100% cloud Langchain.
Infrastructure
Docker-native, hébergement fr-par, RGPD et HDS disponible, facturation à la seconde. Préféré pour les clients avec contraintes de souveraineté (santé, finance, secteur public).
vs AWS/GCP : Scaleway pour la souveraineté européenne et le coût. AWS pour les charges à montée en charge extrême ou un écosystème AWS déjà en place.
Frontend & APIs
App Router + Server Components : zéro JS client sur les pages SEO. Streaming RSC pour les interfaces avec latence LLM.
Server Components rendent le streaming de réponses LLM naturel sans useState ni useEffect. L'API Route Handler gère les webhooks entrants.
Stratégie modèles
Comment on raisonne sur les modèles, pas lequel gagne ce mois-ci. Des guides de décision pour choisir, déployer et dimensionner un modèle, plus un catalogue vivant.
Choisir un modèle est un processus, pas un choix : cinq étapes qui aboutissent à une stratégie de routing, pas à un gagnant unique.
API du labo, open-weight managé ou auto-hébergé : où tourne votre modèle, et qui paie quoi.
Frontier, workhorse, small, edge : une échelle de capacité, et aligner le barreau sur la tâche est le levier.
Pour un acheteur européen, la juridiction qui régit les données est un axe de premier ordre, pas un détail.
Paysage adjacent
Des outils qu'on cartographie sans les faire tourner dans notre cœur de production. On couvre là où ils ont leur place et le moment de passer à plus robuste.
Principes d'architecture
Stateful par défaut. Chaque agent maintient son état via le checkpointing de LangGraph. En cas de timeout ou d'erreur réseau, le pipeline reprend au dernier nœud stable, sans repartir de zéro. Critique sur les pipelines longs (> 2 min de traitement).
Fallbacks explicites. Chaque appel LLM a un timeout (défini), un nombre de retries (défini) et un chemin de fallback (défini). Si Sonnet expire, on retente sur Haiku. Si Haiku expire, on escalade vers un humain. Rien n'est implicite.
Modèle != fournisseur. L'abstraction LangChain/LangGraph permet de remplacer Claude par GPT-4o ou Mistral sans toucher à la logique métier. On code contre des interfaces (system_message, invoke, stream), pas contre des SDK propriétaires.
Coût maîtrisé. Le choix du modèle par nœud est une décision d'architecture, pas un détail. Chaque nœud du graphe spécifie son modèle. Langfuse calcule le coût réel par exécution. Objectif : Haiku sur 60-70% des appels, Sonnet sur les 30-40% qui en ont besoin.