3 puan yazan GN⁺ 5 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • 2 günlük deneyin sonucu olarak Claude Fable 5'i "relentlessly proactive" diye tanımlamak uygun görünüyor
  • Yalnızca ekran görüntüleri ve tek satırlık bir prompt ile yerel geliştirme sunucusunu çalıştırdı, gerçek tarayıcıyı kullandı ve ölçüm kodu ekleyerek CSS hatasının nedenini izledi
  • Fable, Playwright, Firefox, WebKit ve Safari arasında gidip gelerek hatayı yeniden üretmeye çalıştı; başarısız olunca gerçek tarayıcı pencerelerini bulup ekran görüntüsü otomasyonunu bizzat kurdu
  • / tuşuyla açılan modal iletişim kutusunu test etmek için Datasette şablonuna JavaScript ekledi ve pencere yüklendikten sonra klavye olayını tetikleyerek gerekli durumu oluşturdu
  • Sayfa içi ölçümleri almak için Python http.server tabanlı bir CORS toplama sunucusu kurdu ve Web Component'in shadow DOM içindeki <textarea> bilgilerini JSON olarak kaydetti
  • Güçlü kodlama ajanları terminalde kullanıcının yapabileceği işleri yapabildiğinden, sandbox dışında çalıştırılmaları prompt injection ve veri sızıntısı riskini büyütür

Claude Fable 5'in hata ayıklama süreci

  • Datasette Agent'in jump menu sohbet prompt'unda ortaya çıkan gereksiz yatay kaydırma çubuğunu incelemeye başladı
  • Claude Fable 5, hedefine ulaşmak için çeşitli teknikleri aktif biçimde devreye soktu
  • Girdi olarak ekran görüntüleri ve Look at dependencies to help figure out why there is a horizontal scrollbar here şeklinde tek satırlık bir prompt verildi
  • Sorunun kaynağının Datasette Agent'in bağımlılıklarında, özellikle de Datasette'in kendisinde olabileceği düşüncesiyle önce bağımlılık kodlarına bakması istendi
  • Claude Code'a açıkça tarayıcı otomasyonu talimatı verilmemiş olmasına rağmen normal bir Firefox penceresi açıp ilgili iletişim kutusuna gitti; ardından araştırmaya devam etmek için bir Safari penceresi de açtı

Tarayıcı ekran görüntüsü otomasyonu

  • Fable, uv run --with pyobjc-framework-Quartz kullanarak tarayıcı pencerelerinin ekran görüntüsünü almak için kendi yöntemini kurdu
  • Python ile makinedeki tüm pencereleri dolaştı ve pencere adında "textarea" gibi beklenen dizgeleri içeren Safari pencerelerini filtreledi
  • Pencere numarası gibi 153551 tamsayı kimliğini bulduktan sonra screencapture CLI ile PNG kaydetti
  • /tmp/textarea-scrollbar-test.html gibi geçici bir HTML sayfası yazıp Safari'de açarak ekran görüntüsü aldı
  • Örnek komut screencapture -x -o -l 153551 /tmp/safari-cases.png idi

Modal iletişim kutusunu otomatik çalıştırma

  • Test edilen modal yalnızca tıklama veya klavye kısayoluyla açılabiliyordu ve Safari içinde fare hareketi ya da klavye kısayolu çalıştırmak için net bir mekanizma görünmüyordu
  • Claude, uygulama kaynak kodunun bulunduğu klasörde çalışıyordu ve Datasette yerel geliştirme sunucusunu başlatabilecek kadar yapıyı kavradı
  • Pencere açıldıktan sonra / tuşuna basılmasını simüle etmek için Datasette şablonuna JavaScript ekledi
  • Bu kod, pencere yüklendikten 1.2 saniye sonra / tuşu için keydown olayını tetikleyerek modalı açan kısayolu çalıştırdı
<script>  
window.addEventListener("load", function () {  
  setTimeout(function () {  
    document.dispatchEvent(new KeyboardEvent("keydown", {key: "/", bubbles: true}));  
  }, 1200);  
});  
</script>  

