Ajan döngüsü ve onu kim yazıyor?
Bir yapay zekâ ajanı aslında basit bir döngü. Modele bir görev ve kullanabileceği araçların listesini verirsin. Model “şu dosyayı oku” ya da “şu komutu çalıştır” der. Kodun bu aracı çalıştırır, sonucu modele geri verir. Model işin bittiğine karar verene kadar bu tekrarlanır.
Bu döngüyü Python’da elle yazmak zor değil, ama her projede aynı 30–40 satırı yeniden yazıyorsun. Üstüne hata yönetimi, akış (streaming), araç izinleri ve birden fazla ajan eklenince iş büyüyor. Vercel’in eve’i gibi framework’ler bu yükü kod tarafında hafifletiyor. Docker Agent ise farklı bir yol seçiyor: Hiç kod yazmamak.
YAML’da bir ajan
Docker Agent, Docker’ın Apache 2.0 lisanslı, açık kaynak komut satırı aracı. Eski adı cagent. Docker kendisini “konteynerler için docker run neyse, ajanlar için o” diye tarif ediyor. Belgeler ne olmadığını da açıkça söylüyor: İçinde kod yazdığın bir framework değil, barındırılan bir hizmet değil, yeni bir model de değil.
Bir YAML dosyasında ajanın modelini, açıklamasını, talimatını ve araç setlerini (toolsets) yazıyorsun. Araçlar hazır geliyor: dosya sistemi, kabuk (shell), düşünme, yapılacaklar listesi, hafıza gibi. İstediğin MCP sunucusunu da ekleyebiliyorsun. Model satırı OpenAI, Anthropic, Gemini, OpenRouter gibi sağlayıcılara ya da Docker Model Runner üzerinden yerel bir modele işaret edebiliyor. Sonra docker agent run agent.yaml diyorsun ve terminalde ajanla konuşmaya başlıyorsun.
Docker Desktop 4.63 ve sonrasında araç hazır kurulu geliyor. Değilse Homebrew ile ya da GitHub’daki hazır dosyayla kurabiliyorsun.
Neden ilginç?
- Ajan bir ayar dosyası oluyor. Git’te sürümlenebiliyor, pull request’te incelenebiliyor. Modeli değiştirmek tek satırı değiştirmek demek.
- İmaj gibi paylaşılıyor.
docker agent share pushile ajanı Docker Hub’a ya da herhangi bir OCI kayıt deposuna gönderiyorsun. Başkası onu adıyla çalıştırabiliyor. İstersen imzalayıp alan tarafın doğrulamasını da sağlayabiliyorsun. - Ajan servis olabiliyor. Tek komutla bir ajanı HTTP API’si, MCP sunucusu ya da A2A sunucusu olarak açabiliyorsun. MCP modunda Claude Code gibi bir uygulama senin ajanını bir araç olarak kullanabiliyor.
- Ekipler kurulabiliyor. Bir koordinatör ajan işi uzman alt ajanlara (
sub_agents) dağıtabiliyor ya da ajanlar sohbeti sırayla birbirine devredebiliyor (handoffs).
A2A: Ajanlar arası konuşma
A2A (Agent2Agent), farklı araçlarla yazılmış ajanların birbirine görev verip sonuç almasını sağlayan açık bir protokol. MCP bir ajanı araçlara bağlıyor, A2A ise ajanı başka bir ajana. Önemli fark şu: Karşı taraf kendi araçlarını, hafızasını ve verisini paylaşmıyor, sadece cevabını veriyor.
Videodaki örnek bunu iyi anlatıyor. Ödeme sayfası çöküyor. Bir “log analisti” ajanı sadece log klasörünü okuyabiliyor, docker agent serve a2a ile bir portta servis ediliyor. İkinci ajan olan nöbetçi asistanın hiç dosya erişimi yok, sadece analistin adresini biliyor. Soruyu soruyor, analist logları ve dağıtım geçmişini inceleyip bulgularını dönüyor, asistan da bunu bir olay özetine çeviriyor. Gerçek bir şirkette logların sahibi olan ekip analisti işletir, diğer ekipler loglara erişmeden ona soru sorabilir. Videonun eğlenceli kısmında iki model, aynı yapıyla birbirine karşı Amiral Battı oynuyor.
Dikkat edilmesi gerekenler
- Belgelere göre A2A desteği erken aşamada. Araç çağrıları ayrı olaylar olarak görünmüyor, alt ajanlı senaryolar henüz tam değil.
- A2A sunucusu varsayılan olarak sadece kendi makinende dinliyor. Dışarı açarsan bir erişim anahtarı (
--auth-token) vermen gerekiyor. - A2A oturumları varsayılan olarak “restricted” güvenlik modunda: Güvenli sayılan araçlar çalışıyor, silme gibi yıkıcı ya da tanınmayan komutlar reddediliyor. Bunu gevşetmek için bilinçli olarak bayrak vermen gerekiyor. İnsan başında değilken çalışan bir ajan için doğru varsayılan bu.
Düşün
- Senin projende bir ajanın kodu mu daha çok değişiyor, talimatı ve araçları mı? Hangisi bir YAML dosyasına sığar?
- Bir ajanı başka bir ekibin ajanına açarken neyi paylaşır, neyi saklardın?
Videoyu izle
Kaynaklar (12, İngilizce)
- Better Stack: Why I'm Switching From Python to Docker Agent for AI Agents (video) (yeni sekmede açılır)
- Docker Agent docs (yeni sekmede açılır)
- Docker Docs: Docker Agent (yeni sekmede açılır)
- GitHub: docker/docker-agent (yeni sekmede açılır)
- Docker Agent docs: Installation (yeni sekmede açılır)
- Docker Agent docs: Multi-Agent Systems (yeni sekmede açılır)
- Docker Agent docs: Agent Distribution (yeni sekmede açılır)
- Docker Agent docs: A2A Protocol (yeni sekmede açılır)
- Docker Agent docs: A2A Tool (yeni sekmede açılır)
- Docker Agent docs: MCP Mode (yeni sekmede açılır)
- Docker Agent docs: Permissions (yeni sekmede açılır)
- A2A Protocol (yeni sekmede açılır)
Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.