Deep Agents'ta Dinamik Alt Temsilciler ile Tanışın

@sydneyrunkle
İNGILIZCE2 gün önce · 29 Haz 2026
138K
300
52
12
555

TL;DR

Sydney Runkle, Deep Agents'ta araç çağırmadan programatik orkestrasyona geçişi detaylandırıyor; bu sayede modeller, karmaşık ve çok aşamalı alt temsilci iş akışlarını yöneten betikler yazabiliyor.

Ajanlar daha iddialı görevler üstlendikçe, aşağıdaki konularda zorlanıyorlar:

  1. İşi güvenilir bir şekilde ölçekte tamamlama
  2. Kendi bağlamlarını yönetme

Bu zorlukların üstesinden gelmek için dinamik alt ajanlar adını verdiğimiz bir yaklaşım üzerinde denemeler yapıyoruz: Ajan, alt ajan görevlerini genel araç çağrılarıyla iletmek yerine, alt ajan yürütmesini yöneten kısa bir betik yazar. Bu, modellerin yazmakta iyi oldukları kod kalıplarına (döngüler, dallanmalar veya eşzamanlılık gibi) güvenerek göreve uygun orkestrasyon mantığı yazmalarını sağlar.

Neden dinamik alt ajanlar?

Deep Agents zaten alt ajanları destekliyor. Alt ajanlar, bağlamı izole eder, ana ajanın ayrık iş birimlerini devretmesine izin verir ve ara sonuçları ana bağlam penceresinin dışında tutar. Peki neden dinamik alt ajanlara ihtiyacımız var?

Normal alt ajanlarda, ana model onları doğrudan çağırarak her seferinde bir tane çağırır. Bu, küçük ölçekte işe yarar. Ancak yüzlerce alt ajan oluşturmanız gerektiğinde veya orkestrasyon mantığı koşullu ya da çok aşamalı olduğunda bu yöntem yetersiz kalır.

Dinamik alt ajanlar bunu programatik orkestrasyon ile çözer. Ajan, sırayla araç çağrıları yapmak yerine, alt ajanları orkestrasyon eden ve çağıran kısa bir betik yazar ve bunu hafif bir yorumlayıcıda çalıştırır.

Kanonik örnek: 300 sayfalık bir belgenin her sayfası için bir alt ajan. Ajan, alt ajan aracını 300 kez çağırmak yerine bir döngü yazar:

javascript
1const results = await Promise.all(pages.map(page =>
2 task({ description: `Özetleme sayfa ${page.number}`, subagentType: "summarizer" })
3));

Bu, araç çağrısı tabanlı orkestrasyonun güvenilir bir şekilde sunamayacağı iki şeyi mümkün kılar:

Ölçekte belirleyici kapsam. Yapı olmadan ajanlar, kapsam hakkında yargı kararları verir, 500 öğeden 75'ini tarar ve işi biter sayar. Bir dağıtım döngüsü bunu yapmaz. Kapsam, bir prompt mühendisliği sorunu değil, yapısal bir garanti haline gelir.

Güvenilir karmaşık orkestrasyon. Orkestrasyonu kod olarak yazmak, modelin bunu bir dizi araç çağrısı olarak yeniden üretmesinden daha güvenilirdir. Özellikle de yayılma + sentez, çok aşamalı iş hatları veya koşullu dallanma için.

Bu, Claude Code'daki iş akışları ve Yinelemeli Dil Modelleri (RLM'ler) ile aynı fikirdir: Bir model kod yazar ve bu kod daha fazla ajan gönderir.

Hızlı Başlangıç

Dinamik alt ajanlar iki şey gerektirir: iş dağıtmak için alt ajanlar ve bir kod yorumlayıcısı: modelin orkestrasyon kodunu yazdığı ve yürüttüğü güvenli, hafif bir çalışma zamanı. Deep Agents, QuickJS tabanlı isteğe bağlı bir kod yorumlayıcısı içerir. Kullanmak için QuickJS ara katman yazılımı paketini kurun, ardından create_deep_agent üzerindeki middleware argümanı aracılığıyla CodeInterpreterMiddleware'i iletin.

