Orkestratör-Alt Ajan Deseni
Bir planlayıcı ajanın görevleri alt görevlere ayırdığı, uzman ajanlara devrettiği ve sonuçlarını nihai bir çıktıda birleştirdiği orkestratör-alt ajan desenini uygulayın.
Orkestratör-Alt Ajan Deseni, CoddyKit'te ücretsiz bir AI Engineering Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Engineering Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Engineering Academy kursu toplamda 4 dersten oluşur.
Düzenleyici-Alt Aracı Zihinsel Modeli
Düzenleyici-alt aracı örüntüsü, en yaygın kullanılan çok aracılı mimaridir. Bir düzenleyici aracı üst düzey bir hedef alır, bunu alt görevlere ayırır, her alt görevi uzmanlaşmış bir alt aracıya devreder, sonuçları toplar ve nihai bir çıktı oluşturur. Düzenleyiciyi proje yöneticisi, alt aracıları da ekipteki alan uzmanları olarak düşünebilirsiniz.
Düzenleyicinin Sorumlulukları
Düzenleyicinin üç temel sorumluluğu vardır: ayrıştırma (hedefi somut ve uygulanabilir alt görevlere bölme), yetki devri (her alt görevi doğru uzmana atama) ve sentez (alt aracı çıktılarını tutarlı bir sonuçta birleştirme). Düzenleyicinin kendisi alana özgü işlerin çok azını yapar; değeri koordinasyondadır.
from openai import OpenAI
client = OpenAI()
def orchestrator(goal: str) -> dict:
# Step 1: Decompose
plan = client.chat.completions.create(
model='gpt-4o',
messages=[
{'role': 'system', 'content': 'You are a task planner. Decompose the goal into subtasks. Return JSON with keys: researcher_task, writer_task, coder_task.'},
{'role': 'user', 'content': goal}
],
response_format={'type': 'json_object'}
)
return plan.choices[0].message.contentUzmanlaşmış Alt Aracıları Tasarlama
Her alt aracı tek bir sorumluluk için optimize edilir. Uzmanlaşma şunları gerektirir: rolü tanımlayan odaklanmış bir sistem istemi, yalnızca bu rolle ilgili küçük bir araç kümesi (3-5 araç) ve yalnızca alt görev için gereken bilgileri içeren bir bağlam penceresi. Odaklanmış aracılar daha iyi kararlar verir ve değerlendirilmeleri ile hatalarının ayıklanması daha kolaydır.
def create_researcher_agent():
return {
'model': 'gpt-4o',
'system': '''You are a research specialist. Your only job is to find accurate,
cited information. Return structured findings with sources.
Do NOT write prose or code - only research findings.''',
'tools': ['search_web', 'fetch_url', 'query_arxiv'], # 3 tools only
'max_iterations': 10
}
def create_writer_agent():
return {
'model': 'gpt-4o',
'system': '''You are a technical writer. Transform research findings into clear,
engaging prose. You receive structured data and return polished text.''',
'tools': ['format_markdown', 'check_readability'], # 2 tools only
'max_iterations': 5
}Yetki Devri Protokolü
Delegasyonun çalışması için orkestratör, her alt araca iyi biçimlendirilmiş görev paketleri iletmelidir. Bir görev paketi şunları içerir: bu alt araç için belirli hedef, ihtiyaç duyduğu ilgili bağlam (tüm konuşma geçmişi değil), beklenen çıktı biçimi ve tüm kısıtlamalar. Kötü biçimlendirilmiş görev paketleri, orkestratör ile alt araç arasındaki hataların en yaygın kaynağıdır.
from dataclasses import dataclass
from typing import Optional
@dataclass
class TaskPacket:
task_id: str
assignee: str # which subagent receives this
goal: str # specific, actionable goal
context: str # only relevant background
output_format: str # JSON schema or description
constraints: list[str] # e.g. ['max 500 words', 'cite sources']
deadline_steps: int # max iterations allowed
def delegate(packet: TaskPacket, subagent_fn) -> str:
prompt = f'Goal: {packet.goal}\nContext: {packet.context}\nOutput format: {packet.output_format}\nConstraints: {packet.constraints}'
return subagent_fn(prompt)Sonuçları Toplama ve Birleştirme
Alt araçlar çalışmalarını tamamladığında orkestratör sonuçları birleştirmelidir. Bu işlem yalnızca sonuçları art arda eklemekten ibaret değildir. Orkestratör, alt araçların çıktıları arasındaki çelişkileri çözmeli, eksikleri tamamlamalı, tutarlı bir üslubu veya biçimi korumalı ve bütünüyle uyumlu bir nihai sonuç üretmelidir. Birleştirme adımı, orkestratörün akıl yürütme gücüne en çok ihtiyaç duyulan aşamadır.
def synthesize_results(research: str, draft: str, code: str, goal: str) -> str:
synthesis_prompt = f'''You are given outputs from three specialist agents.
Your job is to synthesize them into one coherent final answer for this goal: {goal}
RESEARCH FINDINGS:
{research}
WRITTEN DRAFT:
{draft}
CODE EXAMPLES:
{code}
Resolve any conflicts, fill gaps, and produce a unified final response.
'''
response = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': synthesis_prompt}]
)
return response.choices[0].message.contentSıralı ve Paralel Delegasyon
Orkestratörler görevleri sıralı olarak (bir alt aracın çıktısı diğerine aktarılır) veya paralel olarak (birden fazla alt araç aynı anda çalışır) devredebilir. Sıralı delegasyon daha basittir ve sonraki adımlar önceki sonuçlara bağlı olduğunda işe yarar. Paralel delegasyon, alt görevler birbirinden bağımsız olduğunda daha hızlıdır ve eşzamanlı çalışabildikleri için çoğu zaman geçen süreyi 3–5 kat azaltır.
import asyncio
# Sequential: writer needs research first
async def sequential_pipeline(goal):
research = await researcher_agent(goal)
draft = await writer_agent(research) # depends on research
return draft
# Parallel: all three tasks are independent
async def parallel_pipeline(topics):
tasks = [
researcher_agent(topics[0]),
researcher_agent(topics[1]),
researcher_agent(topics[2])
]
results = await asyncio.gather(*tasks) # runs simultaneously
return orchestrator_synthesize(results)Alt Araç Hatalarını Yönetme
Alt araçlar zaman zaman başarısız olabilir; hatalı biçimlendirilmiş çıktı döndürebilir, yineleme sınırını aşabilir veya bir hatayla karşılaşabilir. Orkestratör bu hataları uygun şekilde yönetmelidir. Yaygın stratejiler şunlardır: açıklığa kavuşturulmuş bir görev paketiyle yeniden denemek, daha basit bir yaklaşıma geri dönmek, başarısız alt görevi atlayıp bunu nihai çıktıda belirtmek veya insan incelemesine yükseltmek.
def delegate_with_retry(packet: TaskPacket, subagent_fn, max_retries=2):
for attempt in range(max_retries + 1):
try:
result = subagent_fn(packet)
validate_output(result, packet.output_format)
return result
except ValidationError as e:
if attempt < max_retries:
# Clarify the task for retry
packet.goal += f'\n\nPrevious attempt failed: {str(e)}. Please fix.'
print(f'Retry {attempt + 1} for task {packet.task_id}')
else:
return {'error': str(e), 'task_id': packet.task_id, 'status': 'failed'}Orkestratöre İyi İstemler Verme
Orkestratörün sistem istemi, tüm pipeline'ın kalitesi açısından kritik öneme sahiptir. Şunları açıkça tanımlamalıdır: hangi alt araçların kullanılabildiği ve her birinin hangi konuda uzmanlaştığı, görev paketlerinin nasıl biçimlendirileceği, alt görevlerin ne zaman paralel veya sıralı çalıştırılacağı, eksik ya da çelişkili sonuçların nasıl ele alınacağı ve başarılı bir nihai çıktının ne olduğu.
ORCHESTRATOR_SYSTEM_PROMPT = '''
You coordinate a team of specialist agents to complete complex tasks.
Available agents:
- researcher: Finds and cites factual information. Input: question string. Output: JSON with findings and sources.
- writer: Writes polished prose from structured data. Input: JSON findings. Output: markdown text.
- coder: Writes Python code. Input: natural language spec. Output: Python code string.
Workflow:
1. Analyze the goal and decide which agents are needed.
2. Identify dependencies: can any tasks run in parallel?
3. Delegate tasks with clear, specific goals.
4. Validate each result before proceeding.
5. Synthesize all results into a unified final answer.
'''Bağlam Yalıtımı Bir Özelliktir
Orkestratör–alt araç modelinin önemli avantajlarından biri bağlam yalıtımıdır. Her alt araç, projenin tüm geçmişini değil, yalnızca kendi alt göreviyle ilgili bilgileri görür. Bu, her alt aracın bağlam penceresini küçük tutarak tekil aracıları zorlayan bağlam tükenmesini önler. Orkestratör genel görünümü korurken alt araçlar odaklanmış yerel görünümleri korur.
İzleme ve Gözlemlenebilirlik
Çok aracılı sistemlerde hata ayıklamak, hatalar herhangi bir delegasyon adımında ortaya çıkabildiği için tekil aracılara göre daha zordur. Şunları izlemek için her zaman yapılandırılmış günlük kaydı ekleyin: hangi görevlerin hangi alt araca devredildiği, girdinin ve çıktının ne olduğu, her görevin ne kadar sürdüğü ve yeniden denemelerin gerekip gerekmediği. LangSmith ve Langfuse gibi araçlar, çok aracılı izlerin görselleştirilmesini destekler.
import time
def logged_delegate(packet: TaskPacket, subagent_fn):
start = time.time()
print(f'[DELEGATE] task_id={packet.task_id} assignee={packet.assignee}')
print(f'[INPUT] {packet.goal[:100]}...')
result = subagent_fn(packet)
elapsed = time.time() - start
print(f'[RESULT] task_id={packet.task_id} elapsed={elapsed:.2f}s')
print(f'[OUTPUT] {str(result)[:100]}...')
return resultGerçek Dünya Örneği: Rapor Oluşturucu
Orkestratör–alt araç modelinin somut bir örneği, rekabet analizi raporu oluşturucudur. Orkestratör, “X Şirketi için rakip analizi yaz” isteğini alır. Şunları devreder: fiyatları, özellikleri ve incelemeleri bulan bir araştırmacı araca araştırma alt görevi; güçlü ve zayıf yönleri belirleyen bir analiz aracına analiz alt görevi; nihai raporu oluşturan bir yazar aracına biçimlendirme alt görevi. Her uzman, en iyi yaptığı işi yapar.
Kısa Kontrol
Bu derste öğrendiğiniz orkestratör–alt araç modelini ne kadar anladığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: orkestratör–alt araç modeli, çalışmayı parçalara ayırıp uzmanlara devretmek için bir koordinatör aracı kullanır; delegasyonun çalışması için görev paketleri hedefi, bağlamı ve beklenen çıktı biçimini açıkça tanımlamalıdır; bağlam yalıtımı, orkestratör genel görünümü korurken her alt aracın penceresini küçük tutar. Sırada LangGraph ile çok aracılı pipeline'lar oluşturacağız.
Sıkça Sorulan Sorular
“Orkestratör-Alt Ajan Deseni” dersi ücretsiz mi?
Evet — “Orkestratör-Alt Ajan Deseni” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Engineering Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Engineering Academy kursu toplamda 4 dersten oluşur.
“Orkestratör-Alt Ajan Deseni” dersinde ne öğreneceğim?
Bir planlayıcı ajanın görevleri alt görevlere ayırdığı, uzman ajanlara devrettiği ve sonuçlarını nihai bir çıktıda birleştirdiği orkestratör-alt ajan desenini uygulayın. AI Engineering Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Engineering Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Engineering Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Orkestratör-Alt Ajan Deseni” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Engineering Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Engineering Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Tekil Ajanların Neden Tıkandığı
- Orkestratör-Alt Ajan Deseni
- LangGraph ile Çok Ajanlı İş Akışları Oluşturma
- Paylaşılan Bellek ve Ajanlar Arası İletişim