54 points par GN⁺ 2026-01-28 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Publication d’Agent Skills, qui fournit explicitement des règles de base de données afin de résoudre le problème des agents de codage IA qui gèrent mal Postgres
  • Postgres possède des décennies de fonctionnalités accumulées, de cas limites et de caractéristiques de performance, si bien que les agents peuvent produire du code fonctionnel mais déclencher un scan complet de table ou omettre des politiques de sécurité
  • L’ensemble est composé de 8 catégories et 30 règles, organisées par ordre de priorité selon leur impact, couvrant la performance des requêtes, la gestion des connexions, la sécurité et la RLS, la conception du schéma, etc.
  • Il ne s’agit pas d’une documentation destinée aux humains, mais d’un ensemble de règles consulté directement par les agents IA
  • Combiné à un serveur MCP, il devient possible de constituer un agent de base de données prêt pour la production, doté à la fois de capacités d’exécution et de critères de décision

Constats : l’IA écrit du code, mais ne comprend pas le système

  • Les agents de codage IA génèrent du code syntaxiquement correct, mais ils ont pour limite de ne pas prendre en compte les caractéristiques internes de Postgres ni les risques d’exploitation
  • Des problèmes comme des requêtes provoquant des scans complets de table, des suggestions d’index dégradant les performances en écriture ou encore l’absence de Row Level Security reviennent de manière répétée
  • De nombreux cas ont été observés où les agents négligent des éléments essentiels en production comme la performance, la sécurité et la stabilité

Présentation de Postgres Agent Skills

  • Une base de connaissances fondée sur des règles conçue pour être consultée par les agents IA lorsqu’ils écrivent du code Postgres
  • Composée de 30 règles réparties en 8 catégories triées par niveau d’impact
  • Chaque règle comprend un titre, une priorité, une explication de son importance, ainsi que des exemples de code correct et incorrect

Les 8 catégories de règles

  • Chaque règle suit un format cohérent avec un titre, un niveau d’impact, une explication et des tags
  • Query Performance (Critical) : règles pour éviter les scans complets de table et écrire des requêtes efficaces
  • Connection Management (Critical) : pooling de connexions, gestion du cycle de vie des clients, limites de ressources
  • Security and RLS (Critical) : politiques de Row Level Security, modèles de contrôle d’accès
  • Schema Design (High) : structure des tables, types de données, arbitrages de normalisation
  • Concurrency and Locking (Medium-High) : isolation des transactions, prévention des interblocages, gestion des verrous
  • Data Access Patterns (Medium) : pagination, opérations en lot, conception des modèles d’accès
  • Monitoring and Diagnostics (Low-Medium) : analyse des requêtes, suivi des performances, débogage
  • Advanced Features (Low) : CTE, fonctions de fenêtre, extensions et autres fonctionnalités propres à Postgres

Exemple de règle sur la Row Level Security

  • Mauvaise approche : s’appuyer uniquement sur un filtrage au niveau de l’application expose à un risque d’exposition de l’ensemble des données en cas de bug ou de contournement
    • Écrit sous la forme select * from orders where user_id = $current_user_id;, un contournement peut renvoyer toutes les commandes
  • Bonne approche : imposer la RLS au niveau de la base de données
    • Activer la RLS avec alter table orders enable row level security;
    • Créer une politique avec create policy pour que l’utilisateur ne puisse voir que ses propres données
    • Forcer aussi la RLS pour le propriétaire de la table avec alter table orders force row level security;
  • Exemple de politique pour un rôle authentifié : create policy orders_user_policy on orders for all to authenticated using (user_id = auth.uid());

Format Agent Skills et écosystème

  • Agent Skills est un format de documentation destiné aux agents IA sous forme de standard ouvert, qui fournit une expertise métier aux agents et qu’ils peuvent lire et appliquer directement selon les besoins
    • Compatible avec Claude Code, Cursor, GitHub Copilot, VS Code, Gemini CLI, etc.
    • Présenté sous forme de dossiers contenant des instructions et des exemples que l’agent peut découvrir et utiliser au bon moment
    • Au lieu d’espérer que le bon modèle ait été appris à partir des données d’entraînement, il fournit des règles explicites
  • Il s’agit d’un standard ouvert défini par Anthropic et en cours d’adoption dans l’industrie
    • Vercel a publié react-best-practices, qui regroupe 10 ans de connaissances d’optimisation React et Next.js en 40 règles
    • Cloudflare a publié des Skills pour plus de 40 services, dont Workers, Pages, D1 et R2

Pourquoi Supabase a créé ces règles

  • Supabase exploite Postgres sur des centaines de milliers de projets et a constaté la répétition des mêmes erreurs
    • Index manquants sur les clés étrangères
    • Requêtes contournant accidentellement la RLS
    • Migrations qui verrouillent des tables en production
    • Épuisement du pool de connexions causé par des clients mal gérés
    • Scans complets de table cachés derrière un ORM
  • Les connaissances déjà présentes dans l’équipe support, le conseiller base de données et la documentation ont été restructurées dans un format adapté aux agents puis empaquetées

Relation avec le serveur MCP

  • Le serveur MCP de Supabase permet aux agents IA de se connecter directement à un projet Supabase pour créer des tables, exécuter des requêtes, gérer des schémas et configurer des paramètres en langage naturel
  • Le serveur MCP donne aux agents la capacité d’effectuer des tâches sur la base de données, tandis que les bonnes pratiques leur apprennent à les effectuer correctement
  • Analogie : le serveur MCP est le volant, les bonnes pratiques sont l’auto-école
  • Un agent disposant uniquement d’un accès MCP peut exécuter toute requête qui lui est demandée
  • Un agent disposant à la fois de l’accès MCP et de ces règles peut avertir avant de créer un index qui verrouille une table, proposer une politique RLS avant de déployer un code non sûr et structurer des requêtes pour éviter des problèmes de performance
  • Le serveur MCP gère la connexion et l’exécution, tandis que ces bonnes pratiques relèvent du jugement
  • Agent Skills permet d’alerter sur les risques avant l’exécution et d’orienter vers de meilleurs choix
  • En séparant capacité d’exécution et critères de jugement, il devient possible de construire un environnement d’automatisation sûr et fiable

Installation

  • Emplacement du dépôt : github.com/supabase/agent-skills
  • Installation interactive possible avec le package npm skills de Vercel
    • npx skills add supabase/agent-skills
  • Avec Claude Code, installation possible sous forme de plugin
    • /plugin marketplace add supabase/agent-skills
    • /plugin install postgres-best-practices@supabase-agent-skills

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.