1 puan yazan GN⁺ 14 일 전 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Cloudflare, Agents SDK'nin yeni nesil sürümü olan Project Think'i duyurdu; uzun süre çalışan ajanlar için dayanıklı yürütme, alt ajanlar, sandbox içinde kod çalıştırma ve kalıcı oturumlar gibi yeni temel primitifler sunuyor
  • Mevcut kodlama ajanlarının yalnızca yerel dizüstü bilgisayarlarda çalışması, boştayken bile maliyet üretmesi ve manuel kurulum ile yönetim gerektirmesi gibi sınırlamaları vardı
  • Ajanlar, mevcut uygulamalardan farklı olarak 1:1 modelle çalıştığı için (bir kullanıcı ve bir görev başına bir örnek), on milyonlarca eşzamanlı oturumu desteklemek konteyner tabanlı maliyet yapısıyla sürdürülebilir değil
  • Durable Objects tabanlı aktör modeli kullanılarak, ajanların uykudayken sıfır hesaplama maliyetiyle beklemesi ve mesaj aldığında otomatik uyanması sayesinde büyük ölçekte ekonomik genişleme sağlanıyor
  • Yapay zeka ajanlarının üçüncü dalgası olarak altyapı olarak ajanları hedefliyor; dayanıklılık, dağıtıklık, sunucusuz yapı ve yapısal güvenlik özellikleriyle, tüm geliştiricilerin milyarlarca kullanıcıya yönelik ajanlar kurup dağıtabileceği bir platform amaçlanıyor

Project Think'e genel bakış

  • Cloudflare Agents SDK'nin yeni nesil sürümü olarak, uzun süre çalışan ajanlar inşa etmek için yeni bir primitif seti ve bunları birleştiren bir temel sınıf sunuyor
  • Başlıca primitifler: dayanıklı yürütme (fibers), alt ajanlar, kalıcı oturumlar, sandbox içinde kod çalıştırma, execution ladder ve kendi kendine yazılan uzantılar
  • Primitifler tek tek kullanılabileceği gibi, Think temel sınıfı ile hızlı başlangıç da yapılabiliyor

Kodlama ajanlarının bugünkü sınırları

  • Pi, OpenClaw, Claude Code ve Codex gibi araçlar, LLM'e dosya okuma, kod yazma, çalıştırma ve öğrenme yetenekleri kazandırıldığında onun genel amaçlı bir asistan gibi davranabildiğini kanıtladı
  • Bu kodlama ajanları yalnızca kod için değil; takvim yönetimi, veri kümesi analizi, satın alma pazarlığı, vergi beyanı ve iş akışı otomasyonu gibi alanlarda da kullanılabiliyor
  • Desen hep aynı: ajan bağlamı okur, akıl yürütür, harekete geçmek için kod yazar, sonucu gözlemler ve tekrarlar → kod, eylemin evrensel ortamıdır
  • Güncel sınırlamalar:
    • Yalnızca dizüstü bilgisayarda veya pahalı VPS'lerde çalışır: paylaşım, iş birliği ve cihazlar arasında geçiş mümkün değil
    • Boştayken bile maliyet üretir: sabit aylık maliyet, ekip ve şirket ölçeğinde hızla büyür
    • Manuel kurulum ve yönetim gerekir: bağımlılık kurulumu, güncelleme yönetimi, kimlik doğrulama ve secret ayarları

Ajanların yapısal sorunu: 1:1 model

  • Geleneksel uygulamalarda tek bir örnek çok sayıda kullanıcıyı işler, ancak ajanlar 1:1'dir — her ajan kendine özgü bir örnek olarak bir kullanıcı ve bir görev için çalışır
  • 100 milyon bilgi çalışanının her biri bir ajan asistanı kullanırsa on milyonlarca eşzamanlı oturum gerekir
  • Mevcut konteyner başına maliyet yapısı ile bu sürdürülebilir değildir; farklı bir temel gereklidir

