- Agent Skills vorgestellt, die das Problem lösen sollen, dass AI-Coding-Agenten Postgres nicht korrekt handhaben, indem Datenbankregeln explizit bereitgestellt werden
- Postgres verfügt über über Jahrzehnte gewachsene Funktionen, Edge Cases und Performance-Eigenschaften, sodass Agenten zwar funktionierenden, aber auch Code erzeugen können, der Full Table Scans auslöst oder Sicherheitsrichtlinien auslässt
- Besteht aus insgesamt 8 Kategorien und 30 Regeln und ist nach Priorität anhand der Auswirkung geordnet, darunter Query-Performance, Verbindungsmanagement, Sicherheit und RLS sowie Schema-Design
- Wird nicht als menschenlesbare Dokumentation, sondern als Regelsatz bereitgestellt, auf den AI-Agenten direkt zugreifen
- In Kombination mit einem MCP-Server lässt sich ein praxisnaher Datenbank-Agent aufbauen, der zugleich Ausführungsfähigkeit und Entscheidungskriterien besitzt
Problembewusstsein: AI schreibt Code, versteht aber das System nicht
- AI-Coding-Agenten erzeugen zwar syntaktisch korrekten Code, haben aber die Grenze, interne Eigenschaften von Postgres und Betriebsrisiken nicht zu berücksichtigen
- Wiederholt treten Probleme auf wie Queries, die Full Table Scans auslösen, Index-Vorschläge, die die Schreib-Performance verschlechtern, oder fehlende Row Level Security
- Es wurden viele Fälle bestätigt, in denen Agenten für Produktionsumgebungen wichtige Faktoren wie Performance, Sicherheit und Stabilität übersehen
Überblick über Postgres Agent Skills
- Ein regelbasiertes Wissens-Repository, das AI-Agenten beim Schreiben von Postgres-Code als Referenz dient
- Besteht aus 30 Regeln in 8 Kategorien, sortiert nach Auswirkung
- Jede Regel enthält Titel, Priorität, eine Erklärung der Wichtigkeit sowie Beispiele für korrekten und fehlerhaften Code
Aufbau der 8 Regelkategorien
- Jede Regel folgt einem konsistenten Format und enthält Titel, Auswirkung, Beschreibung und Tags
- Query Performance (Critical): Regeln zur Vermeidung von Full Table Scans und zum Schreiben effizienter Queries
- Connection Management (Critical): Connection Pooling, Lebenszyklusverwaltung von Clients, Ressourcenlimits
- Security and RLS (Critical): Row Level Security-Richtlinien, Access-Control-Muster
- Schema Design (High): Tabellenstruktur, Datentypen, Abwägungen zur Normalisierung
- Concurrency and Locking (Medium-High): Transaktionsisolation, Deadlock-Vermeidung, Lock-Management
- Data Access Patterns (Medium): Pagination, Bulk-Operationen, Entwurf von Zugriffsmustern
- Monitoring and Diagnostics (Low-Medium): Query-Analyse, Performance-Tracking, Debugging
- Advanced Features (Low): CTEs, Window Functions, Erweiterungen und andere Postgres-spezifische Funktionen
Beispiel für eine Row-Level-Security-Regel
- Falscher Ansatz: Wenn nur auf Filterung auf Anwendungsebene gesetzt wird, besteht durch Bugs oder Umgehungen das Risiko, dass alle Daten offengelegt werden
- Wird es in der Form
select * from orders where user_id = $current_user_id; geschrieben, werden bei einer Umgehung alle Bestellungen zurückgegeben
- Richtiger Ansatz: RLS auf Datenbankebene erzwingen
- RLS mit
alter table orders enable row level security; aktivieren
- Mit
create policy eine Richtlinie erstellen, damit Benutzer nur ihre eigenen Daten sehen können
- Mit
alter table orders force row level security; RLS auch für Tabellenbesitzer erzwingen
- Beispiel einer Richtlinie für authentifizierte Rollen:
create policy orders_user_policy on orders for all to authenticated using (user_id = auth.uid());
Agent-Skills-Format und Ökosystem
- Agent Skills ist ein spezielles Dokumentformat für AI-Agenten als offener Standard, das Agenten Domain-Expertise vermittelt und bei Bedarf direkt gelesen und angewendet wird
- Kompatibel mit Claude Code, Cursor, GitHub Copilot, VS Code, Gemini CLI usw.
- Liegt als Ordner mit Anleitungen und Beispielen vor, die Agenten bei Bedarf entdecken und nutzen können
- Statt darauf zu hoffen, dass in Trainingsdaten die richtigen Muster gelernt wurden, werden explizite Regeln bereitgestellt
- Ein von Anthropic definierter offener Standard, der branchenweit übernommen wird
- Vercel hat react-best-practices veröffentlicht, das 10 Jahre Optimierungswissen zu React und Next.js in 40 Regeln verpackt
- Cloudflare hat Skills für mehr als 40 Services veröffentlicht, darunter Workers, Pages, D1 und R2
Warum Supabase diese Regeln erstellt hat
- Supabase betreibt Postgres für Hunderttausende Projekte und hat beobachtet, dass sich dieselben Fehler wiederholen
- Fehlende Indizes auf Foreign Keys
- Queries, die versehentlich RLS umgehen
- Migrationen, die in Produktion Tabellen sperren
- Erschöpfung des Connection Pools durch falsch verwaltete Clients
- Hinter ORM versteckte Full Table Scans
- Bereits vorhandenes Wissen aus Support-Team, Datenbankberater und Dokumentation wurde in eine agentenfreundliche Form umstrukturiert und paketiert
Beziehung zum MCP-Server
- Der Supabase MCP-Server ermöglicht es AI-Agenten, sich direkt mit Supabase-Projekten zu verbinden und per natürlicher Sprache Tabellen zu erstellen, Queries auszuführen, Schemas zu verwalten und Konfigurationen vorzunehmen
- Der MCP-Server verleiht Agenten die Fähigkeit, Datenbankaufgaben auszuführen, und Best Practices bringen ihnen bei, diese korrekt auszuführen
- Analogie: Der MCP-Server ist das Lenkrad, Best Practices sind der Fahrunterricht
- Ein Agent mit nur MCP-Zugriffsrechten kann jede angeforderte Query ausführen
- Ein Agent mit sowohl MCP-Zugriff als auch Regeln kann vor der Erstellung eines Indexes warnen, der Tabellen sperren könnte, vor der Bereitstellung unsicheren Codes RLS-Richtlinien vorschlagen und Queries so strukturieren, dass Performance-Probleme vermieden werden
- Der MCP-Server ist für Verbindung und Ausführung zuständig, diese Best Practices für das Urteilsvermögen
- Agent Skills warnen vor Risiken vor der Ausführung und lenken zu besseren Entscheidungen
- Durch die Trennung von Ausführungsfähigkeit und Entscheidungskriterien entsteht eine sichere und vertrauenswürdige Automatisierungsumgebung
Installation
- Repository: github.com/supabase/agent-skills
- Kann interaktiv mit dem skills npm-Paket von Vercel installiert werden
npx skills add supabase/agent-skills
- Bei Verwendung von Claude Code auch als Plugin installierbar
/plugin marketplace add supabase/agent-skills
/plugin install postgres-best-practices@supabase-agent-skills
Noch keine Kommentare.