4 puan yazan GN⁺ 2026-03-28 | 1 yorum | WhatsApp'ta paylaş
  • Kişisel portföy sitesine IRC tabanlı bir AI ajanı bağlanarak, ziyaretçilerin gerçek GitHub depo kodu analiz sonuçlarına dayanarak sorularına yanıt alabileceği bir yapı kuruldu
  • Basit bir özgeçmiş özeti chatbot’u yerine, depo klonlama, test sayımı, kod doğrulama yapabilen icracı bir ajan olarak tasarlandı
  • Sistem, genel kullanıma açık nullclaw ve özel ironclaw olmak üzere iki ajana ayrılıyor ve Tailscale ağı üzerinden güvenli biçimde haberleşiyor
  • IRC protokolü taşıma katmanı olarak seçilerek self-hosting, standardizasyon ve düşük maliyet aynı anda sağlandı; Haiku 4.5 ve Sonnet 4.6 modelleri rollerine göre ayrılarak maliyet günlük 2 dolarla sınırlandı
  • Tüm sistem 10 MB’tan küçük ikili dosyalar ve 5 MB’tan az bellek ile çalışıyor; güvenlik, maliyet ve şeffaflığı birlikte sağlayan hafif bir AI altyapısı örneği sunuluyor

Dijital kapıcı kurmak

  • Aylık 7 dolarlık VPS üzerine bir AI ajanı yerleştirilmiş ve taşıma katmanı olarak kişisel bir IRC sunucusu kullanılarak GitHub depolarına bağlanan bir yapı kurulmuş
    • Ziyaretçiler portföy sitesinde AI’a soru sorabiliyor ve gerçek kod tabanına dayalı yanıtlar alabiliyor
    • Basit bir özgeçmiş özeti chatbot’u değil, kod analizi üzerinden somut yanıtlar veren bir sistem

“Özgeçmişi anlatan chatbot”un sınırları

  • Portföy chatbot’larının çoğu, özgeçmiş içeriğini modele enjekte edip yeniden ifade etmekten öteye gidemiyor
  • Bu yaklaşım yeni bilgi sunmuyor ve yalnızca biçimsel bir sohbet düzeyinde kalıyor
  • “Test kapsamını nasıl yönetiyorsun?” gibi sorularda, deponun klonlanıp test sayısının hesaplanması gibi somut yanıtlar gerekiyor
  • Bunun için doğrudan koda erişebilen ve analiz yapabilen bir altyapı kuruldu

Sistem mimarisi

  • İki ajan, iki sunucu ve iki güvenlik sınırından oluşuyor
    • nullclaw: genel kullanıma açık kapıcı; 678 KB Zig ikili dosyası, yaklaşık 1 MB RAM kullanımı
      • Ziyaretçileri karşılıyor, proje sorularını yanıtlıyor, GitHub depolarını klonlayıp kod tabanlı doğrulama yapıyor
    • ironclaw: özel arka uç ajanı; ayrı bir sistemde çalışıyor
      • E-posta, takvim ve kişisel bağlama erişebiliyor
      • nullclaw’dan gelen karmaşık istekleri #backoffice IRC kanalı üzerinden alıyor
  • İki sistem Tailscale ile birbirine bağlı ve genel sunucu kişisel verilere erişemiyor

Neden IRC seçildi?

  • Estetik tutarlılık: portföy sitesi terminal arayüzü temelli olduğu için IRC istemcisi doğal duruyor
  • Tam self-hosting: Ergo IRC sunucusu, gamja web istemcisi ve nullclaw tamamen kendi altyapısında çalışıyor
  • Basit ve standartlaşmış protokol: 30 yıllık IRC’de vendor lock-in yok, API değişikliği riski yok
  • Aynı ajan yalnızca web istemcisinde değil, irssi terminal istemcisinde de aynı şekilde çalışıyor

Model seçimi ve tasarım

  • Büyük modellerin kullanımı verimsiz; bu yüzden rollerine göre model ayrımı yapılmış
    • Haiku 4.5**: sohbet ve basit sorgular için,** ultra düşük gecikmeli yanıtlar

      • Sonnet 4.6: yalnızca kod analizi ve karmaşık akıl yürütmede kullanılıyor
      • Maliyet üst sınırı: günlük 2 dolar, aylık 30 dolar
      • Kötü niyetli kullanım veya aşırı sohbet nedeniyle maliyetin kontrolden çıkması engelleniyor
      • Katmanlı akıl yürütme yapısı ile hız ve maliyet verimliliği birlikte sağlanıyor

