Panduan praktis membangun multi-agent AI system dengan SmolAgents. Dari instalasi, custom tools, sampai orchestration antar agents dengan CodeAgent dan ToolCallingAgent.

Pernah kepikiran gimana caranya bikin AI yang nggak cuma chat doang, tapi bisa nulis kode, cari data di web, dan kerja sama dengan AI lain? Di artikel ini kita bakal bahas SmolAgents, framework minimalis dari HuggingFace yang bikin semua itu jadi mungkin.

SmolAgents itu versi 1.24.0 sekarang, dan yang kerennya: dia lightweight banget. Nggak perlu setup ribet, langsung bisa jalan dengan LLM backend kayak OpenAI gpt-4o-mini. Konsep utamanya sederhana: agent bisa nulis Python code, eksekusi di sandbox, terus observasi hasilnya. Proses ini berulang sampai task selesai atau max_steps tercapai.

Sebelum mulai coding, kita install dulu dependencies yang dibutuhkan. Butuh smolagents[all], duckduckgo-search buat web search, wikipedia, sama rich buat output yang rapi. Jangan lupa siapin OpenAI API key juga ya.

Advertisement

Nah, sekarang kita masuk ke bagian seru: bikin custom tools. SmolAgents kasih dua cara: pakai decorator @tool atau class-based Tool. Decorator lebih cepat buat tool sederhana, class-based lebih fleksibel buat yang butuh state management.

Contoh paling gampang: konversi Celsius ke Fahrenheit. Tinggal kasih decorator, definisikan input output, selesai. Tapi kalau butuh tool yang lebih kompleks kayak memory storage, kita pakai class. MemoTool ini bisa nyimpen key-value, retrieve data, sama list semua keys yang tersimpan.

Kita juga bikin PrimeTool buat cek bilangan prima. Kalau komposit, dia kasih tau faktor prima terkecil. Terus ada DuckDuckGoTool buat search web, dan factorial utility buat hitung faktorial. Semua tool ini nanti bisa dipanggil agent sesuai kebutuhan.

Perlu diingat: Toolbox class udah dihapus di versi terbaru. Sekarang tools disimpen di agent.tools sebagai Python dictionary biasa, dengan key berdasarkan nama tool. Ini bikin manajemen tool jadi lebih transparan dan gampang dimodifikasi runtime.

Untuk LLM engine, SmolAgents pake LiteLLMModel yang support berbagai provider. Kita pake gpt-4o-mini karena efisien dan cukup powerful buat kebanyakan task. Setup-nya simple: tinggal kasih model_id dan api_key.

Sekarang kita kenalan sama dua tipe agent utama. Pertama, CodeAgent. Agent ini bisa nulis dan eksekusi Python code secara dinamis. Cocok buat task yang butuh chaining kompleks atau perhitungan matematika multi-step.

Kita tes CodeAgent dengan beberapa task. Task pertama: konversi 100°C dan 37°C ke Fahrenheit, terus bandingin mana lebih tinggi. Task kedua: hitung 17 × 19, cek hasilnya prima atau nggak, sama cek 7919 juga. Task ketiga: hitung 10! pakai factorial tool.

Yang menarik, kita bisa inject tool baru ke agent yang udah jalan. Tinggal assign ke agent.tools["factorial"] = factorial, langsung bisa dipake. Nggak perlu rebuild agent dari nol, sangat fleksibel buat development iteratif.

Kedua, ada ToolCallingAgent dengan pola ReAct (Reasoning + Acting). Bedanya, agent ini lebih structured dalam pemanggilan tool. Setiap step ada reasoning eksplisit, jadi lebih auditable kalau ada yang salah. Cocok buat production yang butuh traceability tinggi.

Kita tes ToolCallingAgent dengan task nyimpen fakta ke memory terus retrieve lagi. Hasilnya lebih predictable dan gampang di-debug kalau ada issue.

Nah, fitur paling powerful: multi-agent orchestration. Mulai versi 1.8, kita bisa bikin specialized agents terus delegasikan task ke mereka. Nggak perlu ManagedAgent wrapper lagi, tinggal pass list agents via managed_agents parameter.

Kita bikin dua specialist: math_specialist yang handle pertanyaan matematika dan primality check, sama research_specialist yang urus web search dan memory. Terus ada manager_agent yang koordinasi keduanya.

Contoh konkret: manager minta research_specialist cari tahun rilis pertama Python, terus delegasi ke math_specialist buat cek tahun itu prima atau nggak. Semua ini terjadi otomatis dalam satu run call.

Manager agent pake CodeAgent biar bisa chaining fleksibel, sementara specialist bisa pake tipe yang sesuai kebutuhan mereka. Verbosity level juga bisa diatur per agent, jadi specialist bisa silent sementara manager verbose buat monitoring.

Yang penting diingat: setiap sub-agent harus punya name dan description yang jelas saat init. Ini yang dipake manager buat decide agent mana yang cocok buat task tertentu. Deskripsi harus spesifik dan actionable.

Practical takeaway-nya gini: mulai dari task sederhana dengan CodeAgent, test tool kamu satu per satu. Kalau udah stabil, refactor jadi specialist agents dengan responsibility terpisah. Terakhir, orchestrate dengan manager agent buat handle workflow kompleks.

SmolAgents itu bukan framework monolitik yang bikin pusing. Dia minimalis tapi powerful, dengan abstractions yang tepat di level yang dibutuhkan. Code execution, tool calling, multi-agent orchestration—semua bisa dicapai dengan overhead rendah dan kode yang readable.

Buat yang mau eksplor lebih jauh, kombinasi CodeAgent dan ToolCallingAgent bisa disesuaikan sama kebutuhan use case. Yang jelas, pattern multi-agent ini scalable dan maintainable buat production system.

AI Updates lagi bergerak cepat, jadi jangan cuma lihat headline.

MarkTechPost

Catatan redaksi

Kalau lo cuma ambil satu hal dari artikel ini

AI Updates update dari MarkTechPost.

Sumber asli

Artikel ini merupakan rewrite editorial dari laporan MarkTechPost.

Baca artikel asli di MarkTechPost
#AIUpdates#MarkTechPost#rss