İçeriğe geç
edumintsBlog
AI Araçları3 dk okuma

Rivet (YC W23) – S3 Üzerinde Ajanları Ölçeklendirin ve Orkestre Edin

Kaynak: Hacker News

Paylaş
AI AraçlarıEdumints Blog
İçindekiler 3 başlık

Ajan tabanlı (agentic) iş yüklerini üretim ortamında yönetmek, modern yazılım geliştiricilerin karşılaştığı en kritik mimari zorluklardan biridir. Rivet, bir ajanın ihtiyaç duyduğu her türlü iş yükü için hızlı, yüksek yoğunluklu ve ölçeklenebilir bir orkestratör sunar. S3 üzerinde SSD hızında çalışan Rivet Actors mimarisi; 4.99 ms p99 soğuk başlatma (cold start) süresi, aktör başına yalnızca 72 KB RAM kullanımı ve milyarlarca aktöre ölçeklenebilme kapasitesiyle dikkat çeker.

Rivet Nedir?#

Rivet Aktörleri; bellek içi duruma (in-memory state), yerleşik bir SQLite veritabanına, WebSocket desteğine ve zamanlama (scheduling) yeteneklerine sahip uzun ömürlü süreçlerdir. Geliştiriciler her bir ajan, kullanıcı, oturum veya kiracı (tenant) için ayrı bir aktör oluşturabilir. Mimariyi öne çıkaran beş temel teknik özellik şunlardır:

  • Aktör başına 72 KB: Aktörler her biri için ayrı bir sandbox başlatmak yerine tek bir düğüm (node) sürecini paylaşır; böylece tek bir sunucu yüz binlerce aktörü barındırabilir.
  • 4.99 ms p99 soğuk başlatma: İmaj çekme (image pull) veya sanal makine (VM) önyükleme süreci gerektirmez.
  • Ölçeklenebilirlik için inşa edildi: Tüm veriler S3 üzerinde yaşadığından, bir küme milyarlarca aktöre kadar ölçeklenebilir.
  • Boştayken uyur, talep üzerine uyanır: Boşta kalan aktörler hiçbir maliyet oluşturmaz ve bir sonraki istekte veri kaybı olmadan anında uyanır.
  • SSD hızında, S3 destekli SQLite: p99'da 1.07 ms kalıcı yazma ve 1.36 ms okuma süreleri sunarak, replike edilmiş SSD depolamaya kıyasla yaklaşık 10.4 kat daha düşük maliyet sağlar.

Kullanım Senaryoları#

Yazılım geliştirme süreçlerinde durum yönetimi (state management) ve maliyet optimizasyonu açısından Rivet dört ana senaryoda pratik çözümler üretir:

  • Kalıcı ve çok oyunculu yapay zeka ajanları: Yeniden başlatmalara dayanıklı, her istemciyle canlı olarak paylaşılan bellek yapısı.
  • İş akışları (Workflows): Baştan başlamak yerine kaldığı yerden tekrar oynatılabilen (replay) çok adımlı operasyonlar.
  • Yapay zeka tarafından üretilen uygulamalar: Ajanınızın ürettiği uygulamaları ve aktörleri doğrudan çalıştırma imkanı.
  • İşbirlikçi düzenleme (Collaborative editing): Her belge için tüm düzenleyicilerle senkronize çalışan tek bir aktör.

Örnek ve Geliştirici Çıkarımları#

Sıfırdan yazılmış minimal bir ajan örneğinde (hazır bir ajan için Pi Durable kullanılabilir), rivetkit ve @ai-sdk/openai paketlerinin nasıl entegre edildiği görülür. agent.getOrCreate(["agent-123"]) çağrısı ile ilk kullanımda ajan başına bir aktör oluşturulur. Bu yapıda iki temel katman öne çıkar:

  1. SQLite katmanı: onMigrate kancası içerisinde CREATE TABLE IF NOT EXISTS messages (role TEXT, content TEXT) sorgusu çalıştırılarak her ajana kendi izole veritabanı verilir; böylece mesaj geçmişi yeniden başlatmalardan etkilenmez.
  2. Bellek içi durum (In-memory state): Veritabanı gerektirmeden doğrudan aktörle birlikte yaşayan sade değişkenler kullanılır.

Edumints geliştiricileri için en önemli çıkarım, durum bilgisi tutan (stateful) ajan mimarilerinin artık ağır konteyner maliyetlerine katlanmak zorunda olmamasıdır. S3'ün ucuz ve sınırsız depolama kapasitesini yerel SQLite ergonomisiyle birleştirmek, özellikle Production'da Agent Güvenilirliği ve Ölçeklendirme ve Optimizasyon süreçlerinde büyük bir mimari avantaj sağlar.

Kaynak ve atıf

Bu yazı, Hacker News üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:

  • github.com/rivet-dev/rivet