GNL 0.17: erken aşamada ve hızlı ilerliyor — API'ler sürümden sürüme değişebilirBize katıl

GNL
Karşılaştırma

GNL, kendin yazmak ve agent framework'leri

Aynı işi kurmanın üç yolu var: dayanıklılığı kendin yazarsın; tam bir agent framework'ü benimseyip dayanıklılığı üstüne eklersin; ya da zaten koşturduğun Vercel AI SDK agent döngüsünün üstüne oturan bir dayanıklılık katmanından başlarsın. GNL üçüncüsü — ve o çekirdeğin üstünde RAG, workflow ve dinamik agent ağlarını da taşır; her biri ayrı bir alt sistem değil, aynı journal'a yazılan ve yeniden oynatılabilen yetenekler. Bu sayfada hiçbir ürün adı geçmiyor. Hangi framework'ün size uyduğu ekibinize ve probleminize bağlı, ve adaylardan birinin yazdığı karşılaştırma bunun karara bağlanacağı yer değil — onlarınkini de okuyun. Yazmaya değer olan, gerçekten ayrışan eksen ve GNL'in bilerek yapmadığı şeyler.

Senin uygulamanAgent mantığın, prompt'ların, tool tanımlarınVercel AI SDKgenerateText / streamText / tool çağrı döngüsü — değişmezGNLsunucu · Studio · iş akışları · RAG · değerlendirme · yetkilendirme · kanallar — tek journal üstünde: sessiz tekrar yok, deterministik replay

GNL, Vercel AI SDK'nın döngüsünü değiştirmeden onun üstüne kurulur: her parçası tek bir dayanıklı çekirdek üstünde duran tam bir framework. Hepsini al, ya da sadece çekirdeği.

Özellik matrisi

GNL'in çekirdek ayrımının en net görüldüğü eksenler — dayanıklılık, exactly-once ve deterministik replay — üzerinde üç yaklaşımı yan yana koyuyoruz. Orkestrasyon yüzeyindeki (RAG/workflow/network) pariteyi aşağıdaki "kapanan boşluklar" tablosunda ayrıca ele alıyoruz.

EksenKendin yazAgent framework'leriGNL
Dayanıklılık (crash → kaldığı yerden devam)Elle inşa edilir — checkpoint/state yönetimi sana aitNadiren çekirdek garanti — tarttığınız ürüne bakınÇekirdek garanti — her adım journal'a yazılır; senkron replikasyon altında ack'lenmiş 30/30 yazı canlı bir failover'dan sağ çıktı, arkasında 10.900+ test var
Aynı yan etkinin iki kez olmamasıIdempotency anahtarlarını kendin tasarlarsın — ve modelin aynı işi yeniden planladığını fark etmen gerekirNadiren çekirdek garanti — ve toolCallId'ye bakan her çözüm yeniden planlanan çağrıya kördürVarsayılan: toolCallId ile anahtarlı, çok-worker CAS yarış testleriyle kanıtlı. Opt-in `idempotency: 'args'` ile ARGÜMANLARLA anahtarlanır — model aynı işi yepyeni bir toolCallId ile yeniden planlasa bile tek kez çalışır (sahadaki baskın duplicate vakası)
Anlamca aynı işin tekrarı (hash’in kör olduğu yer)Yok — “ABC ürününü oluştur” iki farklı şekilde yazıldığında iki iş olurYok — bu eksende beyan edilmiş bir çekirdek garanti göremedikAday bulunur, karar deterministik alan karşılaştırmasıyla verilir; belirsizlik insana sorulur. Skor asla karar vermez — karar hiyerarşisi: deterministik > insan kapısı > olasılıksal. İki beyan da gerekmezse katman tamamen atıldır (opt-in)
Deterministik replay / time-travelGenelde yok — elle log/debugDeğişir — o framework'ün kendi araçlarına bağlıStudio'da timeline + time-travel replay
Edge-native boyutKendi bağımlılıklarına bağlıTam çatı (workflow/RAG/memory) — daha geniş yüzey57.4 KiB gzip çekirdek, soğuk başlatma maliyeti yok
BYO-DB (veri sende kalır)Neye yazdıysan odur — sende kalırDeğişir — o framework'ün kendi araçlarına bağlıSqlite/Postgres journal — veri her zaman sende
Telemetri / phone-homeYok (kendi kodun)Değişir — o framework'ün kendi araçlarına bağlıYok — ilke. B/C plan yalnızca imzalı AGREGE kullanım check-in'i yapar
Yönetişim (onay kuyruğu, denetim, retention/GDPR, policy, eval kapısı)Elle inşa edilirDeğişir — o framework'ün kendi araçlarına bağlıStudio ile kutudan çıkar

