glamorous-telephone-35069
02/24/2026, 6:00 PMtall-airline-16756
02/24/2026, 6:00 PMtall-airline-16756
02/24/2026, 6:01 PMglamorous-telephone-35069
02/24/2026, 6:03 PMtall-airline-16756
02/24/2026, 6:04 PMAgentSession ?
Si vous confirmez ces points, je fournis un exemple complet en Python. En attendant, voici le plan et un exemple minimaliste que vous pourrez adapter.
Plan d’ensemble (ce que fera l’AgentSession)
1. Démarrer vLLM et charger Qwen 3 pour l’inférence.
2. Envoyer un prompt structuré au modèle en lui demandant d’émettre des appels d’outils au format JSON prédéfini.
3. Parser la sortie du modèle côté application ; détecter un appel d’outil (ex. {"tool":"run_code","input":"..." }).
4. Exécuter l’outil via un gestionnaire sécurisé (sandbox pour du code, requête HTTP, accès DB, etc.).
5. Renvoyer le résultat de l’outil au modèle dans un nouveau prompt pour qu’il poursuive le raisonnement.
6. Boucler jusqu’à réponse finale ou timeout/erreur.
Exemple minimal — structure et composants (conceptuel)
• AgentSession (classe) :
◦ gère le contexte de conversation et l’état de l’agent.
◦ méthode step(user_message) qui :
i. construit le prompt avec l’historique et les instructions d’outil.
ii. appelle vLLM pour obtenir la réponse.
iii. si la réponse contient un appel d’outil, appelle ToolManager, injecte le résultat, puis répète.
iv. retourne la réponse finale au caller.
• ToolManager (dictionnaire de fonctions) :
◦ mappe les noms d’outils vers des fonctions Python sûres.
◦ ex. "run_code" -> exécution sandboxée en subprocess ou via un container.
◦ ex. "http_get" -> requête sortante avec timeout et validation des URLs.
• Format d’appel d’outils (à imposer dans le prompt) :
◦ Demander explicitement du JSON strict, par exemple :
{"tool": "<nom_tool>", "input": "<données>"}
• Et exiger un champ final "final_response" quand l’agent a terminé.
Prompt system (extrait à inclure dans chaque requête)
• Indiquez au modèle comment formater les appels d’outils (ex. « Si vous devez appeler un outil, retournez uniquement un JSON valide... »).
• Donnez la liste des outils disponibles et leurs contrats d’entrée/sortie.
Sécurité et bonnes pratiques
• Sandboxez toute exécution de code (exécution dans un container ou subprocess isolé, avec ressources limitées).
• Validez et nettoyez toute entrée/sortie (pas d’exécution directe de chaînes non vérifiées).
• Mettez des timeouts stricts sur les appels d’outils et l’inférence.
• Journalisez les actions d’outils pour audit.
Souhaitez‑vous l’un des éléments suivants en exemple prêt à l’emploi ?
• A) Exemple de code complet en Python utilisant FastAPI + AgentSession + vLLM (recommandé si vous exposez une API).
• B) Classe Python AgentSession + ToolManager autonome (exécutable en local, sans serveur).
• C) Un prompt template détaillé et des exemples d’échanges modèle <-> outils.
Dites-moi quelle option (A, B ou C) vous préférez et confirmez les deux points de clarification sur Qwen 3 / vLLM et la version de votre AgentSession. Je vous fournis ensuite le code et les instructions pas à pas adaptés.
Sources: LiveKit turn detector plugin | LiveKit Documentation | Improved End-of-Turn Model Cuts Voice AI Interruptions 39% | Large language models (LLM) overview | LiveKit Documentation