1 puan yazan GN⁺ 4 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • Apache Burr, basit chatbotlardan karmaşık çoklu ajan sistemlerine kadar karar verme odaklı yapay zeka uygulamalarını Python ile kurmak için bir framework'tür
  • Uygulamalar, aksiyonlar ve geçişler kümesi olarak tanımlanır ve DSL ya da YAML olmadan Python fonksiyonları ve dekoratörleriyle yazılır
  • Burr UI, yürütmenin her adımı için izleme·hata ayıklama·takip sunar ve durum değişiklikleri gerçek zamanlı olarak görülebilir
  • Durum disk, veritabanı ve özel backend'lerde saklanabilir; kesinti noktasından devam edilebilir; ayrıca insan girdisi bekleme ve paralel yürütme de desteklenir
  • OpenAI, Anthropic, LangChain, FastAPI, PostgreSQL gibi mevcut araçlarla entegre olur ve vendor lock-in ya da wrapper gerektirmeden kullanılabilir

Güvenilir yapay zeka ajanları ve uygulamaları oluşturma

  • Apache Burr, karar verme yapan uygulamaların geliştirilmesini kolaylaştıran bir Apache Incubating Project'tir
  • Kapsamı, basit chatbotlardan karmaşık çoklu ajan sistemlerine kadar uzanır
  • Uygulama yaklaşımı saf Python'dır ve “no magic” anlayışını öne çıkarır
  • Açık metriklerde GitHub Stars 1,641, PyPI Downloads 379k+, Discord Members 457+ gösterilmektedir

Basit ve güçlü Python API

  • Burr, chatbotlardan çoklu ajan sistemlerine kadar kurulabilen birleştirilebilir bir arayüz sunar
  • Örnek kod, burr.core içindeki action, State, ApplicationBuilder kullanılarak chat aksiyonunu tanımlar
  • @action(reads=["messages"], writes=["messages"]), hangi durumun okunacağını ve yazılacağını belirtir
  • ApplicationBuilder(), aksiyonları, geçişleri, başlangıç durumunu ve local tracker'ı ayarladıktan sonra uygulamayı oluşturur
  • Çalıştırma örneği, LLM istemcisini girdi olarak app.run(halt_after=["chat"], inputs={"llm_client": client}) biçiminde geçirir

Yapay zeka uygulamaları oluşturmak için gereken unsurlar

  • Simple Python API, uygulamayı aksiyonlar ve geçişler kümesi olarak tanımlar; DSL veya YAML olmadan yalnızca Python fonksiyonları ve dekoratörleri kullanır
  • Built-in Observability, Burr UI ile uygulamanın tüm adımlarını gerçek zamanlı izleme, hata ayıklama ve takip etmeyi mümkün kılar
  • Persistence & State Management, durumu diske, veritabanına veya özel backend'lere otomatik olarak kaydeder ve kesilen noktadan devam etmeyi sağlar
  • Human-in-the-Loop, herhangi bir aşamada yürütmeyi durdurup insan girdisini beklemeye olanak tanır; bu da onay iş akışları ve etkileşimli ajanlar için uygundur
  • Branching & Parallelism, paralel aksiyon çalıştırma, fan out / fan in, karmaşık DAG kurma ve alt uygulamaları birleştirmeyi destekler
  • Testing & Replay, geçmiş çalıştırmaları yeniden oynatma, tek tek aksiyonları birim testiyle sınama ve durum geçişlerini doğrulama yoluyla yapay zeka sistemlerine güveni artırır

Mevcut stack ile entegrasyon

  • Burr, hâlihazırda kullanılan araç ve framework'lerle entegre olur; vendor lock-in ya da wrapper gerektirmez
  • LLM entegrasyonları arasında OpenAI, Anthropic ve Instructor yer alır
  • Framework entegrasyonları arasında LangChain, Hamilton ve Haystack yer alır
  • UI ve serving entegrasyonları arasında Streamlit ve FastAPI yer alır
  • Doğrulama ve veri deposu entegrasyonları arasında Pydantic ve PostgreSQL yer alır
  • Tüm entegrasyon listesi dokümantasyonda görülebilir

Geliştiricilerin ve ekiplerin kullanım deneyimi

  • Peanut Robotics, birden fazla LLM framework'ünü değerlendirdikten sonra Burr'ün durum yönetimini, yapay zeka tabanlı karar verme kullanan robotları dağıtmak için güçlü bir çözüm olarak değerlendirdi
  • Watto.ai, modüler yapay zeka uygulamaları oluşturmanın kolay olduğunu ve UI'ın hata ayıklamayı kolaylaştırdığını belirtti
  • Paxton AI, sırf yapay zeka olduğu için garip ve anlaşılmaz kavramlar kullanmamasını vurguladı
  • Provectus, durum snapshot'ları oluşturma, hata ayıklama, yeniden oynatma ve değerlendirme senaryoları kurmada Burr'ün durum yönetimini faydalı buldu
  • CognitiveGraphs, LangChain, CrewAi, AutoGen, Agency Swarm gibi çeşitli agentic LLM platformlarıyla karşılaştırıldığında Burr'ün karmaşık davranış tasarımı için daha sağlam bir framework sunduğunu belirtti
  • TaskHuman, LangChain'den Burr'e geçtikten sonra birkaç saat içinde çalışmaya başladığını ve tüm kod tabanını Burr'e taşıdığını söyledi

Topluluk ve proje durumu

  • Topluluk, yardım isteme, proje paylaşma ve Burr'ün geleceğine katkı sunma alanı olarak yapılandırılmıştır
  • Katılım kanalları Discord, GitHub ve Twitter / X olarak sunulmaktadır
  • Proje kaynakları; dokümantasyon, örnekler, YouTube, yol haritası ve değişiklik günlüğüne bağlantılar içerir
  • Apache Burr, Apache Software Foundation altında kuluçka sürecindeki bir projedir ve Apache Incubator tarafından desteklenmektedir
  • Kuluçka durumu, kodun olgunluğunu veya kararlılığını zorunlu olarak yansıtmaz; ancak ASF'nin tam onayının henüz alınmadığını gösterir

1 yorum

 
GN⁺ 4 시간 전
Hacker News yorumları
  • Ajan framework’leri konusunda hâlâ kararsızım ve faydaları da ajanın niteliğine göre değişiyor. Örneğin 3 saniye içinde yeterince iyi bir yanıt üretmesi gereken durumla, tek bir problemi 3 saat boyunca çözmesi gereken durum aynı değil
    Sonuçta ajan; bağlamın kurulması, LLM çağrısı, istenen araç çağrılarının yürütülmesi, nihai model çıktısının ayrıştırılması ve frontend’e döndürülmesine indirgeniyor. Bellek ya da asenkron araç çağrıları gibi genişletmeler var ama geleneksel yazılım mühendisliği açısından bakınca o kadar da karmaşık değil
    Herkes kendi ajan framework’ünü yapmak istiyor ama belirli bir ajan geliştirilecekse, o ajana göre yazılmış bire bir kodun çok daha kolay ve bakımının da daha iyi olduğunu düşünüyorum. Framework’ün soyutlamaları çoğu zaman çekirdek mantığı gizleyip engelliyor; en sonunda da framework’ün seçtiği soyutlamaya uymak zorunda kalıyorsunuz ve bu da gerçek hedefle çelişebiliyor

    • Ajanik sistemlerin özü, ajan kullanmakta değil, onları gerçekten gerektiğinde kullanmakta yatıyor diye düşünüyorum. Çalışan bir sistem için çok adımlı akışları ifade eden pipeline/reçete, model ve insan müdahalesi aşamalarını birden çok ajan çalışan havuzunda güvenilir biçimde yürüten bir işletim düzeni, mümkün olduğunca çok işi kodla yapan kalın becerilerin yönetimi/dağıtımı/güvenliği/yetkilendirmesi ve doğru bağlamı doğru oturuma yerleştiren bağlam yönetimi gerekiyor
      Bunun yanında biletleri/bağımlılıkları/ilerlemeyi/tıkanmış biletlerin yeniden başlatılmasını ele alan proje yönetimi, konuşma geçmişi saklama ile bellek/rüya görme/birikimli öğrenme işlevleri, maliyet ve kullanımı izleyen gözlemlenebilirlik, prompt değerlendirme ve otomatik ayarlama, model sağlayıcısını değiştirme ve model sürümünü sabitleme ile gerçek oturumları çalıştıracak sandbox da gerekli
      Bunların hepsini tek bir sağlayıcıdan almak zorunda değilsiniz ama çoğu durumda tek bir model sağlayıcısına kilitlenmemek ve özellikle kendi bağlamınıza ile birikimli öğrenmenize sahip olmak gerektiğini düşünüyorum
    • Çoğu ajan framework’ündeki en ciddi sorun, çekirdek mantığı gizlemeleri. Gerçek dil modeline neyin gönderildiğini ve neyin geri geldiğini net biçimde görebilmeniz gerekir
      Ajanik uygulamalardaki her şey sonuçta token dizileri ya da sağlayıcı çağrılarıyla hayata geçtiği için, bunun uygulamanın neredeyse her katmanında açıkça görünmesi lazım
    • Onlarca frontend framework’ü hakkında da benzer şeyler düşünmüştüm. Gelecekte gelecekmiş gibi görünen ama gelmeyen bir ödül uğruna devasa soyutlama ve karmaşıklık yüklenmek gibi
      Yine de insanların yapacak işlere ya da eğlenceli oyuncaklara ihtiyacı var ve “bir sonraki kişi” genelde çok da önemsenmiyor; bu yüzden ücretli oyun zamanının çıktısını başkasına devretmekte sakınca görmüyor gibiler
    • Belirli bir ajana göre bire bir kod yazma yaklaşımına bir ölçüde katılıyorum. Ama yeni bir ajanda yeni teknikler ya da yöntemler geliştirdiğinizde, eski ajanları nasıl güncelleyeceğiniz ve gerçekten güncellemek isteyip istemediğiniz bakım açısından ayrı bir sorun
      Örneğin Apache Burr, takılabilir bir vektör RAG sistemini destekliyor ya da ileride destekleyecek gibi görünüyor; ama benim ihtiyaç duyduğum şey, belgeleri bağlama ekleyen ve güncellenmiş sistem prompt’unun bir parçası olarak tutarken sürece çok özel ince ayarlar katan bir yaklaşım. Bu, mevcut RAG kavramının özelleştirilmiş bir kullanımı ve belirli bir framework’e pek uymuyor
      Benim kullanımımda özel bir uygulama daha doğru ama eski ajanları güncellemek için yapılacak mühendislik tercihleri hâlâ ortada duruyor
    • Framework’lerin avantajı, asıl ajan yazımını kolaylaştırmalarında değil; araçlar ve gözlemlenebilirlik gibi alanlarda. LangChain de pek çok açıdan eleştirilebilir ama bunu erken dönemde çok net gösterdi
      Bir chatbot’u sıfırdan kendiniz yapmak kolay ya da daha kolay olabilir ama gözlemlenebilirlik veya izleme eklemeniz gerektiğinde durum değişiyor. Tek bir environment variable ekleyerek, neredeyse hiç ek iş yapmadan tüm izleri UI üzerinden inceleyebiliyorsanız, kendi el yapımı çözümünüzün bununla rekabet etmesi zor
  • Bu sayfanın https://vorpus.github.io/performativeUI/ ile mi yapıldığını merak ediyorum
    AI üretimi landing page klişelerinin mümkün olan neredeyse tamamına basıyor. Yoksa bilinçli bir hiciv mi diye düşündürüyor

  • Bu framework’ü kişisel projelerde ve iş projelerinde keyifle kullanıyorum. AI modelleri için güvenilir durumlu workflow ve ücretsiz gözlemlenebilirlik sunması hoşuma gitti
    Burr durum makinesini MCP ile mount eden bir araç geliştirdim; böylece ajana izleyeceği rayları verirken, durum makinesi ne kadar karmaşıklaşırsa karmaşıklaşsın MCP araçları durum makinesini keşfetmekle sınırlı kalıyor: https://github.com/msradam/theodosia
    Şu anda becerileri durum makinelerine dönüştürmek üzerinde çalışıyorum. Popüler birçok beceri zaten AI modellerinin izleyebileceği adımlar biçiminde yazılmış durumda; Burr’ün açık özelliklerinden yararlanarak bunları daha güvenilir hâle getirebiliriz gibi görünüyor

  • https://strandsagents.com/ ile karşılaştırınca nasıl olduğunu merak ediyorum. Bu alandaki araçlarla ilgileniyorum ve henüz belirli bir araca bağlanmış değilim ama Bedrock + Agent Core üzerinde Serverless bana “kolay yönlendirme yolu” gibi geliyor. Yine de platforma bağımlı olmak hoşuma gitmiyor

    • Başkalarının deneyimini de merak ediyorum. Bu stack’i kullanıyorum ama Strands’ın Agent Core ile birlikte özel bir sihir sağlayıp sağlamadığı konusunda hâlâ şüpheliyim
      Şimdiye kadar öyle hissettirmedi; hatta bazen ikisinin birbiriyle çatıştığı izlenimini veriyor da olabiliyor
  • Burada builder pattern ve decorator’lar görünüyor. Python’da da decorator var ama bence en doğru kullanım, bunları fonksiyon ya da metotlara uygulanan birer “filtre” olarak görmek. Yani bu fonksiyonu cache’le, bu fonksiyonun çıktısını her zaman serialize et, bu fonksiyonu agent tipi bir yürütme motorunun aracı olarak hazırla gibi
    Kayıt veya akış kontrolü için kullanılmaları gerektiğini düşünmüyorum. Katılmayabilirsiniz ama birinin bunu söylemesi lazım. FastAPI, modern decorator kullanımını fazlasıyla yanlış bir yöne çekti
    Builder pattern, Rust’ta isimlendirilmiş keyword argümanları olmamasından doğan bir gelenek gibi; Python fonksiyonları ise zaten isimlendirilmiş bir sözleşmeyi açığa çıkarıyor. Yapılandırma parametrelerini zincirleme metot çağrılarıyla sırayla geçirmek için neredeyse hiç sebep yok
    Constructor’da ya da factory’de henüz olmayan bir durumu eklemeniz gerekiyorsa bu builder pattern değil, registration’dır. Builder pattern’in tolere edilebilir olduğu tek yer belki de query builder’lardır. Çünkü kavramı yinelemeli olarak katman katman kurarsınız ve metot adlarıyla keyword argümanları gibi metadata yuvaları gerçekten işe yarar. Keyword argümanları yerine tek parametre alan metotlar kullanmanın yanlış olduğunu düşünüyorum

    • Burada decorator’lar, fonksiyonlara metadata ekleyerek onları yeniden kullanılabilir bileşenler hâline getiriyor; builder ise workflow oluşturuyor. Hamilton’da yapı tamamen deklaratif olduğu için her şey decorator’larla ele alınıyor ama yeniden kullanılabilirlik aslında ayrı bir mesele
    • Builder pattern’in sadece Rust’ta kullanılmadığını biliyorum ama Python’da kullanıldığında çirkin göründüğüne katılıyorum
  • Güvenilir AI agent’ın ne olduğuna dair oldukça naif bir versiyon gibi görünüyor
    Güvenilirlik, “verilen işi bitirebiliyor mu” demektir; state machine ile özel bir ilgisi yok

  • Burr’ü ilk kez duyuyorum; neden Apache’de inkübasyona alındığını merak ediyorum

    • Alınmaması için bir neden yok. ASF’nin yeni özgür açık kaynak projelerini inkübe etme konusunda uzun bir geçmişi var
      Bazıları mezun olup herkesin bildiği isimlere dönüşüyor, bazıları ise başarısız olup attic’e gidiyor. ASF kurumsal destek sağlıyor ve genelde iyi bir topluluk yetiştiriyor
    • Çünkü ben başvurdum. Apache süreçlerini öğrenirken ve başka işlerle de uğraşırken yavaş ilerleyen bir süreç oldu ama artık belli bir ivme kazandı ve daha düzenli release’ler çıkarmaya başlıyoruz
  • Sayfa, Claude Code ile yapılmış tek kullanımlık bir çöp gibi görünüyor ve JavaScript olmadan çalışması için en ufak bir çaba bile göstermiyor. En azından marka tutarlılığı var

  • İsmin açık bir gerekçesini bulamadım ama merak edenler için bir Hamilton örneği var: https://github.com/apache/burr/tree/main/examples/multi-agen...

    • Burr, ABD’nin kurucu babalarından, 3. başkan yardımcısı ve Alexander Hamilton’ın katili ve başlıca rakibi olan Aaron Burr’dan geliyor
      Hamilton bağlantısı, bunun DAGWorks’ün Hamilton kütüphanesinden sonra çıkardığı ikinci açık kaynak kütüphane olması. İsim, Burr ile Hamilton’ın uyum içinde çalışıp farklılıklarını aşarak daha iyi bir federasyon kurduğu bir alternatif tarih hayalinden geliyor
      Burr başlangıçta Hamilton DAG yürütmeleri arasındaki durumu ele almak için yapılmıştı. Çünkü DAG’lerde döngü olmaz. Sonra bunun daha geniş bir kullanım alanı olduğunu fark edip daha kapsamlı biçimde yayımladık
      https://pypi.org/project/burr/
  • Kodlama agent’ları için orkestrasyon araçları veya platformları arasında tavsiye edebileceğiniz bir şey var mı diye merak ediyorum. Birden fazla makinede codex ya da claude agent’larını çalıştırmak, yönetmek ve izlemek istiyorum
    Mümkünse self-hosted ya da açık kaynak olmasını tercih ederim. Claude Code’un içeride böyle birçok özelliğe sahip olduğunu biliyorum ama o yalnızca Claude’a özel

    • Dokümanlara bakılırsa Burr’de bunu başlatmak için bir agent cookbook var ve çok makineli workflow’ları da ele alabiliyor. Aradığınız şey bu olabilir mi diye merak ettim
      Skill’lerle vb. nasıl entegre edildiğinden emin değilim ama görünüşe göre çalışır
      https://burr.apache.org/docs/examples/agents/