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

GNL

Değişiklik günlüğü

Her sürüm, en yenisi en üstte. @gnldev/* paketleri birlikte sürümlenir ve birlikte yayınlanır; tek bir sürüm numarası hepsini kapsar.

Her özet neyin değiştiğini ve bir minor sürümse neden minor olduğunu söyler; 0.x'te kırıcı değişiklik minor'da gelir. Her değişikliği ve gerekçesini içeren tam kayıt CHANGELOG.md'de, İngilizce.

GitHub'daki tam değişiklik günlüğü →RSS beslemesi

  1. 0.18.0

    Bir evet, sorulmuş bir soruyu cevaplar; her tool çağrısı kendi kimliğini taşır ve bir çalıştırmanın nasıl bittiği istemciye her kapıdan aynı biçimde ulaşır. Onaylar yalnızca bekleyen bir soru için yazılır ve ikiye ayrılır: confirm (isteyen cevaplayabilir) ve approve (yetkili biri cevaplamalı). Bir approve sorusuna isteyenin kendi evet'i reddedilir (403 approval_not_permitted), sorusu henüz olmayan bir evet yok sayılır. Her tool çağrısı kendi kimliğini alır; call_0'ı tekrarlayan bir sağlayıcı artık iki çağrıyı birleştirmez. İptal edilen çalıştırma 409 run_canceled döner; bir memory nesnesi kuruluş başına çalışır ya da adıyla reddedilir (memory_not_splittable); bir model adımının varsayılan 120 sn süre sınırı vardır ve modelin akıl yürütmesi istenmedikçe istemciye gitmez. Bu, 0.17.1 ve 0.17.2 olarak hazırlanan işin tek yayınıdır; ikisi de yayınlanmadı. 0.17'den yükseltme: depo adımı yok, yani gnl upgrade'in çalıştıracağı yeni bir şey yok; eski ve yeni bir süreci aynı veritabanında birlikte çalıştırmayın; isteyenin eskiden evet dediği yerde confirm ile sorun ya da bir operatör veya approvers cevaplasın; bir Slack guard'ının approve'u approvers ister; isteyen olarak cevaplayan kod, approve sorusunu cevaplamak için caller: STAFF geçer; arayüzünüz modelin düşünmesini gösteriyorsa stream.reasoning seçeneğini açın; 120 sn'den uzun susan bir model için timeouts.modelStepMs değerini yükseltin; iptal edilen çalıştırma 400 değil 409; kuruluşa bölünemeyen bir memory nesnesi reddedilir; hata fırlatan bir workflow çalıştırması failed listelenir.

    Tam kayıt →
  2. 0.17.0

    Bir deponun süreç canlılığı, bir işin ve bir tetiklemenin çalışma hakkı ve bir deponun yükseltmesi artık birer kural. Kuyruk, işleri kuruluş başına şeritlerden kuruluşlar arasında adil alır; zamanlayıcı bir tetiklemeye kilidi altında karar verir ve zamanı gelen tetikleyicileri artık birbirine bekletmez; iptal, kaybedilen kiralama ve süre sınırı handler'a nedeniyle birlikte tek bir sinyal olarak ulaşır (ctx.signal, maxHoldMs); paketler yükseltme adımlarını depoya kaydeder, gnl upgrade onları bulur. Kesilen bir model akışı artık bitmiş gibi cevaplanmıyor: run_unfinished (502) ile biter ve aynı runId modeli yeniden çağırır. Ayrıca yeni: enqueueMany, listAllJobs, maxCatchup ve ctx.scheduledFor, bir de gnl.config.ts içinde limits. 0.16'dan yükseltme: bu sürümün kuyruk worker'ları başlamadan önce gnl upgrade çalıştırın (kuyruğun işlerini kuruluş şeritlerine taşır; 0.16 worker'ları hâlâ çalışırken de güvenlidir; 0.16 süreçlerinin hepsi gidince gnl upgrade --only queue/lanes-cleanup gelir); beş yerleşik depoda depo canlılığı createGnl'e ya da createWorker'a değil depoya verilir; listJobs artık bir sayfa döndürür ve orgId verilmezse yalnızca kuruluşu olmayan işleri listeler; misfire: 'skip' kalktı, varsayılan 'latest'; özel iş depolarında read, appendMany ve ready seti gerekir; alt sınırlar ai 7.0.149, @ai-sdk/openai 4.0.100 ve @ai-sdk/anthropic 4.0.86.

    Tam kayıt →
  3. 0.16.0

    Bir ajan neden öyle yaptı ve ne değişirse istediğinizi yapar: Studio'ya Inspector'dan açılan bir Lab geliyor — bir çalıştırmanın her parçasının payı, yazılı bir beklentiye karşı teşhis edilen bir konuşma turu (önce bir tahmin, sonra kanıtlamak için oynatılır), bir çağrıya karar veren kelimeler, bir turun değiştirilmiş kopyasının olduğu hâliyle çalıştırmanın yanında oynatılması ve bir prompt bölümünün çıkarılıp çıkarılamayacağı. İki yeni paket taşıyor: @gnldev/experiment (optimizer'ın üzerinde çalıştığı paket) ve deneysel olan @gnldev/lab — teşhisi, tek bir modelle yerleştirilmiş hatalar üzerinde ölçüldü (40'ın 39'u adlandırıldı, 55 turda yanlış neden yok) ve API'si değişecek. 0.15'ten yükseltme: Lab'ın üç sekmesi var (Improve, New agent, Scenarios), eski modlar ve URL'leri kalktı; replayCounterfactual, DEFAULT_SUITE, runSuite, checkScenario ve normalizeAnswer @gnldev/optimizer'dan @gnldev/experiment'e taşındı, takma ad yok; Studio'nun Regression sekmesi, POST /runs/:id/regression ve regressionModel seçeneği kaldırıldı, yerini Lab'ın capsule'ü aldı; hiçbir form bir senaryoyu geçmediyse bestForm'un best'i yok; :memctx sayıları modele gönderileni anlatır. Depo adımı yok.

    Tam kayıt →
  4. 0.15.0

    Bir ajanın maliyeti, kendi çalıştırmalarından ölçülür: yeni bir paket, @gnldev/optimizer, ajanın parasının nereye gittiğini sağlayıcının faturaladığından okur (sonraki adımlarda yeniden gönderilen açılış, birbirinden 5 dakika içinde başlayan çalıştırmaların yeniden gönderdiği aynı talimat, eski tool çıktısı), iki kaldıraç sunar (prompt cache işaretleri ve eski tool çıktısını bağlamın dışında bırakmak) ve kayıtlı çalıştırmaları daha ucuz bir modelle yeniden oynatır — her tool çağrısı kayıttan cevaplanır, hiçbiri çalışmaz — böylece ucuz ayarın aynı işi yapıp yapmadığı görülür. Öneri verir, hiçbir şeyi değiştirmez; Studio'da Optimizer sekmesi olarak görünür. Ücretli bir anahtarla ölçüldü: talimatı ortak dört çalıştırmada cache anahtarı maliyeti üçte bir düşürdü. 0.14'ten yükseltme: Anthropic cache yazımları artık yazım fiyatıyla hesaplanıyor, yani prompt cache'e yazan çalıştırmalar GNL'in rakamlarında biraz daha pahalı görünür — sağlayıcının faturaladığı kadar; RunCost'a cacheWriteTokens eklendi; depo adımı yok.

    Tam kayıt →
  5. 0.14.0

    Ajanlar insanların konuştuğu yerde: yeni bir paket, @gnldev/channels, ajanı Slack ve Telegram'da çalıştırır — mesaj platformun ona verdiği kimlikle adlandırılan kalıcı bir iştir (tekrar teslim aynı iş), ajan bir kez çalışır, cevap Slack'te bir kez gider (sohbeti geri okuyamayan Telegram'da en fazla bir kez), onay butonlarını yalnızca soran kişi yanıtlar. Ayrıca: Elasticsearch ve OpenSearch vektör depoları; Auth0, Clerk, Supabase ya da Firebase'den gelen son kullanıcı token'ları (endUsers.jwks, ES256); CI için değerlendirme kapısı (gnl eval); Express, Fastify ve Koa içinde test edilen REST API; Next.js'te ayarsız derlenen @gnldev/durable; her vektör sunucusu çağrısına süre sınırı; ve bir Weaviate koleksiyon yarışının düzeltilmesi. 0.13'ten yükseltme: vektör sunucusu çağrıları timeoutMs sonra düşer (varsayılan 30 sn); endUsers secret, publicKey ya da jwks'ten yalnızca birini alır; depo adımı yok. Düzeltme: yeni açılmış bir Postgres deposunun önekle ilk araması en_US.utf8 veritabanında artık "hiçbiri" demiyor — bir süreçte ilk iş olarak yapılan silme, kişinin sohbetini geride bırakıyordu.

    Tam kayıt →
  6. 0.13.0

    İki vektör deposu daha, diğerleri gibi ölçülerek: ChromaVectorStore ve WeaviateVectorStore (@gnldev/rag) belgeleri ek paket olmadan bir Chroma ya da Weaviate sunucusunda tutuyor ve diğer bütün depolarla aynı 20 senaryoluk vektör setinden geçiyor. İki sunucunun araması da yaklaşık; aynı vektörün bazı kopyalarını kaçırıyor (Weaviate: limit 4.000 iken 3.000 kopyanın 2.974'ü), bu yüzden top-K sınırındaki eşitlik bütünüyle okunup id'ye göre sıralanıyor. 0.12'den yükseltme adım istemiyor.

    Tam kayıt →
  7. 0.12.0

    Bir depo garantilerini söylüyor ve onlara göre ölçülüyor (ADR-0009): her sözün dayandığı birkaç atomik işlem artık depo sözleşmesi; bunları sağlamayan depo girdiği yerde reddediliyor ve tek bir set her arka ucu ölçüyor. Bu setle ölçülen yeni depolar: MySQL/MariaDB, MongoDB, libSQL/Turso ve vektör için Qdrant. 0.11'den yükseltme: Postgres ve SQLite'ta depo adımı yok; özel bir depo listelenen garantileri sağlamalı; çöken bir sürecin işi hemen değil reconnectGraceMs (5 sn) sonra devralınıyor — ölçüldü, kesilen bir canlılık oturumu artık ikinci bir sürecin aynı araç gövdesini yan yana çalıştırmasına yol açmıyor.

    Tam kayıt →
  8. 0.11.1

    Bir zamanlamanın tetiklenmesi, kuyruktaki bir iş ve bir toplu öğe yapıldıkları sahibe ait: 0.11.0'da böyle bir run id'yi önce yazan son kullanıcı onu alabiliyordu (ölçüldü: sahibin tetiklemesi başarısız oldu, işi her denemede düştü, silme talebi yabancının run'ını sildi). Artık id'yi kim oluşturuyorsa run'ı o başlatıyor. Ayrıca bir model adımı bir kez yanıtlanıyor: kaydedilen ilk yanıt, her denemenin aldığı yanıt. Depo adımı yok; adı değişen export'lar Breaking altında.

    Tam kayıt →
  9. 0.11.0

    Bir run artık onu başlatan isteğin içinde yaşamıyor: kapanan sekme, kopan bağlantı ya da zaman aşımı run'ı durdurmuyor; herhangi bir süreçten yeniden bağlanan okuyucu kaldığı yerden devam ediyor ve ölen bir sürecin run'larını canlı bir süreç devralıyor. Uzun araç işleri arka planda çalışabiliyor. Postgres'te gerçek süreçlerle ölçüldü: aracın sağlayıcısı idempotency anahtarını kabul ediyorsa tam bir kez, etmiyorsa en fazla yeniden deneme sınırı kadar. Yeni bir thread artık deponun diğer run'larını okumuyor. 0.10'dan yükseltme: önce bütün süreçleri durdurup gnl upgrade çalıştırın (kademeli dağıtım değil); bir thread'i silmek artık run'larını da siliyor; Redis deposu artık yok.

    Tam kayıt →
  10. 0.10.0

    Bir alt ajan, ajanın verdiği her güvenceyi veriyor ve birim artık istek: "bir kez", limitler ve onaylar bir isteğin başlattığı bütün çalıştırmalarda geçerli. Yeni paket @gnldev/options, bilinmeyen seçenek adları kuralını taşıyor. 0.9'dan yükseltirken: idempotency anahtarı olmadan tekrarlanan bir yan etki ya da güvenilmeyen içerikten sonra gelen bir yan etki artık çalışmıyor, bir kişiye soruluyor (sideEffectDuplicates ve taintedSideEffects varsayılanı suspend; warn eski davranışı geri getirir); idempotencyKey tanımlayan bir tool idempotencyWindow da beyan etmeli; her seçenek nesnesi almadığı bir adı reddediyor ve en yakın adı söylüyor; bir alt ajan status, text, interrupts ve başarısız olduysa failed döndürüyor — onayları delegasyon çağrısı / alt çağrı biçiminde adresleniyor, delegatedTo hangi alt ajanın sorduğunu söylüyor; bir istek system mesajı gönderemiyor (400 caller_system_message). Düzeltilenler: alt ajanlara verilen bir ödeme 30 çalışana 40 kez ödeniyordu, artık 30; tool-call limiti 50 olan 200 paralel çağrıdan bellek, Sqlite, Postgres ve Redis'te tam 50'si çalışıyor; Redis deposu bir öneki listelemek için artık bütün veritabanını taramıyor — 1.000.000 ilgisiz anahtarın yanında 10 çağrılık bir çalıştırma 2983 ms'den 37 ms'ye indi. Bilinen sınır: 0.9'un yazdığı bir Redis deposu, bütün süreçler 0.10'a geçtikten sonra storage.rebuildKeyIndex() bir kez çağrılana kadar SCAN ile listelemeye devam ediyor.

    Tam kayıt →
  11. 0.9.0

    Paralı auth paketi dört şeye güvenmeyi bırakıyor: süresi dolmuş lisans, başka bir uygulama için imzalanmış token, state kontrolü olmayan giriş callback'i ve sınırsız önbelleklenen JWKS anahtarları. Her ret, eski davranışı geri getiren tek satırı söylüyor. Tek başına çalışan chat ve AG-UI rotaları artık rol kontrol edebiliyor. Depo github.com/gnlhq/gnldev'e taşındı.

    Tam kayıt →
  12. 0.8.0

    Principal'da yanlış yazılmış bir alan ya da hata kodu adı artık derleme hatası; her paket sideEffects beyan ediyor, böylece bundler'lar uygulamanın kullanmadığını atıyor — dayanıklı çekirdek 61,5 KiB'tan 57,4 KiB gzip'e indi. Yalnız tip değişiklikleri; çalışma zamanında hiçbir şey değişmiyor.

    Tam kayıt →
  13. 0.7.0

    Son kullanıcılar varsayılan olarak, tek bir noktada ve ücretsiz izole; her paket çağıranın kim olduğunu aynı yolla soruyor (identify). Pek çok madde kırıcı — önce kaydın başındaki yükseltme listesini oku.

    Tam kayıt →
  14. 0.6.0

    McpServer.listTools artık async ve çağıranı alıyor; Studio, tek kimlik bilgisi geliştirme kimlikleri olduğunda loopback olmayan bir adreste artık başlamıyor.

    Tam kayıt →
  15. 0.5.0

    Doğrulama üç yerde sıkılaştı — runId kayıt ayırıcısı, JWT nbf ve tool test formu — ve StudioAgentRunner dördüncü bir parametre aldı.

    Tam kayıt →
  16. 0.4.1

    Bir korumanın uyarısı yaptığından fazlasını söylüyordu. Mesaj değişti; davranış değişmedi.

    Tam kayıt →
  17. 0.4.0

    Bir silme işleminin başkasının verisini götürebildiği iki yol, en çok da iki nokta üst üste içeren id'lerde. ^0.3.0 aralığı bunu kendiliğinden almaz — bilerek yükselt.

    Tam kayıt →
  18. 0.3.0

    Bir thread id'si kendi anahtar alanını yeniden adlandırabiliyordu ve tek bir temizlik bütün thread'leri siliyordu. Eskiden kabul edilen iki kelime artık reddediliyor.

    Tam kayıt →
  19. 0.2.0

    Kalıcı bir anahtar şemasında tek bir değişiklik — yükseltmeden önce Changed bölümünü oku.

    Tam kayıt →
  20. 0.1.0

    npm'deki ilk sürüm.

    Tam kayıt →