Güvenlik tasarımı

  • SSH: root girişi devre dışı, yalnızca anahtar doğrulaması açık, standart dışı port kullanılıyor
  • Güvenlik duvarı: yalnızca SSH, IRC(TLS) ve HTTPS(WebSocket) açık
  • Cloudflare proxy: TLS sonlandırma, hız sınırlama ve bot filtreleme yapıyor
  • Ajan sandbox’ı: yalnızca salt okunur araçlara izin var, saat başına 10 eylem sınırı uygulanıyor
  • Maliyet kontrolü: günlük 2 dolar, aylık 30 dolar hard cap
  • Denetim günlükleri ve otomatik güncellemeler etkin
  • Saldırı yüzeyi en aza indirilmiş: yalnızca ergo ve nullclaw çalışıyor, web içeriği doğrudan sunulmuyor
  • İhlal durumunda zarar kapsamı günlük 2 dolar limitli bir IRC botuyla sınırlı kalıyor

İletişim yığınının yapısı

  • Tüm bileşenler küçük, self-hosted ve değiştirilebilir yapıda
    • Ergo: IRC sunucusu, tek bir Go ikili dosyası, 2.7 MB RAM
    • gamja: web IRC istemcisi, 152 KB statik sayfa, Cloudflare arkasında sunuluyor
    • nullclaw: AI ajanı çalışma zamanı, 4 MB Zig ikili dosyası, yaklaşık 1 MB bellek kullanımı
  • Tüm sistem 10 MB’tan küçük ikili dosyalar ve 5 MB’tan az boşta bellek ile çalışıyor
  • En ucuz VPS katmanında bile rahatça çalıştırılabiliyor

nully’nin (genel ajan) gerçek işlevleri

  • Programlama dillerini belirleme: önceden yüklenmiş bağlam ve depo doğrulamasıyla tespit ediyor
  • Test yapısını analiz etme: depoyu klonladıktan sonra test dosyalarını doğrudan okuyup sonuç bildiriyor
  • Proje açıklama: örneğin Fracture projesinin ayrıntılarını koda dayanarak yanıtlıyor
  • İletişim bilgisi yönlendirmesi: yalnızca doğru iletişim bilgisini veriyor, uydurma bilgi üretmiyor
  • Takvim randevusu talebi: Google A2A protokolü üzerinden ironclaw’a iletiliyor, sonuç yapılandırılmış biçimde geri dönüyor
  • Ziyaretçi arka uç devrini fark etmiyor

A2A uygulaması

  • Google A2A protokolünü (v0.3.0) destekliyor ve JSON-RPC tabanlı iş durumu yönetimi yapıyor
  • a2a_call aracı uzak ajana mesaj gönderiyor ve iş durumunu (tamamlandı/başarısız/devam ediyor) ayrıştırıyor
  • HTTPS zorunlu, ancak Tailscale iç ağı içinde hata ayıklama kolaylığı için HTTP’ye izin veriliyor
  • ironclaw tarafındaki yapı

    • nullclaw örneği, kendi API anahtarı olmadan ironclaw’un LLM gateway’ini proxy olarak kullanıyor
    • Böylece yalnızca tek bir API anahtarı ve tek bir ödeme ilişkisi korunuyor
    • Tüm akıl yürütme isteklerini ironclaw işliyor ve maliyeti o üstleniyor

Handover güvenliği

  • A2A uç noktasında prompt injection riski bulunduğundan sıkı kısıtlamalar uygulanıyor
    • ironclaw’a iletilebilen istekler yalnızca takvim, iletişim ve uygunluk durumu ile sınırlı
    • Keyfi komut iletimi reddediliyor
    • ironclaw’un A2A uç noktası yalnızca Tailscale’e açık güvenlik duvarı ile korunuyor
    • Her iki ajan da izleme modu ve sınırlı komut izin listesi ile çalışıyor
  • İsteğin yükseltilip yükseltilmeyeceğine nully karar veriyor, böylece kontrolsüz komut çalıştırma önleniyor