“Değişir”, bu eksenin baktığımız framework'lerde beyan edilmiş bir çekirdek garanti olmadığı anlamına gelir — üründen ürüne ve sürümden sürüme farklıdır. Bizim yazdığımız bir tabloya değil, tarttığınız ürünün kendi dokümantasyonuna bakın.

Orkestrasyon yüzeyi

Tam bir agent framework'ünden beklenen şeyler, aynı journal'ın üstünde — yani her biri kendi kuralları olan ayrı bir alt sistem değil, exactly-once ve yeniden oynatılabilir. Her satır kaynak koddaki adlandırılmış bir API'ye dayanır.

YetenekGNL APINot
Dinamik multi-agent routing (Supervisor/.network())createGnl networks: + runNetworkRouter kararları CAS ile journal'a donar → resume'da router çağrılmaz; maxIterations tavanı + zorunlu final.
Hazır scorer kütüphanesi@gnldev/evals — 8 scorerfaithfulness, hallucination, answerRelevancy, toxicity, bias, completeness, contextPrecision, toneConsistency — hepsi llmJudge sarar, journal-memoized.
Dataset & deney yönetimicreateDatasetsManagerİçerik-hash'li versiyon geçmişi, idempotent deney kaydı, compare (aggregate deltalar + regresyon/iyileşme).
GraphRAG (dolaylı-ilgi retrieval)@gnldev/rag — GraphRagBenzerlik-grafı üzerinden threshold/hops/decay; VectorStore drop-in → createRagTool içinde exactly-once.
Chunking + kalıcı vektör DBchunkText/chunkDocuments + PostgresVectorStorerecursive/markdown/character strateji, deterministik id#i; pgvector (HNSW/ivfflat), Qdrant, Chroma ve Weaviate InMemory ile aynı arayüz ve aynı vektör setinden geçiyor.
Semantik tool-arama@gnldev/processors — toolSearchEmbedding ile topK tool seçimi; seçim journal'lı → resume'da embed koşmaz (always/minScore).
Adlandırılmış SSO sağlayıcılarıcreateAuth0Sso, createWorkOsSsoAuth0 (OIDC code + JWKS RS256) ve WorkOS; imza doğrulama merkezi, CSRF state kancası.
Adlandırılmış observability preset'leri@gnldev/otel — otlpPresetsLangfuse/LangSmith/Braintrust/Honeycomb/Datadog/Collector tek satır; + canlı mod (@gnldev/otel/live).

Kanıt — iddia değil, çalışan test

GNL'in exactly-once/deterministik replay iddiası laf değil; gerçek altyapı üzerinde sınandı.

Canlı failover testi — 30/30 yazı korundu

Senkron replikasyonlu gerçek Postgres primary-SIGKILL → promote senaryosunda 30/30 ack'li CAS yazısı korundu, exactly-once sürdü; yeni primary'de atomiklik 10 tur yarışla kanıtlandı (test/failover-real.test.ts).

Çok-worker CAS yarış testleri

CAS tek-bağlantı varsaymıyor; birden fazla instance aynı run'a yazmaya çalıştığında atomik kaldığı 13 senaryoyla doğrulandı (test/multi-worker.test.ts). Bulunan split-brain kenar durumu putIfMatch CAS'i ile KAPATILDI — gerçek Postgres üzerinde takeover yarışıyla doğrulandı.

10.900+ test / 1.144 dosya yeşil

