Tutorial Membangun Multi-Agent System dengan AutoGen dan Python
ND
Naufal Dev

Dipublikasikan 21 Juli 2026

Tutorial Membangun Multi-Agent System dengan AutoGen dan Python

Multi-agent system adalah arsitektur di mana beberapa AI agent bekerja sama untuk menyelesaikan tugas yang kompleks. Berbeda dengan single LLM call, pendekatan ini memungkinkan setiap agent memiliki peran spesifik dan berkolaborasi seperti tim manusia. Microsoft AutoGen adalah framework paling populer untuk membangun sistem semacam ini dengan Python. Artikel ini akan membimbing Anda membangun multi-agent system dari nol menggunakan AutoGen.

AutoGen menyederhanakan orchestration antar agent dengan conversation programming. Anda bisa mendefinisikan agent yang memiliki kemampuan berbeda: satu agent untuk coding, satu untuk review, dan satu lagi untuk testing. Mereka akan berdialog secara otomatis hingga tugas selesai. Berikut adalah panduan lengkap untuk memulai.

Langkah 1: Instalasi dan Setup Environment

Pastikan Anda memiliki Python 3.9 atau lebih baru. Buat virtual environment baru untuk project ini agar dependensi tidak bentrok dengan project lain.

python3 -m venv autogen-env
source autogen-env/bin/activate
pip install pyautogen

AutoGen memerlukan API key dari LLM provider. Anda bisa menggunakan OpenAI GPT-4, Anthropic Claude, atau model open source seperti Llama 3 melalui Ollama. Simpan API key di environment variable:

export OPENAI_API_KEY=sk-your-key-here

Jika Anda ingin menggunakan model lokal, install Ollama dan download model yang diinginkan. AutoGen mendukung berbagai backend melalui integrasi yang fleksibel. Untuk pengembangan awal, disarankan menggunakan OpenAI karena response time lebih cepat dan dokumentasi lebih lengkap. Pastikan Anda membaca dokumentasi resmi AutoGen di GitHub untuk informasi terbaru tentang kompatibilitas model.

Langkah 2: Definisikan Agent dengan Peran Berbeda

Dalam AutoGen, agent didefinisikan menggunakan class ConversableAgent atau subclass-nya seperti AssistantAgent dan UserProxyAgent. Setiap agent memiliki system message yang mendefinisikan perannya.

Berikut contoh definisi tiga agent:

from autogen import AssistantAgent, UserProxyAgent

coder = AssistantAgent(
    name="coder",
    system_message="You are a senior Python developer. Write clean, well-documented code.",
    llm_config={"model": "gpt-4o", "api_key": os.environ["OPENAI_API_KEY"]}
)

reviewer = AssistantAgent(
    name="reviewer",
    system_message="You are a code reviewer. Check for bugs, security issues, and best practices.",
    llm_config={"model": "gpt-4o", "api_key": os.environ["OPENAI_API_KEY"]}
)

user_proxy = UserProxyAgent(
    name="user_proxy",
    code_execution_config={"work_dir": "coding", "use_docker": False}
)

UserProxyAgent berperan sebagai human proxy yang bisa mengeksekusi kode dan memberikan feedback. Di production, Anda bisa mengaktifkan Docker untuk sandboxing eksekusi kode. System message sangat penting karena menentukan perilaku dan batasan setiap agent dalam percakapan. System message yang terlalu luas bisa membuat agent keluar dari topik, sedangkan yang terlalu ketat bisa membatasi kreativitas solusi.

Langkah 3: Atur Conversation Flow dengan GroupChat

Untuk membuat agent berkolaborasi, gunakan GroupChat dan GroupChatManager. Manager ini mengatur giliran bicara antar agent berdasarkan strategi yang Anda tentukan.

Contoh konfigurasi group chat:

from autogen import GroupChat, GroupChatManager

groupchat = GroupChat(
    agents=[user_proxy, coder, reviewer],
    messages=[],
    max_round=10
)

manager = GroupChatManager(
    groupchat=groupchat,
    llm_config={"model": "gpt-4o", "api_key": os.environ["OPENAI_API_KEY"]}
)

Parameter max_round membatasi jumlah iterasi percakapan untuk mencegah infinite loop. Anda juga bisa menambahkan speaker_selection_method untuk mengontrol urutan agent yang berbicara. Strategi default adalah auto yang membiarkan manager memilih agent berikutnya berdasarkan konteks percakapan. Anda juga bisa menggunakan round_robin untuk giliran yang lebih terstruktur.

Langkah 4: Jalankan Task dan Monitor Hasil

Untuk memulai percakapan, panggil method initiate_chat dari user_proxy:

user_proxy.initiate_chat(
    manager,
    message="Build a Python script that fetches weather data from Open-Meteo API and saves it to a CSV file."
)

AutoGen akan otomatis mengatur dialog: coder menulis kode, reviewer mengevaluasi, dan user_proxy mengeksekusi. Anda bisa memantau output di terminal. Jika terjadi error, user_proxy akan mengirimkan error message ke coder untuk diperbaiki.

Output kode akan disimpan di direktori coding sesuai konfigurasi. Anda bisa menambahkan custom termination condition seperti stop saat reviewer menyatakan code approved. Fitur ini memastikan kode yang dihasilkan memenuhi standar kualitas sebelum disimpan. Selalu periksa hasil akhir karena AI masih bisa menghasilkan bug logika meskipun sintaks benar.

Langkah 5: Deploy ke Production dengan Monitoring

Untuk production, Anda perlu menambahkan logging dan error handling. Gunakan library logging bawaan Python untuk mencatat setiap conversation turn. Simpan history chat ke database untuk audit trail.

Pertimbangkan juga untuk mengimplementasikan rate limiting karena setiap agent akan melakukan multiple LLM calls. Gunakan Redis atau in-memory queue untuk mengatur concurrency. Jika budget terbatas, Anda bisa mengganti GPT-4 dengan model open source yang lebih ringan untuk tugas yang tidak kritis. Monitoring cost sangat penting karena biaya token bisa melonjak dengan cepat saat menggunakan banyak agent.

Pattern Arsitektur Multi-Agent yang Efektif

Selain GroupChat, AutoGen mendukung pattern lain seperti sequential chat dan nested chat. Sequential chat cocok untuk workflow linear, sedangkan nested chat memungkinkan satu agent memanggil sub-conversation dengan agent lain. Pilihlah pattern yang sesuai dengan kompleksitas tugas Anda.

Untuk tugas yang memerlukan human-in-the-loop, gunakan human_input_mode pada UserProxyAgent. Mode ALWAYS akan meminta approval manusia di setiap langkah, sedangkan TERMINATE hanya meminta input saat agent tidak bisa memutuskan. Pattern yang tepat akan meningkatkan efisiensi dan mengurangi biaya LLM calls yang tidak perlu.

Kesimpulan

Multi-agent system dengan AutoGen membuka kemungkinan baru dalam automation dan software development. Dengan memecah tugas kompleks menjadi peran spesifik, Anda bisa mendapatkan hasil yang lebih berkualitas dibanding single LLM call. Mulailah dengan project kecil, eksperimen dengan berbagai konfigurasi agent, dan scale secara bertahap sesuai kebutuhan.