Tüm yazılar
YAPAY ZEKA MİMARİSİAğustos 2026·14 dk okuma

Otonom AI Ajanlarında Çoklu-Ajan Orkestrasyonu Nasıl Çalışır?

Karmaşık iş süreçlerini bağımsız ajanlara bölerek paralel çalıştırma prensipleri ve güvenlik kapıları.

Şekil 1 — Evrak hattının topolojisicanlı
Süreç bir graf olarak yürür: önce salt okunur adımlar, sonra kapı, en sonda dar yetkili yazma.
Açık kaynak örnekKozmoz-Inovasyon/evrak-orkestrasyonuBu yazıdaki evrak hattının temel, çalıştırılabilir hali. Dil modeli anahtarı gerekmez; grafı, kapıyı ve düğüme özel yeniden denemeyi yerelde koşturabilirsiniz.

Tek ajanla başladık. Süreç orada durdu.

Kurumsal bir sürece dil modelini (LLM) ilk bağladığımızda tasarım neredeyse kaçınılmaz görünüyordu: tek bir ajan, elinde bir dizi araç. Gelen evrakı okusun, şirket hafızasında arasın, riski puanlasın, kaydı atsın. Demo’da çalıştı. Canlıda aynı ajan hem bağlamı kaybetti, hem yetkisiz yazmayı denedi, hem de hata verdiğinde “ajan düştü” dışında bir iz bırakmadı.

Bu yazı bir ürün duyurusu değil. Çoklu-ajan orkestrasyonu diye bir şey inşa ettiğimiz için değil; tek döngülü bir ajanın gerçek iş sürecinde kırıldığı yerleri gördüğümüz için yazıldı. Soru “ajan yaptık mı?” değildi. Soru şuydu: bu süreçte kim okur, kim önerir, kim yazar, kim durdurur — ve bunlar aynı elde olursa ne bozulur?

Şekil 2 — Tek döngülü ajancanlı
PDF oku
Vektör ara
Kaynağa yaz
Bildir
HukukRiskitüm araçlar
Bağlam penceresi14b → 91b
Aynı ajan hem okur hem yazar. Bağlam penceresi her turda şişer.

Karar kaydı

Orkestratör (orchestrator) bir dil modeli değildir. Ajanlar işçidir. Graf, durum ve kapı deterministik bir iş akışı motorundadır. Modeli karar verici sanmak, ağ katmanında her paketi aynı birimin yorumlamasına bırakmaya benzer.

tek-dongu.ts — canlıda yetki ve iz kaybolur
kod
// demo'da çalışır
while (ajan.aracCagrisiVar()) {
  // oku, ara, yaz — aynı el
  await herhangiAraciCalistir(ajan.sonCagri)
  baglam.mesajlar.ekle(ajan.sonCagri)
}

// yeniden deneme = tüm turu baştan
catch {
  bastanOynat(baglam)
}

Canlıda kırılan yer, model değil topolojiydi

İlk üretim denememiz evrak hattıydı: sözleşme veya teklif gelir, sınıflandırılır, şirket kılavuzuna karşı aranır, risk skoru çıkar, insan bakar, kurumsal kaynak planlama sistemine (ERP) kayıt düşer. Bunu tek bir “HukukRiski” ajanına yükledik. Model yeterince iyiydi. Mimari değildi.

Kırılma, sohbet botunun “yanlış cevap vermesi” değildi. Kırılma, okuma ile yazmanın, arama ile kararın, yeniden deneme ile yan etkinin aynı turda karışmasıydı. Dört sınıf hata tekrar tekrar geldi:

Bağlam kirlendi

Aynı döngü hem evrak metnini, hem kurumsal hafıza parçalarını, hem araç cevaplarını taşıyordu. Uzun süreçte ajan, orijinal maddeyi değil son araç çıktısını ‘gerçek’ sanıyordu.

Yazma yetkisi okuma ile aynı eldeydi

PDF okuyan ajan, kurumsal kaynak planlama sistemine de kayıt atabiliyordu. Sistem talimatına ‘yalnızca onaydan sonra yaz’ demek, üretimde bir politika değildir; bir ricadır.

Hata tek cümleydi