Sayfa içi ölçümlerin toplanması

  • Claude, ölçümleri doğrudan almak için sayfada JavaScript çalıştırmak zorundaydı; bunun için CORS üzerinden bilgi alan kendi web uygulamasını yazdı
  • Python standart kütüphanesindeki http.server ile 127.0.0.1:9999 üzerinde yerel bir sunucu çalıştırdı
  • Sunucu, JSON içeren POST isteklerini alıp /tmp/diag.json dosyasına yazdı ve farklı domain'lerden gelen kodun da iletişim kurabilmesi için Access-Control-Allow-Origin: * başlığını döndürdü
  • Claude, tarayıcıda yüklenen şablona JavaScript ekleyerek <navigation-search> Web Component içindeki <textarea> öğesini buldu
  • Eklenen kod devicePixelRatio, scrollWidth, clientWidth, whiteSpace ve width değerlerini ölçüp yerel sunucuya gönderdi
const host = document.querySelector("navigation-search");  
const ta   = host.shadowRoot.querySelector("textarea");  
const cs   = getComputedStyle(ta);  
fetch("http://127.0.0.1:9999/diag";, {  
  method: "POST",  
  body: JSON.stringify({  
    dpr: window.devicePixelRatio,  
    scrollWidth: ta.scrollWidth, clientWidth: ta.clientWidth,  
    whiteSpace: cs.whiteSpace, width: cs.width,  
  }),  
});  

Opus'a geçiş ve düzeltmenin doğrulanması

  • Fable, çeşitli teknikler keşfettikten sonra görünmez guardrail'lere takıldı ve Opus'a düşürüldü
  • Opus, tüm konuşma kaydına erişebiliyordu ve Fable'ın önünü açtığı teknikleri kullanmayı sürdürdü
  • Sonrasında Opus sorunu buldu, test etti, doğruladı ve düzeltme commit'ini tamamladı
  • Opus, oturum sırasında gerçek tarayıcı üzerinde kullandığı otomasyon tekniklerini ve çalıştırılabilir kod örneklerini /tmp/automation-report.md içinde özetledi
  • Bu rapor ayrı bir gist olarak paylaşıldı; Claude Code'un tam terminal kaydı da yayınlandı

Yapılan işlerin tamamının gözden geçirilmesi

  • Claude Fable 5 ve Claude Code, yerel geliştirme sunucusunun nasıl çalıştırılacağını buldu ve çalışması için gereken sahte ortam değişkenlerini de ayarladı
  • Bir Playwright Chrome oturumu başlattı ve Chrome'daki görünür kaydırma çubuğu ayarını defaults write com.google.chrome.for.testing AppleShowScrollBars Always komutuyla açıp daha sonra yeniden kapattı
  • Playwright'in Firefox ve WebKit seçeneklerini de denedi ancak hatayı yeniden üretmeyi başaramadı
  • Varsayılan tarayıcının Safari olduğunu tespit etti ve textarea-scrollbar-test.html adlı bir HTML belgesi oluşturdu
  • Test belgesini gerçek Firefox'ta açtı, ancak osascript erişimi “osascript is not allowed assistive access” nedeniyle engellendi
  • pyobjc-framework-Quartz tabanlı bir geçici çözüm bularak pencere numarası üzerinden ekran görüntüsü akışını kurdu
  • Site şablonuna JavaScript ekleyip / tuşunu tetikledi ve Python CORS sunucusuyla JSON verilerini aldı
  • Web Component'in shadow DOM katmanına girerek gerekli bilgiyi buldu ve Safari'de hatanın nedenini doğruladı
  • Özel şablona olası düzeltmeyi uygulayıp çalıştığını doğruladıktan sonra sorunun nasıl çözüleceğini raporladı