1.144 dosyada 10.959 test geçiyor, hiçbiri kırmızı değil (ölçüm 7 Kas 2026, herkese açık depoda 8fab1865 commit'i, sürüm 0.17.0, yani klonlayabileceğin ağaç; v0.17.0 yayın kapısı da aynı sayıyı verdi). 259 test ve 43 dosya varsayılan olarak atlanıyor, çünkü suite’in varsayamayacağı bir sunucu istiyorlar. Gerçek veritabanı kapısı, yani check:real --failover, ayrı ölçülüyor ve bu sayıya eklenmiyor, çünkü iki koşu aynı testleri paylaşabilir: be402682 commit'inde ortak koşusunda 3.249, backend'leri sonlandıran testlerin koşusunda 53 geçiyor ve failover bacağı 2 üzerinden 2 geçiyor. Gerçek model sağlayıcısı isteyen bacaklar koşulmadı (anahtar yok). Canlı failover senaryosu tekrarlanabilir bir deney (docker compose + GNL_FAILOVER=1). Journal büyümesi karakterize edildi, uzun ömürlü çalıştırmalarda sıkıştırmayı rolloverRun çözüyor.

Taint guard'ın nedensel kanıtı — 2/5 → 0/5

Aynı model, aynı prompt-injection senaryosu: guard kapalıyken saldırgana para transferi 5 denemenin 2'sinde gerçekleşiyor; guard açıkken (block veya taintGuardian) hiç gerçekleşmiyor (gnl-eval, ölçüm 2026-08-29).

8 farklı runtime'da doğrulandı

Aynı HTTP/Studio handler'ı Hono, node:http, Express, Fastify, Koa, Nest, Bun ve Deno üzerine gerçekten mount edilip ayakta kaldığı test edildi (server-matrix, ölçüm 2026-08-29).

Yük altında doğrusala yakın ölçekleme

PM2 cluster + gerçek Postgres + SSE altında 1 worker 24,5 tur/sn'den 4 worker'da 87,3 tur/sn'ye (3,38×), 8 worker'da 135,8 tur/sn'ye çıktı; 600 eşzamanlı rezervasyon denemesinde tam 200 rezervasyon ve 200 defter satırı oluştu, fazlası olmadı (performance-test, ölçüm 2026-08-29).

BYO-DB: SQLite'tan Postgres'e tek satır

Aynı agent kodu, npm'den gerçek bir paket olarak kurulup (symlink değil) SQLite ve Postgres storage arasında yalnızca tek satır değiştirilerek çalıştırıldı (trial-sqlite/trial-pg, ölçüm 2026-08-29).

Framework'lerin yapıp GNL'in yapmadıkları

Dürüstlük tek yönlü değil. Bunlardan birine ihtiyacınız varsa doğru araç tam bir agent framework'üdür, onu kullanın — bunlar ya bilerek kapsam dışı, ya da henüz yapılmadı:

Ses (Voice: TTS/STT)

Konuşma giriş/çıkışı. Birçok framework'te yerleşik; GNL bunu kapsam dışı bırakıyor.

Kanallar (Slack/WhatsApp)

Hazır Slack/WhatsApp türü kanal entegrasyonları. GNL bunları bilerek atlıyor — uygulamanızın altında duran bir katman, kanallar zaten uygulamanızın işi.

No-code / görsel agent editörü

Görsel, sürükle-bırak agent editörü. GNL kod-öncelikli, böyle bir şey sunmuyor.

~16 storage adaptörü

Depolama arka ucu çeşitliliği. GNL'de 3 tane var (InMemory/SQLite/Postgres); bazı framework'ler çok daha fazlasını sunuyor. Garanti üçünde de aynı, ama seçenek aralığı dar.

ClickHouse observability adaptörü

ClickHouse gibi gözlemlenebilirlik arka uçları için doğrudan adaptör. GNL adlandırılmış hazır ayarlarla OTLP/OTel üzerinden gidiyor — çoğuna ulaşıyor, ama doğrudan adaptör yok.

GNL ne DEĞİLDİR

Beklentiyi netleştirmek konumlanmanın parçası — GNL'in kapsamadığı alanlar:

AI SDK'nın yerine geçmez

GNL, Vercel AI SDK'nın agent döngüsünün üstüne kuruludur. generateText/streamText'in yerine geçmez, onları değiştirmez — modellerin ve araçların olduğu gibi kalır.

No-code / görsel builder değil

GNL kod-önceliklidir. Durable RAG (@gnldev/rag), iş akışları, agent ağları ve Slack/Telegram kanalları kutudan çıkar — ama no-code agent editörü ve ses yoktur.

Telemetri/analitik platformu değil

Phone-home yok; ilke olarak hiçbir çalışma verisi ya da içerik GNL'e gönderilmez.

Zorunlu barındırma değil

Journal kendi veritabanınızda kalır — GNL veriyi asla barındırmaz.

Hepsini al, ya da sadece çekirdeği

Her parça — sunucu, Studio, iş akışları, RAG, değerlendirme, yetkilendirme, kanallar — exactly-once ve deterministik replay çekirdeğinin üstünde durur ve onun garantilerini taşır. Framework'ün tamamını kullan, ya da sadece çekirdeği mevcut agent'ına tak.

Tasarım ortağı

AI SDK'yı gerçek bir projede mi kullanıyorsun? GNL'i birlikte şekillendirelim.

GNL'i gerçek bir projeye koyan az sayıda ekiple yakın çalışıyoruz.

  • Kodu yazan kişiye doğrudan ulaşırsın
  • Entegrasyonda birebir yardım alırsın
  • Yol haritasında söz hakkın olur: senin ihtiyacın öne geçer

Senden tek bir şey istiyoruz: gerçekten kullan ve neyin kırıldığını söyle.

Tasarım ortağı başvurusu

› form yükleniyor

Form bu sayfada açılır ve Google Forms üzerinde çalışır; kişisel verileri kendi sunucumuzda tutmuyoruz.