50 Tool'dan 3 Write Channel'a
Nisan 2026
Osistan'ı — ekibim için bir AI operasyon asistanı — ilk kez inşa ettiğimde, ona 50 tool verdim. Veritabanlarını sorgulayabilir, Slack mesajı gönderebilir, görev oluşturabilir, wiki'leri güncelleyebilir, e-postaları çekebilir, raporlar üretebilirdi ve daha fazlası. Aklıma gelen her yeteneği tool olarak açığa çıkardım.
LLM, zekasının büyük bölümünü hangi tool'u çağıracağına karar vermek için harcıyordu.
Sorun
Sistem promptunda 50 tool varken, model aynı anda iki iş yapıyordu: kullanıcının ne istediğini anlamak ve karmaşık bir tool seçim labirentini gezmek. Sonuç tahmin edilebilirdi — yanlış tool'u seçiyor, gereksiz tool çağrısı yapıyor ya da bir tool yeterliyken birden fazlasını zincire bağlıyordu.
Bedel sadece doğrulukta değildi. Her tool'un kendi parametre şeması, validasyon mantığı ve hata yönetimi vardı. Kod tabanı büyüdü. Debug etmek zorlaştı. Yeni bir yetenek eklemek, yeni bir tool, yeni bir şema, yeni bir edge case seti eklemeye dönüştü.
İçgörü
Fark ettim ki LLM'in dünyaya etki etmek için 50 farklı yola ihtiyacı yoktu. Net düşünmesi ve niyetini minimal bir arayüz üzerinden ifade etmesi gerekiyordu.
Kafama oturan analoji şuydu: bir insan operatörün 50 düğmeye ihtiyacı yok. Bir klavyeye ihtiyacı var. Klavye genel amaçlı — önemli olan ne yazdığın.
Üç Write Channel
Tüm tool yüzeyini üç kanala indirgedim:
db_write(entity, operation, data) — Tüm veritabanı mutasyonları. Görevler, wiki sayfaları, bilgi tabanı kayıtları, hatırlatmalar. Entity ve operation alanları ne olacağını belirliyor. LLM'in veritabanı şemasını bilmesine gerek yok — niyetini ifade ediyor, deterministik bir katman yönlendiriyor.
slack_send(target, message, blocks) — Tüm iletişim. DM'ler, kanal mesajları, thread yanıtları, reaksiyonlar. Tek kanal, her şey için yeterince esnek.
file_create(filename, content) — Raporlar, dışa aktarmalar, üretilmiş belgeler.
Geri kalan her şey — cron job'lar, e-posta parsing, son tarih hesaplamaları, veri çekme — LLM'i hiç dahil etmeyen deterministik bir katmanda çalışıyor.
Ne Değişti
LLM, tool seçim motoru olmaktan çıkıp düşünme motoru olmaya başladı. Yanıt kalitesi anında iyileşti. Model, context penceresinin tamamını kullanıcının isteğini anlamaya ve düşünceli bir yanıt oluşturmaya odaklayabildi; tool labirentinde gezinmek yerine.
Debug etmek kolaylaştı. Her LLM eylemi üç kanaldan birinden geçiyor, dolayısıyla her yan etki izlenebilir. Deterministik katman tüm veri çekme ve hesaplamayı yönetiyor, bu yüzden var olmayan veriler hakkında hallucination yok.
Maliyet de düştü — sistem promptunda tool şemalarına harcanan token daha az, yanlış tool seçiminden kaynaklanan retry daha az.
Sonuç
Daha fazla tool, daha fazla kapasite anlamına gelmiyor. Model için daha fazla karmaşıklık ve senin için daha fazla karmaşıklık anlamına geliyor. Doğru soyutlama, LLM'in iyi olduğu şeye — niyet anlamak ve yapılandırılmış çıktı üretmek — odaklanmasını sağlarken her şeyi deterministik tutan soyutlamadır.
Osistan şu an bir Raspberry Pi 5 üzerinde 7/24 çalışıyor, 8 kişilik bir ekibe ayda ~$40'a hizmet veriyor. 3 kanallı mimari, production'a yetecek kadar güvenilir olmasının nedeni bu.