En fait, la qualité de la réponse dépend de la structure de votre demande. Surtout pour des modèles plus frugaux.

#❌Tout en un
"Refactor toute l'application pour ajouter l'authentification"
#✅Étapes distinctes
"Étape 1: Analyser le système d'auth actuel
Étape 2: Proposer une architecture JWT
Étape 3: Implémenter le middleware d'auth
Étape 4: Ajouter les tests"
En général les agents ont un outil de TODO (tâches).
#✅Contraintes claires
"- Ne pas utiliser de librairies externes
- Garder la compatibilité Python 3.11
- Préserver les tests existants
- Maximum 50 lignes ajoutées"
À la racine de votre projet, un fichier AGENTS.md donne le contexte à l’IA :
# AGENTS.md - Contexte pour les agents IA
## Project
API REST pour gestion d'utilisateurs.
## Stack
- FastAPI 0.104+
- SQLAlchemy ORM
- PostgreSQL 15
- Pytest pour les tests
## Conventions
- Snake_case pour les variables
- docstrings Google style
- Tests dans tests/ avec pytest
## Architecture
- src/api/routes/ : endpoints REST
- src/models/ : modèles SQLAlchemy
- src/services/ : logique métier
## À NE PAS FAIRE
- Ne pas créer de nouvelles migrations DB
- Ne pas modifier .env
- Ne pas ajouter de dépendances sans validation
Chaque dossier important devrait avoir un README.md :
src/
├── api/
│ ├── README.md # "Ce dossier contient les endpoints..."
│ └── routes/
├── models/
│ └── README.md # "Modèles SQLAlchemy..."
└── services/
└── README.md # "Logique métier isolée..."
Contenu type :
# Services Layer
Contient la logique métier isolée des controllers.
## Conventions
- Un service par domaine métier
- Injection de dépendances via __init__
- Pas d'imports circulaires
## Exemple
```python
# services/user_service.py
class UserService:
def __init__(self, db: Session):
self.db = db
L’IA ne “se souvient” de rien entre les sessions — et dans une même session, trop de contexte dégrade la qualité des réponses. Ce n’est pas seulement une question de coût : un contexte pollué (nombreux fichiers lus, chemins abandonnés, erreurs accumulées) crée du bruit qui fait dériver l’agent.
Signal d’alarme : si l’agent propose des solutions déjà essayées, oublie des contraintes données en début de session, ou semble “confus” — c’est le signe que le contexte est saturé.
Règles pratiques :
/compact (résume sans perdre le fil) quand le contexte dépasse 70%, /clear quand il dépasse 85%.Certains modèles (o3, Claude avec extended thinking…) génèrent une chaîne de réflexion interne avant de répondre. Ces tokens de raisonnement sont invisibles dans la réponse mais comptent dans la facture — et peuvent multiplier le coût par 5 sur une tâche complexe.
C’est une feature propriétaire et opaque : chaque provider l’implémente différemment (thinking_budget, reasoning_effort, mode automatique…), vous ne voyez pas ce qui a été raisonné, et certains outils l’activent silencieusement. À utiliser intentionnellement pour des problèmes qui le méritent, pas comme réglage par défaut.
| Anti-pattern | Conséquence | Solution |
|---|---|---|
| Prompt trop long | Confusion, tokens gâchés | Découper en étapes |
| Pas de contraintes | Code non idiomatique | Spécifier les conventions |
| Oublier les tests | Code non testé | Demander tests explicites |
| Ignorer l’existant | Duplication | Référencer les fichiers existants |
Le contexte s’accumule à chaque échange : historique de la conversation, fichiers lus, résultats de commandes, sorties de tests.
Ce n’est pas que pour les coûts c’est une question de focus. Un contexte saturé dégrade la qualité des réponses : l’agent commence à oublier des contraintes, à reproduire des erreurs déjà corrigées, à se perdre dans des chemins abandonnés. La performance chute bien avant que le token limit soit atteint.
Règles de session :
Et chaque token d’entrée se paie à chaque nouvel échange — gérer le contexte réduit aussi les coûts.
/compact
Ce que ça fait :
Ce que ça ne fait pas :
/clear fait çaQuand l’utiliser :
Ctx(u) dans la statusline/clear vide complètement le contexte. À réserver aux sessions vraiment bloquées — l’agent perd tout ce qu’il savait du projet. Préparez un résumé court à lui redonner avant de reprendre.
opencode --continue # Reprend la dernière session compactée
| Contexte % | État | Action |
|---|---|---|
| 0–50% | Vert | Travaillez librement |
| 50–70% | Jaune | Soyez sélectif dans les lectures |
| 70–90% | Orange | /compact maintenant |
| 90%+ | Rouge | /clear requis |
Le TP fil rouge continue : créer un AGENTS.md pour votre projet démo.
Voir 2_tp_agents.md →