mirror of
https://github.com/Ladebeze66/coffreobsidian.git
synced 2025-12-16 21:57:44 +01:00
215 lines
5.9 KiB
Markdown
215 lines
5.9 KiB
Markdown
# 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é
|
||
[[Installation LLM dans Cursor]]
|
||
|
||
### 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
|
||
|
||
[[LLM Cursor version2]] |