Operasyon ‘ajan düştü’ görüyordu. Çıkarıcı mı zaman aşımına uğradı, vektör arama mı boş döndü, yazma mı güvenli tekrar edilebilir değildi — ayırt edilemiyordu.

Paralel iş sıraya giriyordu

Sınıflandırma ile kurumsal hafıza araması birbirine bağlı değildi. Tek döngü onları art arda koşturduğu için evrak hattı gereksiz yere uzuyordu.

Şekil 3 — Hata izi karşılaştırmasıcanlı
Graf çalışması
düğüm yeniden denemesi
çıkarıcışema tamam
arayıcıönbellekte
uygulayıcıkaynak planlamaya yaz — zaman aşımı
orkestratöryalnızca uygulayıcıyı yeniden dene
Hata bir düğümde durur. Yeniden deneme yalnızca uygulayıcıya aittir.
Şekil 4 — Düğüme özel yeniden denemecanlı
Çıkar
yeniden dene 2/3
Ara
önbellekte
Değerlendir
bekliyor
Uygula
başlamadı

Zinciri baştan oynatma ≠ grafı çalıştır · yalnızca «çıkar» düğümü

Çıkarıcı zaman aşımına düşer. Arayıcı önbellekte kalır. Uygulayıcı hiç başlamaz.

Hukuk ve operasyonun sorduğu soru da buradan çıktı: “Bu maddeyi düşük risk sayan kim?” Cevap kırk mesajlık bir sohbet dökümü olmamalı. Cevap; hangi düğümün, hangi kanıtla, hangi kapıdan geçerek öneri ürettiği olmalı. Tek ajanlı döngü bunu üretmez — çünkü süreç yoktur, tur vardır.

Bunu hangi iş akışlarında gördük

Ajanı her yere koymadık. Kırılma, yapay zekanın “konuştuğu” yerde değil, işin geri alınamadığı yerde görünür oldu. Üç hat, aynı mimari kararı zorladı:

Şekil 8 — Bu kararı zorlayan üç hat
Evrak / sözleşme
yazma = kaynak planlama
Sipariş – stok
yazma = kilit
Onaylı otomasyon
insan kapısı zorunlu
Ajanı her yere koymadık. Kırılma, geri alınamayan yazmanın olduğu hatta çıktı.

01 · Gelen PDF / e-posta eki

Evrak ve sözleşme hattı

Neden tek ajan yetmedi. Sınıflandırma, şirket kılavuzu araması ve risk skoru ayrı uzmanlık. Kayıt ise geri alınamaz.

Ne yaptık. Çıkarıcı ve arayıcı paralel; değerlendirici skor üretir; insan kapısı açılmadan uygulayıcı kaynak planlama sistemine dokunmaz.

02 · Sipariş olayı

Sipariş–stok–bildirim

Neden tek ajan yetmedi. Stok kilidi, fatura ve bildirim aynı sohbet turunda ‘halledilince’ çift satış ve kayıp iz oluştu.

Ne yaptık. Ajan önerir; kilit ve yazma, olay hattındaki güvenli tekrar edilebilir servislere düşer.

03 · Form, ağ kancası (webhook), istisna

Onaylı operasyon otomasyonu

Neden tek ajan yetmedi. İstisna oranı düşük ama maliyeti yüksek. Tek ajan, istisnayı ‘çözülmüş’ diye kapatıyordu.

Ne yaptık. Otonom yol mutlu patikadır. Eşik altı skor veya politika ihlali kapıya düşer.

Ortak desen aynıydı: süreç birden fazla uzmanlık istiyor, adımların bir kısmı paralel koşabilir, bir kısmı geri alınamaz. Bu üç özellik bir aradaysa tek ajan “yetenekli asistan” olmaktan çıkar; yetkisi fazla, izi zayıf bir operatör olur.

Ne değiştirdik: ajanları değil, grafı tasarladık

Geçiş, yeni bir “çoklu ajan ürünü” eklemek değildi. Tek döngüyü bir durum makinesine indirdik. Dil modelleri düğüm oldu. Orkestratör; hangi düğümün çalışacağını, hangisinin paralel açılım (fan-out) yapacağını, hangisinin kapıya düşeceğini bilen deterministik katman oldu.

