Architecture IA

Planner & Agentic Planning

Dans une architecture agentique, le Planner est le composant qui transforme une demande utilisateur en plan d’exécution. C’est moins spectaculaire qu’un chatbot, mais c’est souvent là que se joue la robustesse d’une plateforme IA d’entreprise.

PlannerTool CallingLangGraphWorkflowsAudit

L’idée générale

Un LLM peut répondre directement à une question simple. Mais dès que la demande nécessite plusieurs étapes, plusieurs sources ou plusieurs outils, il faut lui éviter d’improviser. Le rôle du Planner est alors de produire une stratégie explicite : quoi chercher, dans quel ordre, avec quels outils, et avec quels contrôles.

Je le vois comme un chef d’orchestre : il ne remplace ni le retriever, ni le moteur SQL, ni le Knowledge Graph, ni le solveur de recherche opérationnelle. Il décide quand et comment les mobiliser.

Le bon Planner ne cherche pas à rendre l’IA autonome à tout prix. Il rend l’exécution lisible, bornée, traçable et contrôlable.

Niveaux de maturité

NiveauApprocheUsageLimite
1Prompt uniqueQualification simple de la demandePeu robuste, difficile à auditer
2Planner JSONPlan structuré exécuté par le backendNécessite validation stricte du schéma
3Tool CallingAppels contrôlés à des outils métiersPeut devenir opaque si mal tracé
4LangGraph / State MachineWorkflows complexes, reprises, branchesDemande un vrai design d’architecture
5DSL métierPlans lisibles, rejouables, auditablesInvestissement initial plus élevé
6Multi-Agent PlannerCoordination d’agents spécialisésRisque de complexité et de coût

Schéma d’orchestration

flowchart TB U[Utilisateur] --> Q[Analyse de la demande] Q --> P[Agent Planner] P --> Plan[Plan d'exécution] Plan --> R[Tool Router] R --> RET[Hybrid Retriever] R --> SQL[SQL Agent] R --> KG[Knowledge Graph Agent] R --> API[API Agent] R --> OR[Optimization Agent / RO] RET --> M[Merge des résultats] SQL --> M KG --> M API --> M OR --> M M --> C[Critic / Reflection] C --> V[Validator] V --> A[Answer Composer] A --> L[LLM Gateway] L --> O[Réponse sourcée] P -. trace .-> OBS[Observabilité / Audit] R -. trace .-> OBS C -. trace .-> OBS V -. trace .-> OBS

Implémentation avec LangGraph

LangGraph est adapté lorsqu’on veut sortir d’une chaîne linéaire. Chaque étape devient un nœud : planner, router, retriever, SQL, graph, critic, validator, answer composer. Le graphe peut contenir des conditions, des boucles, des reprises et des points de validation humaine.

graph TD START[Question] --> PLANNER[Planner] PLANNER --> ROUTER[Quel type de besoin ?] ROUTER -->|Documentaire| RAG[RAG / Retriever] ROUTER -->|Données structurées| SQL[SQL Agent] ROUTER -->|Relations métier| GRAPH[Graph Agent] ROUTER -->|Optimisation| OPT[RO Agent] RAG --> CHECK[Critic] SQL --> CHECK GRAPH --> CHECK OPT --> CHECK CHECK -->|Contexte insuffisant| PLANNER CHECK -->|Contexte suffisant| FINAL[Answer Composer] FINAL --> END[Réponse]

Cette approche est particulièrement intéressante en entreprise parce qu’elle permet de tracer les décisions. On sait pourquoi le système a choisi un outil, pourquoi il a relancé une recherche et pourquoi il a considéré le contexte suffisant.

Planner JSON / DSL

Une façon pragmatique de commencer consiste à demander au Planner de produire un plan JSON validé par le backend.

goal: Répondre à une question juridique avec sources
steps:
  - tool: query_analyzer
    input: question utilisateur
  - tool: hybrid_retriever
    query: concepts juridiques détectés
  - tool: knowledge_graph
    query: renvois, exceptions, jurisprudence
  - tool: reranker
    top_k: 8
  - tool: critic
    check: sources suffisantes
  - tool: answer_composer
    format: réponse sourcée

Pour des systèmes plus industriels, on peut aller vers un DSL métier. L’intérêt est de rendre les plans plus stables, testables et rejouables.

ANALYZE_INTENT()
SEARCH(corpus="legal", mode="hybrid")
EXPAND_GRAPH(relations=["RENVOI", "EXCEPTION", "JURISPRUDENCE"])
RERANK(top_k=8)
VALIDATE(criteria=["groundedness", "coverage", "citations"])
ANSWER(style="expert", sources=true)

Gouvernance et sécurité

Le planning agentique doit être gouverné comme un composant critique. Un plan d’exécution peut exposer des données, déclencher des actions ou produire une réponse utilisée dans un contexte métier sensible.

SujetContrôle recommandé
TraçabilitéJournaliser le plan, les outils appelés, les paramètres et les résultats intermédiaires.
SécuritéAppliquer RBAC / ABAC avant chaque appel outil, pas seulement au début de la session.
CoûtLimiter les boucles, fixer un budget token, utiliser cache et fallback modèle.
QualitéContrôler groundedness, complétude, citations, contradictions.
ConformitéTracer les décisions, conserver les prompts et permettre le replay des exécutions.

Exemples de plans

Cas juridique

Question : “Un salarié licencié pour faute grave a-t-il droit à un préavis ?”

1. Identifier les concepts : licenciement, faute grave, préavis.
2. Rechercher les articles applicables.
3. Suivre les renvois juridiques et exceptions.
4. Ajouter jurisprudence et doctrine.
5. Vérifier que la réponse couvre règle générale + exception.
6. Produire une réponse sourcée.

Cas assurance

Question : “Ce sinistre est-il couvert par le contrat ?”

1. Identifier contrat, garantie, exclusion, franchise.
2. Interroger la base contrat via SQL.
3. Rechercher les clauses pertinentes via RAG.
4. Comparer faits déclarés et conditions de couverture.
5. Vérifier exclusions et plafonds.
6. Générer une décision explicable.

Cas recherche opérationnelle

Question : “Optimise les tournées des techniciens demain.”

1. Charger techniciens, compétences, disponibilités.
2. Charger interventions, lieux, SLA.
3. Construire le problème d’optimisation.
4. Appeler OR-Tools / Gurobi.
5. Vérifier contraintes non satisfaites.
6. Expliquer le planning et les arbitrages.

Position d’architecte

Dans une plateforme IA d’entreprise, je privilégie un planning explicite : le système produit un plan lisible, validable et rejouable avant d’exécuter les outils. Cela rend l’agentique compatible avec les contraintes de production : audit, sécurité, coût, qualité et gouvernance.