# Guide Complet : Intégration des Agents LLM Dynamiques dans Cursor avec Cline --- ## Objectif - Lancer des modèles localement (codellama, mistral, etc.) - Créer des **agents dynamiques spécialisés** pour coder, expliquer, corriger - Utiliser et configurer **Cline** pour interagir visuellement avec tes agents --- ## I. Prérequis - Avoir installé **Cursor** : [https://cursor.so](https://cursor.so/) - Avoir installé **Ollama** : [[https://ollama.com](https://ollama.com/)) - Avoir Python 3.10+ installé ### Installer un modèle avec Ollama : ```bash ollama pull codellama:13b-python ollama pull mistral ``` Teste le bon fonctionnement : ```bash ollama run mistral ``` --- ## II. Intégrer Ollama à Cursor via `cursor-agent.json` Crée ce fichier à la racine du projet : ```json { "name": "LLM Local Agent", "entry": "main.py", "llm": { "provider": "custom", "completion_url": "http://localhost:11434/api/generate", "method": "POST", "headers": { "Content-Type": "application/json" }, "input_key": "prompt", "output_key": "response" } } ``` > Ce fichier connecte Cursor à ton modèle local via API HTTP. --- ## III. Cline dans Cursor : installation, configuration et usage ### Qu'est-ce que **Cline** ? Cline est la **barre latérale interactive** dans Cursor. Elle te permet de : - Créer des agents avec rôles personnalisés - Interagir avec ton code sélectionné ou tout le fichier - Voir la réponse du modèle directement à droite - Ajouter des prompts, des messages système ou modifier des paramètres ### Comment l’activer ? 1. Sélectionne du code 2. Tape `//` pour activer un prompt (comme un commentaire) 3. Cline s’ouvre automatiquement à droite 4. Tu peux : - Choisir ton modèle (`cursor-agent.json` doit être actif) - Envoyer un prompt - Lire et copier la réponse ### Pourquoi c’est utile ? Cline est **idéal pour le développement assisté par LLM**, car tu peux : - Corriger le code sélectionné - Générer automatiquement du code ou des tests - Interagir avec différents agents en parallèle - Comparer les retours selon les rôles --- ## IV. Créer un agent dynamique personnalisé (main.py) ```python from base_agent import BaseAgent agent = BaseAgent("CodeExplainer", model="mistral") agent.set_role("Tu es un assistant Python expert. Tu expliques de manière claire le fonctionnement d’un code donné.") prompt = input("Prompt utilisateur : ") print(agent.process(prompt)) ``` --- ## V. Exemple de rôles d’agents Cursor ```python explainer = BaseAgent("Explainer", model="mistral") optimizer = BaseAgent("Optimizer", model="codellama:13b-python") refactor = BaseAgent("Refactor", model="codellama:13b-python") explainer.set_role("Explique ce que fait le code avec précision.") optimizer.set_role("Optimise ce code Python pour la performance.") refactor.set_role("Refactore le code pour qu’il soit plus lisible.") code = ''' def process(x): return [i*2 for i in x if i > 0]''' print(explainer.process(code)) ``` --- ## VI. Support multi-machine : Agents locaux ou distants (serveur) Tu peux travailler avec un **Ollama local sur ton PC principal** ou utiliser un **serveur distant** qui héberge un modèle (par ex. Mistral 7B déjà actif sur ton site). ### 1. Classe RemoteLLMInterface ```python import requests class RemoteLLMInterface: def __init__(self, model, host="http://192.168.1.150:11434", **params): self.model = model self.api_url = f"{host}/api/generate" self.params = params def generate(self, prompt): payload = {"model": self.model, "prompt": prompt, **self.params} response = requests.post(self.api_url, json=payload) return response.json().get("response", "") ``` ### 2. Créer un agent distant : ```python from remote_llm_interface import RemoteLLMInterface class RemoteAgent: def __init__(self, name, model="mistral", host="http://192.168.1.150:11434", **params): self.name = name self.interface = RemoteLLMInterface(model, host, **params) self.system_prompt = "" def set_role(self, prompt): self.system_prompt = prompt.strip() def process(self, user_input): full_prompt = f"{self.system_prompt}\n\n{user_input}" if self.system_prompt else user_input return self.interface.generate(full_prompt) ``` > Tu peux ainsi appeler le modèle Mistral 7B de ton site **depuis Cursor**, sans le réinstaller localement. --- ## VII. Changer d’agent facilement (CLI rapide) ```python from base_agent import BaseAgent name = input("Nom de l’agent : ") model = input("Modèle Ollama (ex: mistral) : ") role = input("Quel est le rôle de l’agent ? : ") prompt = input("Quel est le prompt ? : ") agent = BaseAgent(name=name, model=model) agent.set_role(role) print(agent.process(prompt)) ``` --- ## VIII. Exemples d'agents à utiliser dans Cursor |Nom Agent|Modèle|Rôle assigné| |---|---|---| |`Optimizer`|`codellama:13b-python`|Optimise le code| |`Explainer`|`mistral`|Explique le code| |`BugFinder`|`codellama:13b-python`|Trouve des erreurs| |`DocGen`|`mistral`|Génère des docstrings| |`Formatter`|`codellama`|Reformate proprement le code| --- ## IX. Bonnes pratiques avec Cursor et Cline - Utilise `//` pour poser des questions précises à ton agent - Crée plusieurs agents avec des rôles spécialisés : rapide à réutiliser - Utilise des raccourcis clavier pour alterner entre agents dans Cline - Sauvegarde tes rôles les plus utiles dans un fichier JSON ou via script - Combine les agents dans une chaîne pour effectuer plusieurs actions à la suite --- ## Conclusion Tu maîtrises maintenant : - L’installation d’Ollama et des modèles - La configuration de Cursor et l’utilisation de `cursor-agent.json` - L’interaction avancée avec Cline (prompts, agents multiples, feedback instantané) - La création d’agents dynamiques **locaux ou distants**, selon ton architecture