- AI kodlama ajanlarının Postgres’i doğru şekilde ele alamama sorununu çözmek için, veritabanı kurallarını açıkça sunan Agent Skills duyuruldu
- Postgres, on yıllar boyunca birikmiş özellikler, edge case’ler ve performans karakteristikleri içerdiği için ajanlar çalışır görünen ama tam tablo taramasına yol açan veya güvenlik politikalarını atlayan kodlar üretebiliyor
- Toplam 8 kategori ve 30 kuraldan oluşuyor; sorgu performansı, bağlantı yönetimi, güvenlik ve RLS, şema tasarımı gibi başlıklar etki düzeyine göre önceliklendirilmiş
- İnsanların okuyacağı bir doküman değil, AI ajanlarının doğrudan başvurduğu bir kural seti olarak sunuluyor
- MCP sunucusuyla birleştirildiğinde, yürütme kabiliyeti ile karar verme ölçütlerini aynı anda taşıyan gerçek kullanım için uygun bir veritabanı ajanı kurulabiliyor
Sorunun tanımı: AI kod yazıyor ama sistemi anlamıyor
- AI kodlama ajanları sözdizimi olarak doğru kod üretiyor, ancak Postgres’in iç özelliklerini ve operasyonel risklerini dikkate alamama sınırlamasına sahip
- Tam tablo taramasına yol açan sorgular, yazma performansını düşüren indeks önerileri ve Row Level Security eksikliği gibi sorunlar tekrar tekrar ortaya çıkıyor
- Üretim ortamında kritik olan performans, güvenlik ve kararlılık unsurlarını ajanın gözden kaçırdığı birçok örnek tespit edilmiş durumda
Postgres Agent Skills’e genel bakış
- AI ajanlarının Postgres kodu yazarken başvurması için hazırlanmış kural tabanlı bir bilgi deposu
- Toplam 30 kural ve etki düzeyine göre sıralanmış 8 kategori içeriyor
- Her kural; başlık, öncelik, neden önemli olduğuna dair açıklama ve doğru/yanlış kod örnekleri içeriyor
8 kural kategorisinin yapısı
- Her kural tutarlı bir biçimi izliyor; başlık, etki düzeyi, açıklama ve etiketler içeriyor
- Query Performance (Critical): tam tablo taramasını önleme, verimli sorgu yazma kuralları
- Connection Management (Critical): connection pooling, istemci yaşam döngüsü yönetimi, kaynak sınırları
- Security and RLS (Critical): Row Level Security politikaları, erişim kontrolü kalıpları
- Schema Design (High): tablo yapısı, veri tipleri, normalizasyon kararları
- Concurrency and Locking (Medium-High): transaction isolation, deadlock önleme, lock yönetimi
- Data Access Patterns (Medium): sayfalama, toplu işlemler, erişim kalıbı tasarımı
- Monitoring and Diagnostics (Low-Medium): sorgu analizi, performans takibi, hata ayıklama
- Advanced Features (Low): CTE, window function, eklentiler gibi Postgres’e özgü özellikler
Row Level Security kuralına bir örnek
- Yanlış yaklaşım: yalnızca uygulama katmanı filtrelemesine güvenildiğinde, hata veya bypass nedeniyle tüm verinin açığa çıkma riski bulunuyor
select * from orders where user_id = $current_user_id; şeklinde yazılırsa, bypass durumunda tüm siparişler dönebilir
- Doğru yaklaşım: veritabanı seviyesinde RLS’yi zorunlu kılmak
alter table orders enable row level security; ile RLS etkinleştirilir
create policy ile kullanıcıların yalnızca kendi verilerini görebileceği politika oluşturulur
alter table orders force row level security; ile tablo sahibine karşı da RLS zorunlu kılınır
- Kimliği doğrulanmış roller için politika örneği:
create policy orders_user_policy on orders for all to authenticated using (user_id = auth.uid());
Agent Skills formatı ve ekosistemi
- Agent Skills, ajanlara alan uzmanlığı kazandıran açık standartlı bir AI ajanlarına özel doküman formatı; gerektiğinde ajan bunu doğrudan okuyup uygulayabiliyor
- Claude Code, Cursor, GitHub Copilot, VS Code, Gemini CLI ve benzerleriyle uyumlu
- Ajanın ihtiyaç duyduğunda keşfedip kullanabileceği yönerge ve örnekleri içeren klasör yapısında sunuluyor
- Eğitim verisinden doğru kalıpları öğrenmiş olmasını beklemek yerine açık kurallar sağlıyor
- Anthropic tarafından tanımlanan açık bir standart ve sektör genelinde benimsenmeye başlanmış durumda
- Vercel, 10 yıllık React ve Next.js optimizasyon bilgisini 40 kuralla paketlediği react-best-practices setini yayımladı
- Cloudflare, Workers, Pages, D1, R2 dahil 40’tan fazla hizmet için Skills yayımladı
Supabase neden bu kuralları oluşturdu
- Supabase, yüz binlerce projede Postgres çalıştırırken aynı hataların tekrarlandığını gözlemledi
- Foreign key’lerde eksik indeksler
- Yanlışlıkla RLS’yi bypass eden sorgular
- Üretimde tabloları kilitleyen migration’lar
- Kötü yönetilen istemciler nedeniyle connection pool tükenmesi
- ORM arkasına gizlenmiş tam tablo taramaları
- Destek ekibi, veritabanı advisor’ı ve dokümantasyonda zaten bulunan bilgi, ajan dostu bir biçimde yeniden düzenlenerek paketlendi
MCP sunucusuyla ilişkisi
- Supabase MCP sunucusu, AI ajanlarının Supabase projelerine doğrudan bağlanıp tablo oluşturma, sorgu çalıştırma, şema yönetimi ve yapılandırma ayarlarını doğal dille yapabilmesini sağlıyor
- MCP sunucusu ajana veritabanı işlemlerini yapma kabiliyeti kazandırıyor; en iyi uygulamalar ise bunları doğru şekilde yapmayı öğretiyor
- Benzetme: MCP sunucusu direksiyon, en iyi uygulamalar ise sürüş eğitimi
- Yalnızca MCP erişimi olan bir ajan, kendisinden istenen her sorguyu çalıştırabilir
- Hem MCP erişimi hem de kuralları olan bir ajan; tabloyu kilitleyecek bir indeks oluşturmadan önce uyarabilir, güvenli olmayan kod yayına alınmadan önce RLS politikası önerebilir ve performans sorunlarını önleyecek şekilde sorguları yapılandırabilir
- MCP sunucusu bağlantı ve yürütmeden, bu en iyi uygulamalar ise muhakemeden sorumlu
- Agent Skills, yürütme öncesinde riskleri uyarır ve daha iyi seçimlere yönlendirir
- Yürütme kabiliyeti ile karar ölçütlerini ayırarak, güvenli ve güvenilir bir otomasyon ortamı kurulmasını sağlar
Kurulum yöntemi
- Depo konumu: github.com/supabase/agent-skills
- Vercel’in skills npm paketi kullanılarak etkileşimli biçimde kurulabilir
npx skills add supabase/agent-skills
- Claude Code kullanılıyorsa eklenti olarak kurulabilir
/plugin marketplace add supabase/agent-skills
/plugin install postgres-best-practices@supabase-agent-skills
Henüz yorum yok.