CVCrew'u — birden fazla Claude ajanının birlikte çalıştığı kariyer copilotunu — kurarken multi-agent mimari üzerine epey ders aldım. En önemlileri burada.
Tek dev prompt yerine uzman ajanlar
İlk deneme klasikti: her şeyi bilen tek bir asistan. Sonuç, her şeyi ortalama yapan bir asistan oldu. Dönüm noktası, işi tek sorumluluklu ajanlara bölmekti — biri CV'yi analiz eder, biri ilanla eşleştirir, biri içerik üretir. Her ajanın system prompt'u kısa, net ve tek konulu:
const agents = {
analyzer: { system: "CV'yi yapılandırılmış veriye çevir. Yorum yapma." },
matcher: { system: "CV verisini ilan gereksinimleriyle eşleştir, boşlukları listele." },
writer: { system: "Eşleşme raporundan başvuru içeriği üret." },
};Kalite farkı hemen görünür: dar kapsamlı ajan, dar kapsamlı işte tutarlı.
Orkestrasyon ayrı bir katman
Ajanları kimin, hangi sırayla, hangi veriyle çağıracağı kararı ajanların kendisine bırakılmamalı. Orkestrasyon katmanı — ajan çıktılarını doğrulayan, sıradaki ajana bağlayan, hatada tekrar deneyen düz kod — sistemin asıl omurgası. LLM esnekliği ajanların içinde, akış kontrolü deterministik kodda.
Streaming pazarlık edilemez
Üç ajanlık bir zincir 30-60 saniye sürebiliyor. Kullanıcıya boş bir spinner gösterirsen ürün "bozuk" hissettiriyor; her ajanın ara çıktısını WebSocket ile anlık akıtınca aynı süre "çalışıyor, izliyorum" hissine dönüşüyor. Algılanan hız, gerçek hızdan daha önemli.
Öğrenilenler
- Ajan sınırları prompt'tan güçlüdür: ajanın yapmaması gerekeni prompt'a yazmak yerine, o yeteneği ona hiç verme.
- Ara çıktıları şemayla doğrula: ajanlar arası el değiştiren her veri için şema kontrolü; hata zincirin başında yakalanır.
- Gözlemlenebilirlik baştan: hangi ajanın ne ürettiğini loglamadan multi-agent sistemi debug etmek imkânsıza yakın.