Şekil 5 — Paralel açılım (fan-out)canlı
Çıkar
şema
Sınıflandır
Ara
kurumsal hafıza
Değerlendir
skor + gerekçe
Sınıflandır ve ara, çıkar adımından sonra aynı anda yürür. Değerlendir ikisini de bekler.
evrak-girisi.ts — orkestratör model değil, bu nesnedir
kod
export const evrakGirisi = graf({
  cikar:         { sonra: [] },
  siniflandir:  { sonra: ["cikar"], paralel: true },
  ara:           { sonra: ["cikar"], paralel: true },
  degerlendir:   { sonra: ["siniflandir", "ara"] },
  kapi:          { sonra: ["degerlendir"], tip: "insan" },
  uygula:        { sonra: ["kapi"], araclar: ["kaynak.yaz"] },
})

Rol ayrımı, sistem talimatı ayrımı değil

Ajanları “sen hukukçusun, sen arşivcisin” diye isimlendirmek yetmez. Ayırım, araç yüzeyindedir. Arayıcının (retriever) yazma istemcisi yoktur. Uygulayıcının (actor) arama istemcisi yoktur. Değerlendirici dış dünyayı görmez; yalnızca önceki düğümlerin şemalı çıktısını görür.

RolİşYapabilirYapamaz
OrkestratörGraf ve durumDüğüm, zaman aşımı, yeniden deneme.Araç çağırmaz, skor üretmez.
ArayıcıKurumsal hafızaVektör arama. Salt okunur.Kaynak planlama veya müşteri yönetimi yazma.
ÇıkarıcıYapılandırmaŞema: taraf, tutar, tip.Risk kararı, kayıt.
DeğerlendiriciÖneriKanıt + şema → skor.Dış sisteme yazmaz.
UygulayıcıDar yazmaAçık kapı + imzalı veri paketi.Arama yapmaz, yeniden deneme seçmez.

Paralel çalışma, “daha çok ajan” demek değil

Paralel açılım yalnızca bağımsız düğümlerde açılır. Evrak hattında sınıflandırma ile kurumsal hafıza araması (RAG) birbirini beklemez; ikisi de çıkarıcının şemasını bekler. Değerlendirici ikisini birden görmeden skor üretmez. Paralellik bir performans ipucu değil, veri bağımlılığı grafının sonucudur.

Bağımlılık grafı

Paralel olanı ölçeriz; tahmin etmeyiz.

Düğüm yeniden denemesi

Kırılan yer yeniden çalışır, zincir değil.

Durum makinesi

Tur değil, adım. Her adımın sahibi var.

Güvenlik kapıları sistem talimatının içinde durmaz

Tek ajanlı tasarımda güvenlik, sistem talimatına (prompt) yazılan bir cümleydi. Üretimde bu cümle, aracın varlığı kadar güçlüdür. Araç duruyorsa ajan bir gün onu çağırır. Bu yüzden kapıyı modele anlatmadık; grafın düğümü yaptık.

Şekil 6 — Yetki matrisi
Hafıza ara
Kaynağa yaz
Bildir
Arayıcı
okur
yok
yok
Değerlendirici
yok
yok
yok
Uygulayıcı
yok
KAPI
KAPI
Yetki sistem talimatında değil, araç yüzeyindedir. Arayıcının yazma istemcisi yoktur.
Şekil 7 — Yazma yolundaki kapılarcanlı

01 Politika kapısı

bu ajan × bu araç × bu kimlik

BEKLET

02 Güven eşiği

skor ≥ 0,86 ve kanıt var

BEKLET

03 İnsan kapısı

geri alınamayan yazma

BEKLET
Uygulayıcı · kaynağa yaz
kapalı
Kapı kapalıysa uygulayıcı yoktur. Sistem talimatı bir ricadır; graf bir karardır.

Politika kapısı

Bu ajan, bu araç, bu kimlik, bu veri paketi. Arayıcının yazma istemcisi yoktur. Kontrol sistem talimatında değil, araç katmanındadır.

Güven eşiği

Değerlendirici skor ve gerekçe üretir. Eşik altında veya kanıt boşsa akış insan düğümüne düşer. ‘Emin değilim ama yine de yaz’ yolu kapalıdır.