Maliyet tahmini

  • Kullanılan plan aylık 100 dolarlık Claude Max planıydı; Anthropic, 22 Haziran'a kadar Fable için cömert bir kullanım hakkı sunduğunu, sonrasında ise tam API ücretini uygulayacağını belirtti
  • AgentsView harcama takibi için kullanıldı ve tam fiyat ödenmiş olsaydı bu oturumun maliyeti yaklaşık 12.11 dolar olacaktı
  • Oturum çıktısı 68606, azami context 113178, kullanılan modeller ise claude-fable-5 ve claude-opus-4-8 idi
  • Fable, maliyet yakından izlenmezse CSS hata ayıklamak için yeni yöntemler icat ederek yaklaşık 12 dolarlık token maliyetini kolayca tüketebilir

Sandbox gerekliliği

  • Fable'ın sonunda yalnızca iki satırlık bir CSS düzeltmesi için gereken bilgiyi toplamak adına uç yöntemlere kadar gitmesi etkileyiciydi
  • Kodlama ajanları, kullanıcının terminale komut yazarak yapabileceği işleri yerine getirebilir ve frontier modeller çok sayıda tekniği bilir
  • Kötü niyetli talimatlar, kod ya da issue thread içindeki prompt injection'lar veya terminale dikkatsizce yapıştırılan içerikler varsa bu durum veri sızıntısına ya da başka zararlara yol açabilir
  • Kodlama ajanlarını sandbox dışında çalıştırmak her zaman kötü bir fikirdir ve kodlama ajanı güvenlik olayları için başlıca adaylardan biri sayılır
  • Fable daha zeki olduğu için kötü niyetli talimatlara karşı daha şüpheci olabilir; ancak bir kez kandığında durmaksızın proaktif davranması nedeniyle hasarın boyutu büyüyebilir