bash
1pip install -U "deepagents[quickjs]"
python
1from deepagents import create_deep_agent
2from langchain_quickjs import CodeInterpreterMiddleware
3
4agent = create_deep_agent(
5 model="openai:gpt-5.5",
6 middleware=[CodeInterpreterMiddleware()],
7)

Deep Agents, yerleşik genel amaçlı bir alt ajan ile birlikte gelir, bu nedenle iş akışlarında kullanılabilecek hazır bir genel alt ajan profili vardır. Özelleştirilmiş iş akışları için, kendi adlarına, açıklamalarına ve sistem promptlarına sahip özel alt ajanlar yapılandırın: adlar ve açıklamalar, ajanın hangi role başvuracağını bilmesini sağlar.

Dinamik alt ajanları tetiklemek için, ajanınıza "workflow" kelimesini içeren bir prompt verin, örneğin:

python
1result = await agent.ainvoke({
2 "messages": [{"role": "user", "content": "src/routes/ dizinindeki her dosyayı inceleyen ve en önemli riskleri özetleyen bir iş akışı çalıştır."}]
3})

Kodlama ajanı ile kullanım

Dinamik alt ajanları denemenin en hızlı yolu, Deep Agent kullanılarak oluşturulmuş terminal kodlama ajanımız olan dcode'dur. Kod yorumlayıcısı etkin olarak gelir, bu nedenle bağlantı kurmanız gerekmez. Dinamik alt ajanlar kutudan çıktığı gibi çalışır.

Kurulum

bash
1curl -LsSf https://langch.in/dcode | bash

Çalıştırma

bash
1dcode

Dinamik alt ajanları tetiklemek için sadece bir "workflow" isteyin. Ajan, işi kendisi yapmaya çalışmak veya yerel görev aracıyla alt ajan dağıtımlarını yönetmek yerine, yerleşik task() globalini çağıran ve kod yorumlayıcısında yürüten bir orkestrasyon betiği yazar. Örneğin: "src/ dizinindeki her dosyayı SQL enjeksiyonuna karşı incelemek için bir _workflow_ çalıştır."

Alt ajanlar oluştukça, dcode bunları dağıtıma göre aşamalar halinde gruplandırılmış dinamik alt ajanlar panelinde canlı olarak gösterir.

Sydney Runkle - inline image

Bunu en hızlı şekilde dcode ile deneyebilirsiniz, ancak ACP aracılığıyla tercih ettiğiniz araçta da (Zed gibi) kullanabilirsiniz.

Nasıl Çalışır?

Ajana bir değerlendirme aracı verilir. Yorumlayıcının içinde güvenli bir şekilde yürütülen JavaScript kodu yazar. Alt ajanlar yapılandırıldığında, yorumlayıcı, bunları koddan gönderen yerleşik bir task() globali sunar. Eldeki göreve bağlı olarak model farklı kodlar yazar (bir döngü, bir dal, bir Promise.all) ve yorumlayıcı bunu belirleyici bir şekilde çalıştırır.

Sydney Runkle - inline image

task() bir açıklama, bir subagentType ve isteğe bağlı bir responseSchema alır. ResponseSchema sağlandığında, sonuç zaten yazılmış bir nesnedir ve filtrelenmeye veya bir sonraki adıma geçirilmeye hazırdır.

javascript
1const result = await task({
2 description: "src/auth/login.ts dosyasını güvenlik sorunlarına karşı incele.",
3 subagentType: "reviewer",
4 responseSchema: {
5 type: "object",
6 properties: {
7 severity: { type: "string", enum: ["high", "medium", "low"] },
8 issues: { type: "array", items: { type: "string" } },
9 },
10 },
11});
12
13const critical = result.severity === "high" ? result.issues : [];
14critical; // model en son satırı görür

Daha fazla bilgi için dokümanlardaki Programatik alt ajanlar ve Yorumlayıcılar bölümlerine bakın.

Yaygın Orkestrasyon Kalıpları

