Files

61 lines
1.9 KiB
Python
Raw Permalink Normal View History

2026-04-10 14:56:17 +00:00
import asyncio
2026-04-10 10:15:37 +00:00
import os
2026-04-10 14:56:17 +00:00
import sys
2026-04-10 10:15:37 +00:00
2026-04-10 14:56:17 +00:00
from dotenv import load_dotenv
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
from langchain_core.messages import HumanMessage
2026-04-10 10:15:37 +00:00
2026-04-10 14:56:17 +00:00
# Chargement de la clé API
load_dotenv()
2026-04-10 10:15:37 +00:00
2026-04-10 14:56:17 +00:00
async def lancer_agent():
print("🤖 Initialisation de l'Agent Gemini...")
llm = ChatGoogleGenerativeAI(model="gemini-2.5-flash")
2026-04-10 10:15:37 +00:00
2026-04-10 14:56:17 +00:00
print("🔌 Configuration de la connexion au serveur MCP local...")
# NOUVELLE SYNTAXE : On passe la configuration directement dans le client
client = MultiServerMCPClient({
"serveur_taches": {
"command": sys.executable, # 🌟 LA MODIFICATION EST ICI
"args": ["serveur_mcp.py"],
"transport": "stdio"
}
})
# On récupère les outils (attention, c'est maintenant une fonction asynchrone qui nécessite 'await')
outils = await client.get_tools()
print(f"✅ Outils détectés : {[outil.name for outil in outils]}")
# 🌟 Création de l'Agent LangGraph
agent = create_react_agent(llm, tools=outils)
# --- LE TEST DE L'AGENT ---
consigne = (
"1. Ajoute la tâche 'Acheter du pain'. "
"2. Ajoute la tâche 'Appeler le client'. "
"3. Fais-moi un résumé de toutes mes tâches actuelles."
)
print(f"\n🗣️ Consigne donnée à l'Agent : {consigne}\n")
print("⏳ L'Agent réfléchit et travaille en autonomie (patientez un peu)...\n")
2026-04-10 10:15:37 +00:00
2026-04-10 14:56:17 +00:00
# On lance l'agent avec notre message
resultat = await agent.ainvoke({
"messages": [HumanMessage(content=consigne)]
})
2026-04-10 10:15:37 +00:00
2026-04-10 14:56:17 +00:00
# On affiche uniquement la réponse finale de l'agent
reponse_finale = resultat["messages"][-1].content
print("✅ RÉPONSE FINALE DE L'AGENT :")
print("-" * 40)
print(reponse_finale)
print("-" * 40)
2026-04-10 10:15:37 +00:00
if __name__ == "__main__":
2026-04-10 14:56:17 +00:00
asyncio.run(lancer_agent())