İnsan kapısı

Para, hukuki bağ, stoğa kilit, müşteriye giden bildirim. Geri alınamayan her adım insan onaylı bir düğümdür (HITL).

politika/arac-denetimi.ts
kod
const yetkiler = {
  arayici:     { oku: ["hafiza"], yaz: [] },
  uygulayici:  { oku: [], yaz: ["kaynak.yaz"] },
} as const

function araciDogrula(ajan: AjanKimligi, arac: AracKimligi, kapi: Kapi) {
  if (!izinli(ajan, arac)) throw new PolitikaReddi(ajan, arac)
  if (yazmaMi(arac) && kapi !== "acik") throw new KapiKapali()
}

Veri tarafında da aynı kural geçerli. Şirket evrakı genel amaçlı modellerin eğitimine gitmez; orkestrasyon izole ağda, doğrulamalı erişimle yürür. Arayıcı kurumsal hafızayı görür, uygulayıcı görmez. “Ajanın her şeyi görsün ki daha zeki olsun” talebi, tam da tek döngünün bizi soktuğu tuzaktı.

Ne değişti, ne değişmedi

Sonuç, “otonom iş gücü piyasaya sürüldü” cümlesi değil. Operasyonun gördüğü şey daha sade: hata artık bir düğümde duruyor, yazma artık bir kapıdan geçiyor, karar artık iz bırakıyor.

Düğüme özel yeniden deneme

Son yazmanın zaman aşımı, tüm evrak zincirini yeniden koşturmaz.

Salt okunur arayıcı

Arama ajanının yazma istemcisi olmadığı için ‘yanlışlıkla kayıt’ sınıfı kapandı.

İzlenebilir karar

Denetimde sohbet dökümü değil; hangi düğüm, hangi kanıt, hangi kapı görünür.

Paralel alt graf

Bağımsız sınıflandırma ve kurumsal hafıza araması, evrak hattında duvar saatini kıstı.

calisma-ani/dugum-yeniden-dene.ts
kod
async function dugumuCalistir(dugum: Dugum, baglam: CalismaBaglami) {
  try {
    return await dugum.calistir(baglam)
  } catch (hata) {
    if (yenidenDenenebilir(hata) && baglam.deneme < dugum.azamiDeneme) {
      return dugumuCalistir(dugum, arttir(baglam))
    }
    baglam.iz.basarisiz(dugum.id, hata)
    throw hata // tüm grafı baştan oynatma
  }
}

Çoklu ajan her yere gerekmez

Bir sıkça sorulan sorular botu, tek bir kurumsal hafıza ajanı ile durabilir. Tek adımlı sınıflandırma, bir model çağrısıdır. Çoklu-ajan orkestrasyonu; karışık okuma/yazma, paralel uzmanlık ve geri alınamayan yan etki aynı süreçte biriktiğinde maliyetini öder. Aksi halde graf, demo’daki tek ajan kadar gereksiz karmaşa olur — yalnızca daha pahalı.

graf/ne-zaman-degil.ts
kod
// SSS + kurumsal hafıza → tek ajan yeter
if (!akis.yazmaVar && !akis.paralelVar) {
  return tekAjan(akis)
}

// karışık okuma/yazma + insan kapısı → graf
return graf(akis.dugumler)

Öğrendiğimiz şey ürün adı değil, bir ayrım: modeli zeki tut, yetkiyi dar tut, süreci görünür tut. Orkestrasyon bu üçünün aynı anda durduğu yerdir. Ajan sayısı hedef değildir; hedef, hangi adımın otonom, hangisinin kapılı olduğunu dürüstçe çizebilmektir.

Açık kaynak örnekKozmoz-Inovasyon/evrak-orkestrasyonuBu yazıdaki evrak hattının temel, çalıştırılabilir hali. Dil modeli anahtarı gerekmez; grafı, kapıyı ve düğüme özel yeniden denemeyi yerelde koşturabilirsiniz.

Süreç konuşması

Kendi hattınızda otonomi ile kapı karışıyor mu?

Demo ile canlı süreç arasındaki fark genelde modelde değil, hangi adımın ajan, hangisinin insan onayı olduğunda çıkar. O sınırı birlikte çizebiliriz.