Anthropic'in dinamik iş akışları, paralel ajan çalışmaları için bir dizi orkestrasyon kalıbını popüler hale getirdi. Bunlar açabileceğiniz özellikler değildir. Bunlar, işin doğal olarak ortaya çıkardığı şekillerdir ve ajan, görev değiştikçe farklı bir kalıba geçer. Aşağıdaki tablo, her bir kalıbı hangi tür işe uyduğuyla eşleştirir.

Sydney Runkle - inline image

Aşağıda, canlı izlemelerle birlikte her birinin Deep Agents'te nasıl çalıştığını inceleyeceğiz. Ayrıca bu altı kalıbı açıklayan bir video hazırladık, buradan izleyebilirsiniz.

Sınıflandır ve harekete geç

Öğeler önce sınıflandırılır, ardından her öğe, sınıflandırmasına göre uzmanlaşmış bir alt ajan tarafından işlenir. Bu, farklı öğelerin farklı uzmanlık gerektirdiği karma girdileri işlemenizi sağlar.

Sydney Runkle - inline image

Kullanım alanları: Destek taleplerini, hata günlüklerini, kullanıcı geri bildirimlerini veya türüne bağlı olarak farklı işlem gerektiren herhangi bir öğe grubunu önceliklendirme.

Örnek: Bir destek talebi birikimini önceliklendirme. Ajan talepleri okur ve her birini hata, özellik talebi veya soru olarak sınıflandırır. Hatalar bir hata araştırmacısına, özellik talepleri bir özellik analistine ve sorular bir destek yanıtlayıcısına gider. Sonuç, kategoriye göre gruplandırılmış bir özettir.

İzlemeyi buradan görüntüleyin.

Yay ve sentezle

Ajan, aynı türdeki işi birçok öğeye paralel olarak dağıtır ve ardından sonuçları birleştirir.

Sydney Runkle - inline image

Kullanım alanları: Bir dizin genelinde kod incelemesi, bir grup belgeyi analiz etme, günlük dosyalarını işleme, birçok hizmette aynı kontrolü çalıştırma.

Örnek: bir kaynak ağacı genelinde dosya bazında güvenlik incelemesi. Ajan, src/ altındaki her TypeScript dosyasını keşfeder ve her dosya için paralel olarak bir güvenlik incelemecisi gönderir. Ardından sonuçları, önem dereceleri ve değiştirilmesi gereken satırlarla birlikte tek bir önceliklendirilmiş raporda birleştirir.

İzlemeyi buradan görüntüleyin.

Çekişmeli doğrulama

İki geçişli bir kalıptır. İlk geçiş bulguları üretir. İkinci geçiş, her bulguyu bağımsız doğrulayıcılara gönderir ve yalnızca üzerinde anlaşmaya varılan bulgular korunur. Bu, hızdan çok güvenin önemli olduğu durumlarda yanlış pozitifleri azaltır.

Sydney Runkle - inline image

Kullanım alanları: Yanlış pozitiflerin maliyetli olduğu güvenlik denetimleri, uyumluluk kontrolleri, bulgularda yüksek güven gerektiren herhangi bir inceleme.

Örnek: yanlış pozitiflerin kabul edilemez olduğu bir güvenlik denetimi. Bir denetçi, olası güvenlik açıkları için geniş bir ağ atar, ardından her bulgu, kodu yeniden okuyan ve DOĞRULANDI veya REDDEDİLDİ kararı veren bağımsız bir doğrulayıcıya teslim edilir. Yalnızca doğrulanan bulgular nihai rapora dahil edilir.

İzlemeyi buradan görüntüleyin.

Oluştur ve filtrele

Birden çok alt ajan, aynı soruna bağımsız çözümler üretir. Ajan, sonuçları kod içinde karşılaştırır, puanlar ve filtreleyerek yalnızca en iyilerini tutar.

Sydney Runkle - inline image

Kullanım alanları: Mimari önerileri, yeniden düzenleme stratejileri, içerik varyasyonları, karar vermeden önce birden çok seçeneği keşfetmenin daha iyi bir sonuç ürettiği herhangi bir görev.

