Pola Orkestrator-Subagen
Implementasikan pola orkestrator-subagen, yaitu agen perencana memecah tugas menjadi subtugas, mendelegasikannya kepada agen spesialis, lalu menyintesis hasilnya menjadi keluaran akhir.
Pola Orkestrator-Subagen adalah pelajaran AI Engineering Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Engineering Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Engineering Academy mencakup 4 pelajaran total.
Model Mental Orkestrator-Subagen
Pola orkestrator-subagen adalah arsitektur multi-agen yang paling banyak digunakan. Agen orkestrator menerima tujuan tingkat tinggi, menguraikannya menjadi subtugas, mendelegasikan setiap subtugas kepada subagen khusus, mengumpulkan hasilnya, dan menyintesis keluaran akhir. Bayangkan orkestrator sebagai manajer proyek dan subagen sebagai pakar domain dalam tim.
Tanggung Jawab Orkestrator
Orkestrator memiliki tiga tanggung jawab utama: dekomposisi (memecah tujuan menjadi subtugas yang konkret dan dapat ditindaklanjuti), delegasi (menugaskan setiap subtugas kepada spesialis yang tepat), dan sintesis (menggabungkan keluaran subagen menjadi hasil yang koheren). Orkestrator sendiri hanya melakukan sedikit pekerjaan khusus domain—nilainya terletak pada koordinasi.
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.contentMerancang Subagen Khusus
Setiap subagen dioptimalkan untuk satu tanggung jawab. Spesialisasi berarti: perintah sistem terfokus yang mendefinisikan peran, sekumpulan kecil alat (3–5) yang hanya relevan untuk peran tersebut, dan jendela konteks yang hanya berisi informasi yang diperlukan untuk subtugas itu. Agen yang terfokus membuat keputusan yang lebih baik serta lebih mudah dievaluasi dan ditelusuri kesalahannya.
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
}Protokol Delegasi
Agar pendelegasian dapat berjalan, orkestrator harus meneruskan paket tugas yang tersusun dengan baik kepada setiap subagen. Paket tugas mencakup: tujuan khusus subagen tersebut, konteks relevan yang dibutuhkannya (bukan seluruh riwayat percakapan), format keluaran yang diharapkan, serta batasan apa pun. Paket tugas yang disusun dengan buruk merupakan sumber kegagalan orkestrator-subagen yang paling umum.
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)Mengumpulkan dan Menyintesis Hasil
Setelah subagen menyelesaikan tugasnya, orkestrator harus menyintesis hasilnya. Ini bukan sekadar penggabungan. Orkestrator harus menyelesaikan konflik antar keluaran subagen, melengkapi bagian yang kurang, mempertahankan gaya atau format yang konsisten, dan menghasilkan keluaran akhir yang menyeluruh serta koheren. Tahap sintesis adalah bagian yang paling membutuhkan kemampuan penalaran orkestrator.
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.contentPendelegasian Berurutan vs Paralel
Orkestrator dapat mendelegasikan tugas secara berurutan (keluaran satu subagen menjadi masukan bagi subagen berikutnya) atau secara paralel (beberapa subagen bekerja secara bersamaan). Pendelegasian berurutan lebih sederhana dan sesuai ketika langkah berikutnya bergantung pada hasil sebelumnya. Pendelegasian paralel lebih cepat ketika subtugasnya saling independen dan dapat berjalan secara bersamaan, sehingga sering kali mengurangi waktu nyata hingga 3–5 kali lipat.
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)Menangani Kegagalan Subagen
Subagen terkadang mengalami kegagalan — subagen mungkin mengembalikan keluaran yang formatnya tidak valid, melampaui batas iterasinya, atau mengalami error. Orkestrator harus menangani kegagalan ini dengan baik. Strategi yang umum mencakup: mencoba lagi dengan paket tugas yang diperjelas, menggunakan pendekatan yang lebih sederhana sebagai cadangan, melewati subtugas yang gagal dan mencatatnya dalam keluaran akhir, atau meneruskannya untuk ditinjau manusia.
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'}Menyusun Prompt Orkestrator dengan Baik
Prompt sistem orkestrator sangat penting bagi kualitas keseluruhan pipeline. Prompt tersebut harus menjelaskan dengan jelas: subagen apa saja yang tersedia dan bidang keahlian masing-masing, cara memformat paket tugas, kapan subtugas dijalankan secara paralel atau berurutan, cara menangani hasil yang tidak lengkap atau saling bertentangan, serta hal-hal yang menentukan keberhasilan keluaran akhir.
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.
'''Isolasi Konteks Adalah Fitur
Salah satu keunggulan utama pola orkestrator-subagen adalah isolasi konteks. Setiap subagen hanya melihat informasi yang relevan dengan subtugasnya, bukan seluruh riwayat proyek. Hal ini menjaga jendela konteks setiap subagen tetap kecil dan mencegah kehabisan konteks yang sering mengganggu agen tunggal. Orkestrator mempertahankan gambaran global, sementara subagen mempertahankan gambaran lokal yang terfokus.
Pelacakan dan Observabilitas
Sistem multiagen lebih sulit di-debug daripada agen tunggal karena kegagalan dapat terjadi pada langkah pendelegasian mana pun. Selalu tambahkan logging terstruktur untuk melacak: tugas mana yang didelegasikan, kepada subagen mana, seperti apa masukan dan keluarannya, berapa lama setiap tugas berlangsung, serta apakah percobaan ulang diperlukan. Alat seperti LangSmith dan Langfuse mendukung visualisasi jejak multiagen.
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 resultPola di Dunia Nyata: Pembuat Laporan
Contoh konkret pola orkestrator-subagen adalah pembuat laporan analisis persaingan. Orkestrator menerima permintaan "Tulis analisis pesaing untuk Perusahaan X". Orkestrator mendelegasikan: subtugas riset kepada agen peneliti (mencari harga, fitur, dan ulasan), subtugas analisis kepada agen analis (mengidentifikasi kekuatan dan kelemahan), serta subtugas pemformatan kepada agen penulis (menghasilkan laporan akhir). Setiap spesialis mengerjakan hal yang paling dikuasainya.
Pemeriksaan Singkat
Uji pemahaman Anda tentang pola orkestrator-subagen dari pelajaran ini.
Rangkuman Pelajaran
Dalam pelajaran ini Anda mempelajari bahwa: pola orkestrator-subagen menggunakan agen koordinator untuk menguraikan dan mendelegasikan pekerjaan kepada para spesialis, paket tugas harus mendefinisikan tujuan, konteks, dan format keluaran yang diharapkan dengan jelas agar pendelegasian dapat berjalan, serta isolasi konteks menjaga jendela setiap subagen tetap kecil sementara orkestrator mempertahankan gambaran global. Selanjutnya, kita akan membangun pipeline multiagen dengan LangGraph.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pola Orkestrator-Subagen” gratis?
Ya — teks lengkap “Pola Orkestrator-Subagen” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Engineering Academy, upgrade ke CoddyKit PRO. Kursus AI Engineering Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pola Orkestrator-Subagen”?
Implementasikan pola orkestrator-subagen, yaitu agen perencana memecah tugas menjadi subtugas, mendelegasikannya kepada agen spesialis, lalu menyintesis hasilnya menjadi keluaran akhir. Kamu berlatih AI Engineering Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai AI Engineering Academy?
Tidak diperlukan pengalaman sebelumnya. AI Engineering Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Pola Orkestrator-Subagen” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Engineering Academy ini?
Ya. Setiap pelajaran AI Engineering Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mengapa Agen Tunggal Menemui Jalan Buntu
- Pola Orkestrator-Subagen
- Membangun Alur Pemrosesan Multi-Agen dengan LangGraph
- Memori Bersama dan Komunikasi Antar-Agen