Ketika Satu Agent Tidak Cukup
Saya pernah mengerjakan proyek untuk klien di Bandung yang butuh sistem AI untuk memproses invoice, mengkategorikan dokumen, dan mengekstrak data ke database secara otomatis. Satu agent? Tidak mungkin. Kompleksitasnya terlalu tinggi. Di sinilah multi-agent systems menjadi solusi.
Dalam dunia nyata, masalah bisnis itu sangat langka untuk bisa diselesaikan oleh satu agen saja. Multi-agent systems memungkinkan beberapa AI agent bekerja sama, masing-masing dengan keahlian spesifik, untuk menyelesaikan tugas yang lebih besar.
Architectural Patterns untuk Multi-Agent Systems
Ada beberapa pattern yang sudah saya gunakan di production:
1. Supervisor Pattern — Ada satu agent "atasan" yang menugaskan tugas ke agent lain. Cocok untuk workflow linear.
2. Peer-to-Peer Pattern — Semua agent setara dan bisa saling meminta bantuan. Cocok untuk problem solving yang non-linear.
3. Hierarchical Pattern — Struktur berjenjang seperti organisasi perusahaan. Cocok untuk sistem yang sangat kompleks.
Implementasi: Multi-Agent Document Processing
Berikut contoh dari proyek nyata yang pernah saya kerjakan:
from langchain.agents import AgentExecutor
from langchain_openai import ChatOpenAI
reader_agent = create_agent(
name="DocumentReader",
role="Membaca dan mengekstrak teks dari PDF/dokumen",
tools=[pdf_reader_tool, ocr_tool]
)
extractor_agent = create_agent(
name="DataExtractor",
role="Mengidentifikasi field penting: nomor invoice, tanggal, jumlah",
tools=[regex_tool, nlp_tool]
)
writer_agent = create_agent(
name="DatabaseWriter",
role="Menyimpan data yang sudah diekstrak ke database",
tools=[db_insert_tool, validation_tool]
)
supervisor = AgentSupervisor(
agents=[reader_agent, extractor_agent, writer_agent],
workflow=[reader_agent, extractor_agent, writer_agent]
)
Pelajaran dari Lapangan
Dari pengalaman saya, tantangan terbesar multi-agent systems bukan di coding-nya, tapi di koordinasi dan error handling. Bagaimana kalau agent kedua gagal? Bagaimana jika agent pertama menghasilkan output yang tidak valid?
Saya selalu menerapkan pattern "fail-forward" — setiap agent punya mekanisme retry dan fallback. Dan yang paling penting, setiap komunikasi antar agent harus terstruktur. Jangan pernah biarkan agent mengirim string bebas ke agent lain. Gunakan structured output (JSON) untuk semua inter-agent communication.
Kapan Harus Pakai Multi-Agent?
Jangan terlalu cepat pakai multi-agent. Kalau masalah bisa diselesaikan dengan satu agent yang well-designed, itu sudah cukup. Multi-agent sebaiknya digunakan ketika: tugasnya terlalu kompleks untuk satu prompt, kamu butuh different tools yang terpisah, atau ada kebutuhan paralel processing.
Tools dan Framework untuk Multi-Agent
Selain LangChain, ada beberapa tools lain yang pernah saya gunakan. CrewAI sangat bagus untuk membangun agent teams dengan role-playing yang natural. AutoGen dari Microsoft powerful untuk conversational multi-agent systems. Dan semantic-kernel cocok kalau kamu butuh integrasi erat dengan ekosistem Microsoft/Azure.
Dari sisi infrastruktur, saya biasanya pakai message broker seperti NATS atau RabbitMQ untuk komunikasi antar agent. Ini memberikan reliability dan scalability yang dibutuhkan di production. Jangan pernah pakai HTTP langsung antar agent — itu terlalu fragile untuk production use.