Uzun süre çalışan ajanlar

  • Bugünkü ajanlar geçicidir (ephemeral): oturum bittiğinde yok olur, dizüstü bilgisayar uykuya geçtiğinde durur
  • Agents SDK, Durable Objects temeli üzerinde tüm ajanlara kimlik, kalıcı durum ve mesaj geldiğinde otomatik başlatma yeteneği verir
  • Aktör modeli: her ajan adreslenebilir bir varlıktır, kendi SQLite veritabanına sahiptir ve uykudayken hesaplama maliyeti sıfırdır
  • HTTP isteği, WebSocket mesajı, zamanlanmış alarm ya da gelen e-posta gibi bir olay olduğunda platform ajanı uyandırır ve durumunu yükler
  • VM/konteyner ile Durable Objects karşılaştırması:
    • Boşta maliyet: VM'de her zaman tam hesaplama maliyeti vardır, DO'da ise sıfırdır (uykuda)
    • Ölçekleme: VM'de manuel provisioning gerekir, DO'da ajan başına otomatik ölçekleme vardır
    • Durum: VM'de harici veritabanı gerekir, DO'da yerleşik SQLite bulunur
    • Kurtarma: VM'de bunu sizin kurmanız gerekir, DO'da platform otomatik yeniden başlatır ve durumu korur
    • Yönlendirme: VM'de load balancer ve sticky session'ı sizin kurmanız gerekir, DO'da isim→ajan eşlemesi yerleşiktir
    • 10.000 ajan (%1'i aktif) senaryosu: VM'de 10.000 örnek sürekli çalışır, DO'da ise yaklaşık 100 tanesi aktif olur
  • Yeni bir ajan oluşturmanın marjinal maliyeti fiilen sıfıra iner → "kullanıcı başına bir", "görev başına bir", "e-posta zinciri başına bir" ajan modeli mümkün hale gelir

Dayanıklı yürütme: Fibers

  • LLM çağrıları 30 saniye sürebilir; çok turlu ajan döngüleri ise bundan da uzun çalışabilir ve bu sırada yürütme ortamı ortadan kalkabilir (deployment, platform yeniden başlatması, kaynak sınırları)
  • runFiber(): çalıştırma başlamadan önce SQLite'a kaydedilen bir dayanıklı fonksiyon çağrısıdır; stash() ile checkpoint oluşturulabilir ve onFiberRecovered ile yeniden başlatma sonrası kurtarma yapılabilir
  • SDK, fiber çalışırken ajanı otomatik olarak ayakta tutar; özel bir ayar gerekmez
  • Dakikalar süren işler için keepAlive() / keepAliveWhile() ile tahliye önlenebilir
  • CI pipeline'ları, tasarım incelemeleri, video üretimi gibi daha uzun işler için, iş başladıktan sonra job ID saklanır ve ajan uykuya geçer; callback geldiğinde yeniden çalışır

Alt ajanlar: Facets

  • Tek bir ajanın her işi yapması gerekmez
  • Alt ajanlar, ebeveynle birlikte yerleştirilen child Durable Objects'tir; her biri izole SQLite ve yürütme bağlamına sahiptir
  • Facets tabanıyla ebeveyn ajanla aynı yerde bulunurlar ve alt ajanlar arasında verinin örtük paylaşımı yoktur
  • Alt ajan RPC gecikmesi fonksiyon çağrısı düzeyindedir; TypeScript yanlış kullanımı derleme zamanında yakalar

Kalıcı oturumlar: Session API

  • Günler veya haftalar süren ajanlar için sıradan düz mesaj listelerinden daha fazlası gerekir
  • Deneysel Session API, konuşmayı ağaç yapısı olarak modeller ve her mesaja parent_id verir
    • Forking: asıl yolu kaybetmeden alternatifleri keşfetme
    • Yıkıcı olmayan sıkıştırma: eski mesajları silmek yerine özetleme
    • Tam metin arama: FTS5 tabanlı tüm konuşma geçmişinde arama
  • Agent temel sınıfında doğrudan kullanılabilir ve Think temel sınıfında depolama katmanı görevi görür

Araç çağrısından kod yürütmeye

  • Geleneksel araç çağrısı yaklaşımı: model bir araç çağırır → sonuç bağlam penceresine geri alınır → tekrar edilir; araç sayısı arttıkça maliyet ve verimsizlik de artar
  • 100 dosya = modelle 100 kez gidiş geliş
  • Model, araç çağırma oyunu oynamaktan ziyade sistemi kullanmak için kod yazmada daha iyidir@cloudflare/codemode'un temel içgörüsü budur
  • Ardışık araç çağrıları yerine LLM, tüm işi çözen tek bir program yazar
  • Cloudflare API MCP sunucusu örneğinde yalnızca iki araç (search(), execute()) açığa çıkarılarak yaklaşık 1.000 token harcanıyor; endpoint başına araç yaklaşımında ise yaklaşık 1,17 milyon token gerekiyor → %99,9 azalma

Güvenli sandbox: Dynamic Workers

  • Model kullanıcı adına kod yazıyorsa, bu kodun hangi ortamda çalıştırılacağı temel sorudur
  • Dynamic Workers: çalışma anında milisaniyeler içinde oluşturulan yeni bir V8 izole ortamı, birkaç megabayt bellek
    • Konteynerlere kıyasla yaklaşık 100 kat daha hızlı ve en fazla 100 kat daha bellek verimli
    • Her istek için yeniden oluşturulup kod çalıştıktan sonra atılabilir
  • Temel tasarım: capability modeli — genel amaçlı bir makineyi kısıtlamak yerine, neredeyse hiç yetki olmadan başlar (globalOutbound: null, ağ erişimi yoktur) ve geliştirici binding'ler üzerinden kaynak bazında açık yetki verir
  • "Bunun fazla şey yapmasını nasıl engelleriz?" sorusundan, "Bunun tam olarak ne yapmasına izin vereceğiz?" sorusuna geçiş

Execution ladder

  • Ajanın ihtiyaca göre kademeli biçimde daha üst hesaplama ortamlarına yükseldiği bir spektrum:
    • Tier 0 — Workspace: SQLite + R2 tabanlı dayanıklı sanal dosya sistemi; okuma, yazma, düzenleme, arama, grep ve diff desteği; @cloudflare/shell çalıştırır
    • Tier 1 — Dynamic Worker: LLM tarafından üretilen JavaScript'i ağ erişimi olmayan sandbox izole ortamında çalıştırır; @cloudflare/codemode kullanır
    • Tier 2 — npm ekleme: @cloudflare/worker-bundler, registry'den paketleri alır ve esbuild ile bundle edip Dynamic Worker'a yükler; import { z } from "zod" doğrudan çalışır
    • Tier 3 — Headless browser: Cloudflare Browser Run ile gezinme, tıklama, veri çıkarma, ekran görüntüsü alma; MCP veya API desteklemeyen servislerde faydalıdır
    • Tier 4 — Cloudflare Sandbox: toolchain, repo ve bağımlılıkları hazırlanmış bir ortamda git clone, npm test, cargo build gibi işleri yürütür; Workspace ile çift yönlü senkronize olur
  • Temel tasarım ilkesi: Ajan yalnızca Tier 0 ile bile faydalı olmalıdır; her ek katman isteğe bağlı bir ilavedir

Bir framework değil, yapı taşları

  • Tüm primitifler bağımsız paketler olarak sunuluyor: Dynamic Workers, @cloudflare/codemode, @cloudflare/worker-bundler, @cloudflare/shell
  • Agent temel sınıfıyla doğrudan birleştirilerek workspace, kod yürütme ve çalışma anı paket çözümleme özellikleri ayrı bir framework benimsemeden kullanılabiliyor

Platformun tam yığını

  • Ajan başına izolasyon: Durable Objects — her ajanın kendi dünyası
  • Boşta sıfır maliyet: DO Hibernation — ajan uyanana kadar $0
  • Kalıcı durum: DO SQLite — sorgulanabilir ve transaction destekli depolama
  • Dayanıklı dosya sistemi: Workspace (SQLite + R2)
  • Sandbox içinde kod çalıştırma: Dynamic Workers + @cloudflare/codemode
  • Çalışma anı bağımlılıkları: @cloudflare/worker-bundlerimport * from react olduğu gibi çalışır
  • Web otomasyonu: Browser Run
  • Tam OS erişimi: Sandboxes — git, derleyiciler, test runner'lar
  • Zamanlanmış çalıştırma: DO Alarms + Fibers
  • Gerçek zamanlı akış: WebSockets
  • Harici araç bağlantısı: MCP
  • Ajanlar arası koordinasyon: alt ajanlar (Facets) — tipli RPC
  • Model erişimi: AI Gateway + Workers AI (veya kendi modeliniz)

Think temel sınıfı

  • Ajan döngüsü, mesaj kalıcılığı, akış, araç çalıştırma, akışın devam ettirilmesi ve uzantılar dahil tam sohbet yaşam döngüsünü yöneten birleşik bir harness
  • En küçük alt sınıf: yalnızca getModel() metodunu uygularsanız, akış, kalıcılık, durdurma/iptal, hata yönetimi, devam ettirilebilir akışlar ve yerleşik workspace dosya sistemiyle çalışan bir sohbet ajanı elde edersiniz
  • npx wrangler deploy ile dağıtılır
  • Override edilebilen öğeler: getModel(), getSystemPrompt(), getTools(), maxSteps, configureSession()
  • Her turda tam agentic loop çalışır: bağlam birleştirme (temel komutlar + araç açıklamaları + beceriler + bellek + konuşma geçmişi) → streamText çağrısı → araç çağrılarının yürütülmesi (bağlam patlamasını önlemek için çıktı kırpma) → sonucun eklenmesi → model tamamlanana veya adım sınırına ulaşılana kadar tekrar

Yaşam döngüsü hook'ları

  • Think, tüm pipeline'ın sahibi olmayı zorunlu kılmadan sohbet turunun her aşamasında hook'lar sunar:
    • beforeTurn()streamText()beforeToolCall()afterToolCall()onStepFinish()onChatResponse()
  • Sonraki turlarda daha ucuz modele geçmek, araçları kısıtlamak, istemci bağlamı aktarmak, tüm araç çağrılarını analitik olarak log'lamak veya otomatik takip turları tetiklemek, onChatMessage değiştirilmeden yapılabilir

Kalıcı bellek ve uzun konuşmalar

  • Think, Session API üzerine kuruludur; ağaç yapılı mesajlar ve dallanma yerleşik gelir
  • Context block'lar aracılığıyla kalıcı bellek: modelin okuyabildiği ve zaman içinde güncelleyebildiği, sistem prompt'u içindeki yapılandırılmış bölümler; uyku dönemleri arasında da korunur
  • Model bunu "MEMORY (Important facts, use set_context to update) [42%, 462/1100 tokens]" biçiminde görür ve proaktif olarak hatırlayabilir
  • Her ajan için birden fazla konuşma yürütülebilir; forking sayesinde asıl konuşmayı kaybetmeden farklı yönler denenebilir
  • Bağlam büyüdüğünde yıkıcı olmayan sıkıştırma uygulanır: eski mesajlar silinmek yerine özetlenir, tüm geçmiş SQLite'ta korunur
  • FTS5 tabanlı arama: konuşma geçmişi oturum içinde veya tüm oturumlar arasında sorgulanabilir; ajan da search_context aracıyla kendi geçmişinde arama yapabilir

Tüm execution ladder'ın entegrasyonu

  • Think, getTools() tarafından döndürülen tek bir yapı ile tüm execution ladder'ı birleştirir: workspace araçları, yürütme araçları, browser araçları, sandbox araçları ve uzantı araçları aynı anda yapılandırılabilir

Kendi kendine yazılan uzantılar (Self-authored Extensions)

  • Ajan, kendi uzantı programlarını bizzat yazabilir: ağ erişimini ve workspace işlem izinlerini tanımlayan, Dynamic Workers üzerinde çalışan TypeScript programları
  • Think'in ExtensionManager'ı uzantıları bundle eder (npm bağımlılıkları da dahil olabilir), Dynamic Worker'a yükler ve yeni araçlar kaydeder
  • Uzantılar DO depolamasında kalıcıdır ve uyku sırasında da yaşamaya devam eder
  • Örnek: kullanıcı bir PR ile ilgili soru sorduğunda, 30 saniye önce var olmayan github_create_pr aracı oluşturulabilir
  • Fine-tuning veya RLHF yerine, kod üzerinden kendi kendini geliştiren bir döngü — sandbox'lanmış, denetlenebilir ve geri alınabilir TypeScript

Alt ajan RPC

  • Think, ebeveynden RPC üzerinden chat() ile çağrılan bir alt ajan olarak da çalışır; callback'ler üzerinden akış olaylarını destekler
  • Her child kendi konuşma ağacına, belleğine, araçlarına ve modeline sahiptir; ebeveynin ayrıntıları bilmesi gerekmez

Başlangıç

  • Project Think şu anda deneysel (experimental) durumda; API yüzeyi kararlı olsa da zaman içinde gelişmeye devam edecek
  • Cloudflare içinde, şirketin kendi arka plan ajan altyapısını kurmak için zaten kullanılıyor
  • Think, @cloudflare/ai-chat ile aynı WebSocket protokolünü kullandığı için mevcut UI bileşenleri olduğu gibi çalışır
  • AIChatAgent tabanında kurulum yaptıysanız istemci kodunda değişiklik gerekmez

Yapay zeka ajanlarının üç dalgası

  • Birinci dalga — chatbot'lar: durumsuz, reaktif, kırılgan; her konuşmaya baştan başlar; bellek, araç ve eylem yeteneği yoktur; yalnızca sorulara yanıt vermede faydalıdır
  • İkinci dalga — kodlama ajanları: durumu korur, araç kullanır; Pi, Claude Code, OpenClaw ve Codex gibi araçlarla kod tabanını okuyabilir, kod yazabilir, çalıştırabilir ve yineleyebilir; uygun araçlarla donatılmış bir LLM'in genel amaçlı bir makine olduğunu kanıtlar, ancak yalnızca dizüstü bilgisayarda tek kullanıcı için çalışır ve dayanıklılık garantisi yoktur
  • Üçüncü dalga — altyapı olarak ajanlar: dayanıklı, dağıtık, yapısal olarak güvenli, sunucusuz; internette çalışır, arızalardan sağ çıkar, boştayken sıfır maliyet üretir ve güvenliği davranışla değil mimariyle zorunlu kılar

Henüz yorum yok.

Henüz yorum yok.