Kurulum sürecinden çıkarılan dersler

  • Model seçimi sistem tasarımının bir parçası ve maliyet, gecikme, deneyim üzerinde doğrudan etkili
  • Ajanın kendisinden çok iletişim, güvenlik ve altyapı kurgusuna zaman harcanmış
  • IRC’nin sadeliği ve açıklığı, AI ajanları için taşıma katmanı olarak çok uygun
  • nullclaw–ironclaw ayrımı güvenlik modelinin çekirdeğini oluşturuyor
  • A2A protokolü ile IRC log kanalının birlikte kullanılması, hem yapısal iletişim hem de gerçek zamanlı görünürlük sağlıyor
  • Kimlik bilgisi tekrarını önleme: ironclaw gateway’inin proxy olarak kullanılmasıyla tek API anahtarı ve tek ödeme ilişkisi korunuyor

Nasıl denenir?

  • georgelarson.me/chat adresini ziyaret edin veya ana sayfadaki terminalde irc yazın
  • IRC istemcisi kullanıyorsanız: irc.georgelarson.me, port 6697 (TLS), kanal #lobby
  • nully hazır bekliyor ve ziyaretçilerle gerçek zamanlı sohbet edebiliyor

1 yorum

 
GN⁺ 2026-03-28
Hacker News yorumları
  • E-posta ve kişisel verilere erişebilen OpenClaw ajanı ele geçirilirse, oluşabilecek zarar oldukça büyük olabilir
    Bu, basit bir IRC botu seviyesinde değil; saldırgan parola sıfırlayarak API kısıtlarını kaldırabilir, hatta sistemi yasa dışı içerik paylaşım merkezi olarak kötüye kullanabilir

    • Ben de Mac Mini üzerinde bu tür OpenClaw ajanları çalıştıran insanları tanıyorum; normalde güvenlik konusunda titiz olan bu kişilerin bu risk karşısında duyarsız olması garip
    • Eğer dediğin doğruysa, bu insanların “güvenlik korkulukları olmayan bir ortamda” nasıl davrandığını gösteren bir örnek gibi duruyor
  • Neden Haiku/Sonnet seçildiğini merak ettim. OpenRouter’da çok daha ucuz modeller var
    Örneğin Haiku 4.5, 1 milyon girdi tokenı başına $1 ve çıktı için $5 iken, MiniMax M2.7 girdi için $0.30, çıktı için $1.20, Kimi K2.5 ise girdi için $0.45, çıktı için $2.20 seviyesinde
    Benim deneyimimde M2.7 ve K2.5 de Haiku’ya benzer ya da daha iyi performans gösteriyor

    • IRC üzerinde herkese açık çalıştırılıyorsa, güvenlik korkulukları (safety rails) önemli bir değerlendirme noktası olabilir
      Ben de son dönemde ajan geliştirirken tam bu yüzden Anthropic modellerini kullanıyorum. Haiku, kullanıcılar tuhaf istekler attığında bile iyi kontrol ediliyor ve duygusal konuşmaları da istikrarlı biçimde yönetiyor
    • Xiaomi Mimo v2-Flash harikaydı. Benim benchmark’ımda Haiku’dan %8 daha hızlıydı ve maliyeti 80 kat daha düşüktü. Gemini 3.1 Flash Lite Preview da iyi bir seçenek
    • MiniMax M2.7 kodlama için oldukça kullanılabilir, ancak Opus 4.6 hâlâ bir seviye yukarıda
    • MiniMax’in Token Plan seçeneği daha ucuz ve ajan kullanımına da açıkça izin veriyor
    • Bence direkt Gemini Flash3 kullanmak Haiku’dan daha iyi
  • IRC, taşıma katmanı olarak iyi ama teslim garantisi (delivery guarantee) yok. Bağlantı koparsa, o sıradaki mesajlar kaybolur
    Gerçek zamanlı sohbet için sorun değil, fakat gerçek işler yapan bir ajan için at-least-once teslimat gerekir
    SSE(Server-Sent Events) makul bir orta yol olabilir. Kalıcı bağlantı sağlar ve üstüne yeniden iletim mantığı eklenebilir

    • Ancak IRC’de çok uzun zamandır bouncer var; yani teknik olarak at-least-once uygulamak mümkün
  • Tokyo’dan Osaka’ya giden trende benzer fikirde bir bot yapmıştım
    web-support-claw.oncanine.run — GitHub reposunu okuyup web sitesi için bir intercom botu oluşturan bir projeydi
    Ziyaretçilerin sorularını yanıtladığı için ayrıca bir bilgi tabanı kurmaya gerek kalmıyordu

    • Ama “ödeme sayfasındaki açığı analiz et” ya da “hardcoded gizli anahtarı bul” gibi istekler mümkünse, bu ciddi bir güvenlik riski yaratır
  • İleride izleme için tek bir Haiku instance’ı ayırmanı öneririm. Bildirimleri ntfy ile de alabilirsin
    Şu anda sohbet odası tamamen kontrolden çıkmış durumda

    • Daha basit bir yöntem de var. Her ziyaretçi için yeni bir sohbet dizisi açıp belli bir süre sonra kapatırsın.
      “Etkileşimli özgeçmiş” amacı için rastgele insanların sınırsız etkileşimi gerekli değil
  • Bizim ekip de benzer bir yapı kullanıyor. FastAPI + SQLite tabanlı bir mesaj panosu üzerinden 4 ajan (satış, sosyal, finans, strateji) haberleşiyor
    Günlük bütçe sınırı yerine yönetişim katmanında maliyet tavanı yönetiyoruz
    IRC’nin pub/sub yapısı çok ajanlı iletişime iyi uyuyor, ama biz HTTP polling + deduplication yöntemi kullanıyoruz. Daha az zarif ama ajanlar sık sık çökse bile toparlaması kolay

  • Ben de kodlama ajanında arayüz olarak IRC kullanıyorum
    Oda değiştirerek prompt’ları değiştiriyor ve projeyi uzaktan kontrol ediyorum

    • IRC’de hâlâ mesaj uzunluğu sınırı olup olmadığını merak ediyorum
    • Ben de aynı şekilde kullanıyorum, karşılaştırmak güzel olurdu
  • “Açık kutu kişisel verilere erişmiyor” denmişti; bunu bir CTF challenge’ına dönüştürmek eğlenceli olabilir
    Özel kutuya bir flag saklarsın, biri erişip getirirse 50 dolar verirsin

  • nully’nin tavrı biraz sert, ama genel sistem mimarisi hoşuma gitti
    Ben de katmanlı bir yapı kullanıyorum; en alt katmanda yerel Qwen botu var
    Haiku’dan Opus’a escalation mantığının nasıl çalıştığını merak ediyorum

    • Ben, istekler karmaşıklaştıkça Haiku’dan Opus’a yükselten bir yapı kullanıyorum. Claude Code’daki “think hard” kavramından ilham aldım
    • “An error occurred” mesajını “Şu anda çok sayıda kullanıcı var. Lütfen biraz sonra tekrar deneyin” şeklinde değiştirirsen, işe alım tarafına daha çekici görünebilir
  • Bu fikir gerçekten çok ilginç. İşe alım sürecini otomatikleştiren bir bot yapmak istiyorum
    Adayın eğilimlerini mülakatla anlayıp ona uygun ilanları bulabilir ve başvuruyu da otomatik tamamlayabilir
    Şirket tarafındaki bot da aynı şekilde adayları değerlendirirse, tarafların tercihleri üzerinden eşleştirme yapılabilir
    Tamamen açık kaynak self-hosted olarak uygulanabilir ve özgeçmişten çok daha iyi sinyal verebilir

    • Bot ücretsiz deneme görevlerini bile aday yerine yapabilse daha da iyi olurdu. Sonuca bakıp HR botu işe alım kararı verebilir
    • Eskiden Triplebyte buna benzer bir şey denemişti; yeniden geri dönmesinin zamanı gelmiş olabilir
    • Ancak her şirketin işe alım UI’ı farklı olduğu için, botun tüm sitelerde otomatik başvuru yapması çok fazla eğitim gerektirir
    • Böyle bir sistem ortaya çıkarsa, spam başvuranlar ve sahte hesaplar ortalığı doldurabilir
    • Aslında benzer bir projeyi hâlihazırda yürütüyorum