Intégration LangGraph
Ce guide explique comment créer un agent IA Python en utilisant LangGraph (et LangChain) qui interroge la qualité des données Qalita de votre organisation en complète autonomie.
Prérequis
- Python 3.11+
- Librairies :
langgraph >= 0.2,langchain-anthropic(oulangchain-openai) - Une authentification MCP Qalita valide
Installation
pip install qalita-core[agent] langgraph langchain-anthropic
Structure de l'agent LangGraph
L'idée est de :
- Connecter le client
QalitaMCPClientau serveur. - Extraire la liste des tools Qalita formatés pour Langchain (
await client.get_langchain_tools()). - Binder (lier) ces outils à un LLM (comme Claude 3).
- Créer un graphe d'agent classique (
create_react_agentou graphe custom).
Exemple d'implémentation
import os
import asyncio
from qalita_core.mcp import QalitaMCPClient
from langchain_anthropic import ChatAnthropic
from langgraph.prebuilt import create_react_agent
async def run_data_quality_agent():
# 1. Connexion au serveur MCP Qalita
client = QalitaMCPClient(
server_url=os.getenv("QALITA_MCP_URL", "https://api.qalita.io/mcp"),
api_key=os.getenv("QALITA_API_KEY")
)
# 2. Récupérer les outils LangChain via MCP
tools = await client.get_langchain_tools()
# 3. Lier les outils au LLM
# Assurez-vous d'avoir ANTHROPIC_API_KEY dans votre environnement
llm = ChatAnthropic(model="claude-3-5-sonnet-20241022", temperature=0)
# 4. Créer l'agent ReAct LangGraph
agent_executor = create_react_agent(llm, tools)
# 5. Interroger notre agent sur la qualité de nos données
query = "Quel est le score de qualité global du dataset 'sales-q3' ? Peux-tu me lister les anomalies s'il y en a ?"
print(f"User: {query}\n")
# Exécuter l'agent
messages = await agent_executor.ainvoke({"messages": [("user", query)]})
print("Agent:")
print(messages["messages"][-1].content)
if __name__ == "__main__":
asyncio.run(run_data_quality_agent())
Mécanique interne
Lorsque l'agent LLM observe la question Quel est le score de qualité global du dataset 'sales-q3' ? :
- Il saura qu'il dispose de l'outil formel
get_data_quality_score(). - Il invoquera l'outil avec l'identifiant du jeu de données.
- LangGraph va router la requête au client
QalitaMCPClient. - Le client convertit l'appel en JSON-RPC MCP vers l'API de Qalita.
- La réponse de Qalita remonte dans le graphe jusqu'au modèle LLM qui synthétise le résultat à l'utilisateur de manière intelligente.