6. Ajouter un agent¶
Objectif: créer un agent LangGraph qui comprend une demande en langage naturel, choisit l'action todo à exécuter, collecte seulement les champs vraiment manquants, puis appelle les mêmes ports inbound que l'API et le MCP.
Responsabilités de l'agent¶
- classifier l'intention: créer une todo, lister les todos, annuler une création en cours ou répondre que la demande n'est pas prise en charge;
- transformer une conversation en
TodoDraft; - conserver
draftetpending_fielddans l'état LangGraph pendant la phase de questionnement; - appeler
CreateTodoPortouListTodosPort.
Il ne connaît pas la persistance. Il ne parle ni à MongoDB ni au repository directement.
| Text Only | |
|---|---|
Générer les briques agent¶
Installer les dépendances:
| Bash | |
|---|---|
Créer les intent-interpreters:
| Bash | |
|---|---|
Répondre:
| Text Only | |
|---|---|
Créer la configuration LangGraph:
| Bash | |
|---|---|
Répondre:
| Text Only | |
|---|---|
Configurer aussi LM Studio et LangSmith avec les sous-étapes ci-dessous.
Sous-étapes¶
- Configurer LM Studio et LangSmith
- Écrire les intent-interpreters
- Définir l'état et le parsing local
- Détecter l'action et collecter le draft
- Formatter, router et injecter les dépendances
- Écrire les noeuds et assembler le graphe
- Tester l'agent
Rôle des fichiers LangGraph¶
| Fichier | Rôle |
|---|---|
application/intent_interpreters/todo_action.py |
Classe l'action globale: créer, lister, annuler ou inconnu. |
application/intent_interpreters/todo_conversation.py |
Extrait les champs d'une todo dans un TodoDraft. |
adapters/inbound/langgraph/agent.py |
Assemble le graphe LangGraph, déclare les noeuds et expose l'objet agent utilisé par langgraph.json. |
adapters/inbound/langgraph/state.py |
Définit AgentState, lit le dernier message utilisateur, reconstruit un TodoDraft depuis l'état, fabrique les messages assistant. |
adapters/inbound/langgraph/dependencies.py |
Centralise l'instance Arclith, l'adapter LLM et les ports applicatifs, avec cache local par process. |
adapters/inbound/langgraph/nodes.py |
Contient les fonctions de noeuds: router l'intention, collecter les champs, créer, lister, annuler, répondre inconnu. |
adapters/inbound/langgraph/routing.py |
Contient les fonctions de conditional edges LangGraph. |
adapters/inbound/langgraph/intent.py |
Fait la détection locale haute confiance, puis laisse les cas ambigus au LLM. |
adapters/inbound/langgraph/collection.py |
Met à jour le draft, applique les défauts, détecte les champs manquants et génère la prochaine question. |
adapters/inbound/langgraph/parsing.py |
Normalise le français, détecte les dates relatives, les statuts, l'annulation et les titres simples. |
adapters/inbound/langgraph/formatters.py |
Transforme le résultat de ListTodosUseCase en réponse lisible pour l'utilisateur et en payload JSON. |
Étape suivante: configurer LM Studio et LangSmith.