LangChain et LangGraph

IA / LLM 🟡 Mid

Définition

LangChain fournit des abstractions (modèles, prompts, splitters, retrievers) en Python et JavaScript. LangGraph (@langchain/langgraph) est le moteur d'orchestration bas niveau : un graphe d'états avec nœuds et arêtes, persistance par checkpointer, reprise après panne et pauses pour intervention humaine (interrupt / Command résume). Il mêle étapes déterministes codées et étapes pilotées par le LLM.

Analogie

Un organigramme de processus où certaines cases sont remplies par un humain, d'autres par un programme, d'autres par le modèle.

Exemple de code

import { StateGraph, StateSchema, MemorySaver, START, END } from '@langchain/langgraph';
import { z } from 'zod';

const State = new StateSchema({ ticket: z.string(), category: z.string().optional(), reply: z.string().optional() });

const graph = new StateGraph(State)
  .addNode('classify', async s => ({ category: await classify(s.ticket) }))
  .addNode('draft', async s => ({ reply: await draft(s.ticket, s.category!) }))
  .addEdge(START, 'classify')
  .addConditionalEdges('classify', s => s.category === 'spam' ? END : 'draft')
  .addEdge('draft', END)
  .compile({ checkpointer: new MemorySaver() });   // état persistant par thread

const out = await graph.invoke({ ticket }, { configurable: { thread_id: 'ticket-42' } });

Cas d'usage

Workflows multi-étapes avec branches, reprise et validation humaine ; agents longs à état.

Anti-pattern

Sortir LangGraph pour un simple appel prompt→réponse : un fetch suffit.
#ia#framework#agents#typescript

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre