- Saf fonksiyonel ajan mimarisi ile durumu ve davranışları veri olarak tanımlıyor, yan etkileri ise buyruk niteliğindeki yönergeler (directive) olarak ayırarak test ve debug süreçlerini basitleştiriyor
- Sade API ve BEAM merkezli tasarım benimsiyor;
jido_action, jido_signal gibi modülleri ayırarak standartlaştırılmış aksiyon ve sinyal sistemi sunuyor
- Üst katmandaki Jido AI, ReAct, Chain-of-Thought dahil 6 farklı akıl yürütme stratejisini destekliyor ve ReqLLM tabanlı LLM entegrasyonu ile 11 sağlayıcı ve 665 modelden yararlanabiliyor
- Jido artık bir ajan ekosistemi platformu olarak genişliyor; Ash Framework entegrasyonu (
ash_jido) sayesinde AI tarafından çağrılabilir CRUD araçları sunuyor
Jido 2.0'a genel bakış
- Jido 2.0, 18 aylık geliştirme ve yeniden tasarım sürecinin ardından tamamlanan Elixir tabanlı ajan framework'ü
- İlk olarak 2024'te BotHive adlı bir bot platformu olarak başladı; daha sonra ajan sistemlerinin temeli olarak BEAM runtime benimsendi
- TypeScript veya Python tabanlı framework'lerin sınırlarını aşmak için BEAM'in eşzamanlılık ve kararlılık özelliklerinden yararlanıyor
1.0'dan 2.0'a geçişte neler değişti
- Jido 1.0, aşırı soyutlama nedeniyle kullanım kolaylığı açısından zayıftı; 2.0'da ise basitleştirilmiş API ve BEAM merkezli yapı ile iyileştirildi
- Kullanıcı geri bildirimleri doğrultusunda gereksiz karmaşıklık kaldırıldı ve temel işlevleri yerine getirirken yaşanan sürtünme en aza indirildi
- “Framework ile boğuşmak değil, ajan yapmak istiyorum” talebi dikkate alındı
Güçlü ve dayanıklı bir ajan çekirdeği
- Jido 2.0'ın çekirdeğinde saf fonksiyonel ajan mimarisi bulunuyor
- Ajanlar; durum (state), davranışlar (actions) ve araçlardan (tools) oluşan basit struct'lar olarak tanımlanıyor
- Tüm işlemler
cmd/2 fonksiyonu üzerinden yürütülüyor; girilen aksiyona göre güncellenmiş ajanı ve yönerge listesini döndürüyor
- Yan etkiler yönerge (directive) olarak ifade ediliyor ve runtime tarafından çalıştırılıyor; bu da test ve debug'u kolaylaştırıyor
Jido.AgentServer, ajanı gözetlenen bir GenServer içine sarıyor; sinyal yönlendirme ile ebeveyn-çocuk ajan hiyerarşisini destekliyor
- Strategy, genişletme noktası olarak kullanılıyor; varsayılan olarak Direct (sıralı yürütme) ve FSM (durum makinesi) olmak üzere iki seçenek sunuluyor
- ReAct, Chain-of-Thought gibi yapay zeka stratejileri de aynı arayüz üzerinde çalışıyor
Aksiyon ve sinyal modüllerinin ayrılması
jido_action: Tüm ajan işlevlerini tanımlayan evrensel aksiyon sözleşmesi
- Derleme zamanında şema doğrulaması, yaşam döngüsü hook'ları ve ReqLLM araç formatına otomatik dönüştürme özelliklerini içeriyor
- 25'ten fazla hazır araç ve DAG tabanlı workflow planlayıcı sunuyor
jido_signal: CloudEvents v1.0.2 tabanlı mesajlaşma sistemi
- Standartlaştırılmış sinyal formatı, trie tabanlı yönlendirici, pub/sub bus ve 9 dispatch adapter'ı sağlıyor
- Standart dışı protokollere ihtiyaç duymadan farklı sistemlerle entegre olabiliyor
Jido AI entegrasyon katmanı
jido_ai, LLM çağrılarını yapılandırılmış ajan zekasına dönüştüren bir entegrasyon katmanı
- ReAct, Chain-of-Thought, Tree-of-Thoughts, Graph-of-Thoughts, TRM, Adaptive dahil 6 akıl yürütme stratejisi yerleşik olarak geliyor
- Aynı
cmd/2 sözleşmesini ve yönerge sistemini koruyarak, AI katmanını ayrı bir dünya değil mevcut yapının bir uzantısı olarak entegre ediyor
- ReqLLM tabanlı çalışıyor ve 11 sağlayıcı ile 665'ten fazla modeli destekliyor
- Streaming öncelikli tasarım, çok sağlayıcılı yapı ve aktif topluluk katkıları öne çıkıyor
Genişleyen ekosistem
- Jido, basit bir framework'ün ötesine geçerek bir ajan ekosistemine dönüşüyor
- Topluluk, BEAM üzerinde kodlama asistanları, workflow orkestratörleri, araştırma ajanları ve operasyon destek sistemleri geliştiriyor
- Tarayıcı otomasyonu, bellek sistemleri, değerlendirme harness'leri ve MCP entegrasyonu gibi çeşitli paketler ortaya çıkıyor
- Ash Framework entegrasyonu (
ash_jido)
- Ash kaynaklarına
jido DSL bloğu eklendiğinde CRUD aksiyonları AI tarafından çağrılabilir araçlara dönüşüyor
- Yetki politikaları, veri katmanı ve tip güvenliği korunuyor
ash_ai de ReqLLM'e taşınıyor; iki ekosistemin yakınsaması sürüyor
Topluluk ve teşekkür
- Jido 2.0, Elixir topluluğunun ekosistemi üzerine inşa edildi
- Phoenix, LiveView, Ash, Req, Telemetry, NimbleOptions gibi başlıca kütüphanelerin katkılarıyla güçlendirildi
Başlangıç
1 yorum
Hacker News yorumları
Henüz Jido'yu gerçekten kullanmış değilim ama ayda bir kadar mutlaka göz atıyorum
BEAM'in ajan framework'leri için biçilmiş kaftan olduğunu düşünüyorum, ancak ekosistem hâlâ sınırlı olduğu için derinlemesine dalmadım
2.0 sürümü heyecan verici görünüyor. Bu arada, bazı kod örneklerinde entity escape sorunu var gibi duruyor
Yazının başından itibaren vurgulanan “veri ve saf fonksiyonlar” merkezli yaklaşımı gerçekten beğendim
BEAM'in yürütme modelinin yapay zeka için uygun olduğuna dair çok şey görüyorum, ancak pratikte düğüm arızaları ya da rolling deployment gibi durumlarda dayanıklılık konusu sık sık gözden kaçıyor
Elixir'in konum şeffaflığı sağladığına dair bir yanlış kanı da var, ama aslında öyle değil. Bir düğüm düşerse içindeki süreçler de onunla birlikte sonlanır
Her API çağrısı adımında açık ve saf bir ajan durumunu korursanız bu sorunları çözebilirsiniz. Durumu Mnesia ya da Redis'e kaydedip başka bir düğümde devam edebilirsiniz. Sonuçta kilit nokta checkpointing
Bu yüzden Jido çekirdeğinde hiç LLM desteği yok.
40 yılı aşkın ajan araştırması var ama LLM'ler çıkınca sanki bunların hepsi unutuldu. Ben de o geçmişi yeniden inceleyip Jido'ya yedirmeye çalıştım
Elbette LLM'leri seviyorum ama o kısım Jido AI paketinin işi
Zamanlama mükemmel. Ben de gen server ile Oban'ı birleştirerek kendi ajan framework'ümü yapmıştım ve gerçekten acı verici bir işti
Bu proje geliştirme acısını ciddi biçimde azaltacak gibi görünüyor. Gerçekten teşekkürler
Bunun OpenAI Symphony'ye benzer olup olmadığını merak ediyorum
Ben yapay zekadan çok Elixir tarafını takip ediyorum ama Elixir ve BEAM'in bu tür orkestrasyon iş yükleri için kullanıldığını görmek ferahlatıcı
Site trafik patlaması yüzünden erişilemiyor. Bu yüzden archive.org yedek bağlantısını paylaşıyorum
Paylaşım için teşekkürler! Kesinlikle bakacağım
Ben de yakın zamanda LLM ile bir A2A paketi yaptım; GenServer'a benzer bir soyutlama
Zaten başka A2A uygulamaları vardı ama benim paketimin semantiği farklı olduğu için olduğu gibi yayımladım
İlgilenenler buradan bakabilir
Birkaç aydır bu projeyi takip ediyorum; Elixir/BEAM, ajan yürütme için mükemmel bir platform
BEAM gerçekten hafif ve verimli; teoride tek bir sunucuda binlerce ajan çalıştırabilirsiniz
Bunu anlayan insanların bundan sonra neler inşa edeceğini görmek için sabırsızlanıyorum
Hatta BEAM'i bare metal (gömülü) ortamlara dağıtıp içinde ajan çalıştırmaya yönelik girişimler bile oldu
Gelecek gerçekten çok ilginç olacak gibi
observeriçinde ajanların aktif durumdayken süreç ağacı ekran görüntüsünü görmek isterdimBu arada observer, BEAM VM içindeki Erlang süreçlerini görselleştiren bir araç
Örnek ekran görüntülerini Fly.io belgelerinde görebilirsiniz
jido_studioadlı bir dashboard yayımlamayı planlıyorum. Süreç yapısını görselleştirecekTanıtım ekran görüntüsünü burada görebilirsiniz
AgentRuntime ile sarmalanmış bir ajan genelde tek bir GenServer süreci olarak çalışır, ancak daha büyük bir topoloji gerektiğinde istisnalar olabilir
Kusursuz zamanlama. Ben de kendi Erlang ajan framework'ümü yapıyordum ama bu çok daha iyi
Güvenliğin nasıl sağlandığını merak ediyorum. Konteyner izolasyonu yoksa prodüksiyon sırlarının sızmasını önlemek zor olur
Bunu gerçekten bu şekilde uygulayan Jido örnekleri de gördüm
Ama bu kullanım senaryosuna bağlı; güvenlik, sadece “konteyner içindeki ajan” meselesinden çok daha geniş bir konu
Jido'nun amacı güvenliği doğrudan çözmek değil, kullanıcının bunu ihtiyaç duyduğu şekilde çözebilmesi için araçlar sunmak