Örnek: sıralanmış, rekabet eden hız sınırlayıcı yeniden tasarımları. Ajanın, rate-limiter.ts dosyasının birkaç bağımsız yeniden tasarımını üretmesi için bir mimarı vardır; her biri kendi dosyasına yazılır, böylece üzerine yazmazlar. Ardından bunları ani yük altında doğruluk, çoklu örnek desteği ve karmaşıklık açısından puanlar. En güçlü olan kazanır ve nedenine dair bir gerekçe sunulur.

İzlemeyi buradan görüntüleyin.

Turnuva

Varyasyonlar, bir jüri alt ajanı tarafından bire bir karşılaştırılır ve kazananlar eleme turlarıyla ilerler.

Sydney Runkle - inline image

Kullanım alanları: Öznel kriterler altında optimizasyon, stil seçimi, rekabet eden uygulamalar arasında seçim yapma.

Örnek: karmaşık bir createOrder işleyicisinin yeniden yazımları üzerinde ikili eşleşmeli bir turnuva. Birkaç yazarın her biri farklı önceliklere sahip aday yeniden yazımlar üretir, ardından bir jüri onları bire bir karşılaştırır, bir şampiyon ortaya çıkana kadar kazananları tur tur ilerletir. Jüri, gerekçesiyle birlikte geri döner.

İzlemeyi buradan görüntüleyin.

Bitene kadar döngüye devam et

Ajan, daha önce bulduklarına karşı yinelenenleri temizleyerek bir keşif döngüsü çalıştırır ve yeni sonuç kalmayana kadar devam eder. İşin kapsamı önceden bilinmediğinde kullanışlıdır.

Sydney Runkle - inline image

Kullanım alanları: Kapsamlı arama, ölü kod tespiti, bağımlılık denetimleri, sabit sayıda sonuç yerine eksiksizlik istediğiniz herhangi bir tarama.

Örnek: geçiş tabanlı bir güvenlik taraması. Ajan bir tarama geçişi çalıştırır, kodda bulduklarını inceler ve yalnızca önceki geçiş yeni sorunlar ortaya çıkardıysa başka bir geçiş başlatır. Bir geçiş hiçbir yeni şey bulamadığında durur. Birleştirilmiş bulguları ve kaç geçiş yaptığını raporlar.

İzlemeyi buradan görüntüleyin.

Sonuç

Dinamik alt ajanlar, ajanlara daha fazla özerklik ve artırılmış güvenilirlik vermenin yoludur. Kod, kapsamı ve ara bağlamı hallederken, model yine de ağırlıklı yargı işini yapar. Yukarıdaki kalıplar bir başlangıç noktasıdır. Pratikte ajanlar, görevin gerektirdiklerine göre bunları birleştirir ve karıştırır.

Bu, Yinelemeli Dil Modeli fikrinin en basit halidir. Kod yazan bir ajan ve bu kod daha fazla ajan gönderir. Kendini yinelemeli olarak çağıran ve bir bağlam penceresiyle sınırlandırılmayan veya sabit bir iş akışına hapsedilmeyen bir ajandır. Bir ajan, sorunu gerektiği kadar parçalara ayırabilir ve parçaları uygun olan herhangi bir şekilde yeniden birleştirebilir. Yukarıda vurgulanan orkestrasyon kalıpları, mümkün olanın erken birer görüntüsüdür, ancak modeller kod yazmada daha iyi hale geldikçe tavan yükselmeye devam edecektir.

Dinamik alt ajanlar, Deep Agents'in bunu bugün sizin kullanımınıza sunma şeklidir. Ajanınıza bir kod yorumlayıcısı ekleyerek başlayın veya dinamik alt ajanların kutudan çıktığı gibi çalıştığı dcode'a yönelin.

Teşekkürler

@colifran_ ve @huntlovell ile ortak yazılmıştır. Düşünceli incelemeleri için @hwchase17, @masondrxy ve @chester_curme'e teşekkürler.

Save to YouMind

Use YouMind to read viral articles deeply

Save the source, ask focused questions, summarize the argument, and turn a viral article into reusable notes in one AI workspace.

Explore YouMind

Çözülecek daha fazla kalıp

Son viral makaleler

Daha fazla viral makale keşfet