AutoGen: Framework Multi-Agent Conversation dari Microsoft
AutoGen adalah framework open-source dari Microsoft Research yang memungkinkan pengembangan aplikasi berbasis Large Language Model (LLM) menggunakan arsitektur multi-agent conversation. Dengan AutoGen, Anda dapat membuat beberapa agen AI yang saling berkomunikasi, berkolaborasi, dan menyelesaikan tugas kompleks secara otomatis.
Dalam tutorial ini, kita akan mempelajari cara menggunakan AutoGen mulai dari instalasi, membuat berbagai jenis agen, membangun percakapan multi-agen, hingga membangun tim pengembangan software virtual yang terdiri dari planner, coder, dan tester.
Mengapa AutoGen?
Sebelum kita mulai, mari pahami mengapa AutoGen menjadi pilihan populer untuk membangun sistem multi-agent:
- Multi-Agent Conversation: Agen dapat berkomunikasi satu sama lain secara natural
- Customizable: Setiap agen dapat dikonfigurasi dengan perilaku, tools, dan LLM yang berbeda
- Human-in-the-Loop: Mendukung intervensi manusia dalam alur percakapan
- Code Execution: Agen dapat menulis dan mengeksekusi kode secara otomatis
- Teachable Agents: Agen dapat belajar dari interaksi sebelumnya
- Nested Chats: Mendukung percakapan bertingkat untuk alur kerja kompleks
Instalasi
Prasyarat
Pastikan Anda memiliki Python 3.8 atau lebih baru terinstal di sistem Anda.
Instalasi Dasar
pip install pyautogen
Instalasi dengan Fitur Tambahan
# Dengan dukungan Docker untuk code execution
pip install pyautogen[docker]
Dengan dukungan teachable agents
pip install pyautogen[teachable]
Instalasi lengkap
pip install pyautogen[docker,teachable]
Konfigurasi LLM
AutoGen membutuhkan akses ke LLM. Buat file konfigurasi OAICONFIGLIST:
[
{
"model": "gpt-4",
"apikey": "sk-your-openai-api-key"
},
{
"model": "gpt-3.5-turbo",
"apikey": "sk-your-openai-api-key"
}
]
Atau gunakan environment variable:
import os
os.environ["OPENAIAPIKEY"] = "sk-your-openai-api-key"
Konsep Dasar Agen
ConversableAgent
ConversableAgent adalah kelas dasar untuk semua agen di AutoGen. Setiap agen yang dapat berkomunikasi mewarisi kelas ini.
import autogen
configlist = autogen.configlistfromjson("OAICONFIGLIST")
llmconfig = {
"configlist": configlist,
"temperature": 0,
}
Membuat ConversableAgent dasar
agent = autogen.ConversableAgent(
name="basicagent",
llmconfig=llmconfig,
systemmessage="Kamu adalah asisten yang membantu.",
humaninputmode="NEVER",
)
Parameter penting humaninputmode:
"ALWAYS": Selalu meminta input manusia sebelum merespons"NEVER": Tidak pernah meminta input manusia"TERMINATE": Meminta input hanya saat percakapan akan berakhir
AssistantAgent
AssistantAgent adalah agen yang dirancang untuk menjadi asisten AI. Secara default, ia menggunakan LLM untuk menghasilkan respons.
assistant = autogen.AssistantAgent(
name="assistant",
llmconfig=llmconfig,
systemmessage="""Kamu adalah asisten AI yang membantu menyelesaikan tugas.
Berikan solusi yang jelas dan terstruktur.
Balas dengan 'TERMINATE' ketika tugas selesai."""
)
UserProxyAgent
UserProxyAgent bertindak sebagai proxy untuk pengguna manusia. Ia dapat mengeksekusi kode dan meneruskan input dari manusia.
userproxy = autogen.UserProxyAgent(
name="user
proxy",
humaninputmode="TERMINATE",
maxconsecutiveautoreply=10,
isterminationmsg=lambda x: x.get("content", "").rstrip().endswith("TERMINATE"),
codeexecutionconfig={
"workdir": "coding",
"usedocker": False, # Set True untuk keamanan
},
)