1 yorum

 
GN⁺ 5 시간 전
Hacker News yorumları
  • Bu, insan inisiyatifinin ölümcül kaybını gösteren etkileyici bir örnek gibi okunuyor ve gerçek commit’ler de epey şey ortaya koyuyor [0]
    Yazar yatay kaydırma çubuğunu gizlemek istiyordu. İşi bilen bir junior frontend geliştirici olsaydı hemen “overflow-x: hidden; satırını nereye koyayım?” diye sorardı. Tam çözüm için tarayıcıda “Inspect element”e basıp CSS sınıfını bulmak, kodda (rip)grep ile yerini aramak ve bir satır eklemek yeterli
    Daha inisiyatif sahibi bir programcı ise boş metin kutusunda ne tür bir içerik olduğunu, taşmaya neden olan şeyin ne olduğunu, neden kök neden yerine sadece semptomu örten bir geçici çözümün iki yere eklenmesi gerektiğini, textareayı bir kez stil vermenin daha iyi olup olmayacağını sorardı
    [0] https://github.com/datasette/datasette-agent/commit/a75a8b72...

    • CSS ayrıntılarını düzeltmeden önce, neden çeşitli JavaScript’lerin içindeki statik CSS’nin __init__.py içinde saklandığını da sorabilirdi [0]
      Claude ile deneyimim genelde yapısı iyi kurulmuş kod üretmesi yönünde olduğu için bu aslında biraz şaşırtıcı. Ama ben bunu tam anlamıyla vibe coding’den ziyade, robot olan başka bir mühendisle dostane bir Sokratik tartışma yapmaya daha yakın görüyorum
      [0] https://github.com/datasette/datasette-agent/blob/main/datas...
    • Bu model, zaten iyi ölçeklenen kısımda, yani istenen işin uzunluğu ve karmaşıklığında sonuç veriyor gibi görünüyor. Ama şimdiye kadar iyi ölçeklenmeyen sağduyu, muhakeme ve yargı konusunda büyük bir ilerleme yok gibi
    • Kesinlikle doğru. Simon bu tür ufak işleri LLM’e devrederek, ek bilgiler üzerinden soyutlamaları değerlendirme ve iyileştirme fırsatını kaçırdı. Onun yerine ajanın 12 dolar harcayıp değişikliği yapmasına izin verdi ve sonuçta hiçbir şey öğrenmedi
    • Fable’ın kendi değişikliklerini doğrulama eğilimi var gibi görünüyor ve bu başlı başına çok iyi. Opus’un, Fable’ın promptsuz yaptığı şeyi yapmasını sağlamak için epey fazla prompt vermek gerekiyor
      Benim bir junior geliştiriciden beklediğim şey de tam olarak bu. Hatanın gerçekten var olup olmadığını doğrulaması, nasıl düzeltileceğini bulması ve hatanın düzeltilip düzeltilmediğini teyit etmesi
      Sorun ise, blog yazısında da doğru biçimde işaret edildiği gibi, daha yüksek ayrıcalık gerektiğinde durup sormak yerine durmadan kendi başına hackvari geçici yollar araması. Bunu insan geliştiriciye uyarlarsak, üçüncü taraf sandbox erişimi gerekiyor ama kıdemliden gerekli kimlik bilgilerini istemek yerine kendi sandbox’ını sıfırdan kurmaya kalkışması gibi
    • Açıkçası bu, her türlü dürtüyü aşırı gelirleştirme biçimi gibi görünüyor
      Eskiden çevrimiçi dünyaya bağlanırken dakika başına ücret ödediğimiz zamanları hatırlatıyor. Sayacın dönmeye devam etmesini sağlamak için çok fazla teşvik vardı; bu da o türden bir şey gibi geliyor bana
  • “Kodlama ajanlarını sandbox dışında çalıştırmak her zaman kötü bir fikirdi” diye bunu açıkça kabul ederken yine de pek çok kişinin bunu yapmayı sürdürmesi hâlâ kafamı karıştırıyor ve beni şaşırtıyor
    Sanki yolcu koltuğunda oturup ayaklarını torpidonun üstüne koyduğu bir video paylaşıp “Kaza olursa airbag'in bacaklarınızı kırabileceğini ya da daha kötüsüne yol açabileceğini unutmayın! Bunun benim başıma gelmemiş olması ne büyük şans!” diyormuş gibi

    • İlginç bir örnek seçilmiş. Araba kullanmak, bütün güvenlik kurallarına uysak bile günlük olarak yaptığımız şeyler arasında neredeyse en riskli olanlardan biri. Yine de sonuçta faydanın riskten büyük olduğuna karar veriyoruz
    • Bugünlerde herkesten günde hallettiği işi 10 kat artırması isteniyor. O noktada güvenlik kontrolleri pencereden uçup gidiyor
    • Bunu birkaç aydır deniyorum ve dürüst olmak gerekirse, ajanın ne yapacağını tahmin etmek imkânsız değil
      Sorun, insanların prompt verme biçiminin fazla farklı olması
      Örneğin ben “bu X cluster'ında bu servisin k8s pod'unda bu annotation'ın çeşitli varyasyonlarını dene. Bu, Y teorisini kanıtlıyor” gibi bir istekte bulunabilirim. Ama bir ekip arkadaşım “Y teorisini test et” der. Bunu iki junior mühendise sorsanız, biri production ortamında rastgele şeyler denerken diğeri local test çalıştırabilir. Bu, “istediğini yap ama öğren” tarzı bir yönsüz istek ve ajan bunu, sınırlar kendisine aktarılmamış ama “öğren” baskısı güçlü şekilde verilmiş bir junior gibi okuyor
    • Etkili bir sandbox'ınız olduğunu düşünürken, o sandbox içindeki ajanın tüm koda, GitHub'a ve sınırsız web erişimine sahip olması da ayrıca kafamı karıştırıyor
    • VM çözümünün var olduğunu biliyorum ama ben ayrı bir OS kullanıcı adı olarak claude kullanmaktan memnunum
      Dotfile'larımın benzeri var ama gizli değerler yok. Home dizinim 0700, claude ayrı SSH anahtarlarına sahip ve bunları GitHub profilime ekledim ama parola korumalı; push/pull işlemlerini ben yapıyorum. Ayrı bir Postgres geliştirme/test kullanıcısı ve veritabanı da var, süper kullanıcı değil
      Yani ona projedeki diğer geliştiricilerden biri gibi davranıyorum. sudo ile bir şey çalıştırması gerekirse bana soruyor. Bazen aynı işi paralel şekilde ikimiz de yapabiliyoruz. Zaten Unix baştan beri çok kullanıcılı bir sistem olmalıydı
      Sık kullandığım bir numara, onun git depolarında şöyle ek bir remote bulundurmak:
      paul ssh://paul@localhost/~/src/example (fetch)
      paul ssh://paul@localhost/~/src/example (push)
      Böylece henüz paylaşmaya hazır olmadığım şeylerde birlikte çalışmak kolaylaşıyor
      Bu kurulum oldukça rahat hissettiriyor. Yine de Linux yetki yükseltme açıkları beni endişelendiriyor. Yapay zekanın exploit kullanımına izin verilmediğini gerçekten anladığına güvenmiyorum. İlk işimde acil bir durumda, resmî olarak httpd.conf düzenlemeyle sınırlı sudo yetkisini genişletmek için vim'in :! özelliğini yanlış kullandığım bir anı aklıma geliyor. Artık otomatik güvenlik güncellemeleri olsa da paketleri elle daha sık yükseltiyorum. Opus'un güvenlik açıklarını araştıracak kadar uğraş vereceğini sanmıyorum ama Fable yapabilir ve son zamanlarda böyle açıklar çoktu. Gelecekteki modeller kendi başına yeni açıklar bulabilir ya da SSH anahtarı parolasını öğrenmeye çalışmak için keylogger kurabilir
      Ayrı kullanıcı, ayrı makine hariç duyduğum en paranoyak kurulumlara yakın. Bu yüzden hız ve kullanım kolaylığından fazla mı ödün veriyorum diye de düşünüyorum. Yine de pratikte hâlâ çok kullanışlı ve verimli olduğu kadar sorumlu bir yaklaşım gibi geliyor. Bir açık görüyorsanız duymak isterim
  • Fable, “sorunun düzeldiğinden emin olana kadar durmasına izin verilmeyen bir harness üzerinde çalışan Opus” gibi hissettiriyor. Benchmark'ta daha iyi bir model istiyorsanız mantıklı bir yön
    Çok iyi bir model ama primi yüksek. Sadece token'ların kendisi daha pahalı değil, model o token'ların hepsini de kullanmak istiyor. Örneğin React Native işlerinde Fable “tamam, yaptım ve bitti” demiyor. Uygulamanın tamamını baştan yeniden build ediyor, tüm test paketini çalıştırıyor, bütün log'ları ve uyarıları izlemeye çalışıyor
    LLM kullanırken ilk kez, şirket izin verse bile model yükseltmenin değmeyeceğini hissettim. Çünkü build ve test süreçleri makinemle bataryamı o kadar zorluyor ki başka iş yapamıyorum
    Şu an için Opus üzerinde ultracode kullanmak daha iyi görünüyor. Ana context daha az kirleniyor ve araştırma da daha paralel ilerliyor

    • low/medium effort ayarı bunu çözmüyor mu? Fable 5 low, Opus 4.8 high/xhigh'dan daha sık daha iyi oluyor gibi ve çok daha az token harcıyor gibi görünüyor
    • Benim deneyimim tersiydi. Elbette çok sayıda alt ajan kullanıyorum ama birkaç saat çalıştırdığımda, eskiden opus4.6-8 kullandığımdan çok daha az token tükettiği oldu
    • Hangi ortamda hangi ayarla çalıştırdığınızı merak ediyorum. Ben VSCode eklentisini Extra High'da kullanıyorum ve istenen iş için gerekeni tam olarak yapıp bitince duruyor gibi geliyor. Ek yorumlar da yalnızca değiştirilen kod bölgesiyle ilgili olduğunda geliyor
    • Yeni high effort ayarı o kadar güçlü ki, iş için gerekli değilken seçildiğinde çıktı kalitesini ters yönde etkiliyor gibi görünüyor
    • Bu tür proaktiflik teoride hoşuma gidiyor ama dediğiniz gibi pahalı. Acaba uygun bir prompt ile çözülebilir mi diye merak ediyorum. Mesela “kısıtlar bunlar. Sadece x'i çöz. Eğer görevin bu kısıtların dışında kaldığından emin değilsen önce bana sor” gibi
  • Fable oyunumdaki UI değişikliklerini doğrulamaya çalıştı. Ben başka bir pencerede çalışıyordum ama görev çubuğunda programın açıldığını gördüm. Fable, CLI'dan movie maker aracıyla oyunu açtı, çıktıyı kaydetti ve son frame'i yakalayıp UI'ı doğruladı. Oyunun karşılama ekranı görmek istediği kısmı kapatınca geçici bir worktree oluşturup karşılama ekranını kaldırdı, sonra movie maker'ı yeniden çalıştırdı
    Süreci izlerken, benden bir ekran görüntüsü istemiş olsa token tasarrufu yapardı diye düşündüm. Yine de etkilenmemek elde değildi. Opus olsaydı bunu asla yapmazdı

    • Modelin durmaksızın proaktif davranmasının temel sorununu tam yakalamışsınız. İnsana ekran görüntüsü çekmesini ya da bir düğmeye basmasını sormamak için 5 dolarlık token yakmayı gayet isteyerek yapıyor
    • Bunu doğrudan söylemeniz yeterli. Benim de başıma gelmişti ama incelemeyi bana bırakmasını söyledikten sonra Fable, büyük token kullanımı olmadan saatler boyunca frontend yineleme işlerinde faydalı oldu
  • Bu tür yazılar bana sanki paralel bir evrenden gelmiş gibi hissettiriyor. Kendi anekdotsal deneyimime ve hâlâ öznel olsa da bizzat hazırladığım benchmark’a göre (https://pshirshov.github.io/llm-bench-pi-oneshot/) Fable o kadar da etkileyici değil
    Bazen gpt-5.5 ve opus 4.8 seviyesinde daha iyi, bazen daha kötü; ayrıca kesinlikle daha pahalı ve React sorularında kimya konusunda yardımcı olamayacağını söyleyerek reddedebiliyor
    Bu yaygaranın gerçekten temelli olup olmadığını, yoksa IPO öncesi AGI abartısı mı olduğunu bilmiyorum

    • Çıkışından beri Fable’la yaşadığım deneyim Simon’ın deneyimiyle örtüşüyor
      Fable’a karmaşık implementasyonları koordine ettiriyorum. Linear’daki üst seviye ticket’ları verip “bu ticket’ın alt issue’larına bak, hangilerini doğrudan senin implemente edebileceğine, hangi sırayla yapılmaları gerektiğine ve diğer takım arkadaşlarının hâlihazırda üzerinde çalıştıkları şeylerle nasıl koordine edilmesi gerektiğine karar ver” diyorum. Bu ticket’lar önemsiz şeyler değil; çok sayıda hareketli parça ve bağımlılık içeriyor, aynı projenin içinde ve dışında, örneğin backend’le de bağlantılı oluyor
      Sonra Fable ticket’ları seçiyor ve her ticket’ı alt ajanlara (yine Fable) devrediyor. Alt ajanlar ilgili ticket’ın Figma tasarımına bakıyor, repository rehberlerine ve teamüllerine titizlikle uyarak kusursuz şekilde implemente ediyor, her parçanın ekran görüntüsünü alıyor, ayrıntılı commit mesajları ve PR açıklamaları yazıyor ve kanıt olarak ekran görüntülerini ekliyor. En sonunda da “Önce PR #1283 merge edilmeli. Bu arada şu ve şu ekranların Figma tasarımı yoktu ama mevcut benzer ekranlara bakıp aynı deseni uyguladım” gibi bir özet veriyor
      Bu muhtemelen Fable’ın yapabildiklerinin %20’si civarında. Gerçekten güçlü bir model
      Opus 4.8 de bunların çoğunu yapabiliyordu ama çok daha fazla yönlendirme istiyordu ve tıkandığı bir noktaya gelirse “buraya kadar gelebildim ama daha fazla ilerleyemiyorum” deyip durma ihtimali yüksekti
  • Fable biraz daha akıllı, ama tam da bu yüzden genel olarak daha kötü bir araç gibi geliyor
    Tek bir prompt’la bitecek 50 satırlık bir patch işini sürekli 30 dakikalık bir keşfe çeviriyor ve çoğu zaman buna hiç değmiyor. Hatta sık sık yanlış da yapıyor
    Bunu oldukça basit bir işle test ettim. Hash fonksiyonu değiştiğinde redis dedup cache’ini backfill etme işiydi. Yapılması gereken, tüm DB değerlerine yeni hash fonksiyonunu çalıştırıp cache’i genişletmekti; ama Fable, her cache değerinin hash fonksiyonu sürümünü tahmin etmeye ve sadece eski hash’leri yeniden hesaplamaya çalışan gereğinden fazla karmaşık bir cache güncellemesi implemente etti. Bazı bağlamlarda mantıklı olabilir ama 30 dakika boyunca token yakmanın sonucu, benim 10 satırlık bir for döngüsüyle değiştirdiğim kod oldu
    Programlama genelinde bu bana kötü haber gibi geliyor. LLM teknolojisinin zekâ açısından azalan getiri duvarına çarptığı gayet açık görünüyor; buna verilen karşılık onları sadece daha inatçı hâle getirmekse, bununla ilgili herkes için berbat bir çözüm. Token satanlarla 0-day taramak için gereken token’ları karşılayabilenler hariç tabii

    • Bence LLM’ler ve ajanlarda muhtemelen asla düzelmeyecek iki sorun var
      Birincisi, nedensel bir model yok. Yapabildikleri şey sadece deneme-yanılma araması ve bu birçok problemde oldukça iyi işliyor ama pek çok başka problem nedensel bir model gerektiriyor
      İkincisi, prompt’lar hassas değil. Programlama dilleri ve makine modelleri zaten tam olarak bu sorunu çözmek için icat edildi. İngilizce harika ama bir programlama dili değil
    • İçeride bunun zaten çok önceden azalan getirilere ulaştığını biliyorlardı diye düşünüyorum
      IPO öncesinde çok sayıda stratejik benimsetme ve manipülasyon yaptılar ve o açıdan işe de yaradı
    • Birkaç gün önce CC ile 15-20 dosyada tam olarak aynı türden bir değişiklik yapıyordum; yani belirli bir fonksiyonu component gövdesinin dışına taşımak. Yapılması gereken sadece dosyaları düzenlemekti ama birkaç ajan başlattı; içlerinden biri tüm dosyaları bulup regex’le değiştiren bir perl script’i yazdı. Sonra hata kontrolü için sadece tsc çalıştırmak yeterliyken, her alt ajanda tsc çalıştırıp sonuçları birleştiren başka bir script daha yazdı
      Gerçekten sinir bozucuydu. En fazla 1-2 dakikada bitecek iş, o yolu izlediği için yaklaşık 10 dakika sürdü
      Daha sonra çok daha karmaşık işler deneyeceğim ama basit şeylerde posta kutusuna Corvette’le gitmek gibiydi
  • Kendi lokal makinemde terminal tabanlı LLM kullanmama yönündeki isteksizliğimin sürekli haklı çıktığını hissediyorum
    Kötü niyetli bir davranışta bulunmasa bile, kayda değer miktarda iş kaybına yol açabilecek ya da makinemle birlikte çalışma kapasitemi de mahvedebilecek çok fazla şey var

    • Bunu sandbox’ta çalıştırmanın varsayılan bir yolunun olmaması şoke edici
      1 trilyon dolarlık bir şirketin bunu nispeten kolay sağlayabilmesi gerekmez mi? Tüm harness’in yanında küçük bir iş gibi görünüyor
  • Güvenliğin daha büyük mesele olduğu açık ama bunu okurken aklımdan tek geçen, 2 satır CSS düzeltmek için ne kadar token harcandığı oldu

    • Bir bug fix’in satır sayısı, gereken çabayı tahmin etmek için gerçekten kötü bir vekil ölçü
      Tahmin edilmesi gereken, bunun bir insanın ne kadar zamanını alacağı
    • Basit. 2 satır CSS düzeltecekseniz Fable kesinlikle kullanmamalısınız. Sadece karmaşık ve uzun süren işler için kullanılmalı
    • Kabaca 12 dolar civarı gibiydi
    • Yazar bir yapay zeka abartı satıcısı ve token maliyetini cebinden ödemiyor
    • Ben bu LLM fanatiklerinden daha hızlıyım. LLM kullanmanın daha hızlı olduğuna ikna olmuş değilim. Boilerplate belki istisna olabilir ama onun da ne kadar önemli olduğu tartışılır
      İnsanlar artık tembel olup yine de üretken görünmeyi başarıyor; ama bu hâlâ tembellik
      Artık tek bir e-posta yazmak için yüz binlerce dolarlık donanıma erişim iznine ihtiyaç duyan insanlar var. Ben almayayım. Milyarderlerin düşünme makinesine bağımlı hâle gelmek için beynimi yakmak istemiyorum
      Lokal bir “benim yerime düşünen makine” için de beynimi yakmayacağım. Erişebildiğim donanımdan daha değerli bir insan olmak istiyorum
  • Fable 5’in kendi tarzında hareket ettiği kişisel deneyimim çok olumluydu
    Loglara ya da konsola hata bırakmayan bir Python modülü çökmesinin kök nedenini bulmaya çalıştı. Fable, UI tıklamalarını simüle eden bir test harness’i yazdıktan sonra, kodum üzerinde ikili arama yaparak çöküşün başladığı noktayı buldu. Ardından çöküş nedenine dair abartılı bir hipotez kurup, /tmp altında ilgili Python modülünün her sürümü için sanal ortam oluşturan tek satırlık bash komutlarını art arda çalıştırarak çökme yaşanmayan sürümü buldu
    Ben tek başımayken yapabildiğimden çok daha derine inerek kök nedeni izledi ve nedenin heap allocation overflow’a yol açan bir modül regresyonu olduğu ortaya çıktı. Hata raporu göndermeye yetecek kadar bilgi ve sadeleştirilmiş bir örnek sundu; ayrıca bunun uygulamamda yaşanmaması için bir geçici çözüm de yazdı
    Tamamen serbest bırakmıyorum. Çalıştırmak istediği her CLI komutunu ben gözden geçiriyorum ve benzer şekilde, ben “yes” ile devam ederken aşırı token kullanımını önlemek için yanıtıma eklemeler yapıyorum

    • Fable’ın zorlu bug debugging işlerinde gerçekten iyi olduğunu düşünüyorum
      Prompt’ta veya Markdown’da sınırlar koymak yardımcı oluyor. Örneğin web browser otomasyonu kullanmamasını söylerseniz, Fable’ın hem bu kurala hem de niyetine uyduğunu gördüm. Garip hack’ler de yapmadı
      Yine de bazı basit debugging işlerini gerçekte olduğundan daha karmaşık ele alıyor gibi görünüyor. Sanırım asıl gönderi buna iyi bir örnek
    • Python modülünün loglara ya da konsola hata bırakmadan çökmesinin nedenini bulmak için, UI tıklamalarını simüle eden testler oluşturmak ve git bisect döngüsü çalıştırmak adına gerçekten bir ajana ihtiyaç olup olmadığı soru işareti
      Test case ve git bisect döngüsü üretmesini anlayabiliyorum ama bunun neden internet ve GPU gibi şeyler üzerinden çalıştırılması gerektiğini anlamıyorum. Tek çekirdekli bir Celeron’da da çalışabilecek bir iş değil mi?