Smolagents: Framework AI Agent Ringan dari HuggingFace
Pendahuluan
Smolagents adalah framework AI agent yang ringan dan minimalis dari HuggingFace, dirancang untuk membangun AI agents dengan pendekatan code-first. Berbeda dengan framework agent lain yang cenderung kompleks dan heavy, Smolagents fokus pada kesederhanaan sambil tetap menyediakan fitur-fitur powerful seperti multi-step reasoning, custom tool creation, dan multi-agent orchestration.
Framework ini sangat cocok untuk developer yang ingin membangun AI agents tanpa overhead yang berlebihan. Smolagents menggunakan pendekatan unik dimana agent menghasilkan kode Python sebagai "aksi" alih-alih menggunakan format JSON yang kaku, membuat agent lebih fleksibel dan expressive.
Dalam tutorial ini, kita akan mempelajari cara menggunakan Smolagents mulai dari instalasi, memahami tipe agent, membuat custom tools, hingga membangun research agent yang dapat mencari informasi di web, memproses data, dan menghasilkan laporan.
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
- Python 3.10 atau lebih baru
- pip package manager
- API key dari HuggingFace, OpenAI, atau Anthropic
- Pemahaman dasar Python dan konsep AI/LLM
Instalasi
Instalasi Dasar
# Instal smolagents
pip install smolagents
Instal dengan dependensi tambahan untuk semua fitur
pip install smolagents[all]
Atau instal dependensi spesifik
pip install smolagents[openai] # Untuk OpenAI
pip install smolagents[anthropic] # Untuk Anthropic
pip install smolagents[gradio] # Untuk Gradio UI
pip install smolagents[telemetry] # Untuk monitoring
Verifikasi Instalasi
import smolagents
print(f"Smolagents version: {smolagents.version}")
Test basic import
from smolagents import CodeAgent, HfApiModel
print("Import successful!")
Setup Environment Variables
# Untuk HuggingFace
export HFTOKEN="hfyourtokenhere"
Untuk OpenAI
export OPENAIAPIKEY="sk-your-key-here"
Untuk Anthropic
export ANTHROPICAPIKEY="sk-ant-your-key-here"
CodeAgent vs ToolCallingAgent
Smolagents menyediakan dua tipe agent utama yang memiliki pendekatan berbeda dalam menyelesaikan tugas.
CodeAgent
CodeAgent menghasilkan dan mengeksekusi kode Python sebagai aksinya. Ini adalah tipe agent yang direkomendasikan karena lebih fleksibel dan efisien.
from smolagents import CodeAgent, HfApiModel
Inisialisasi model
model = HfApiModel(modelid="Qwen/Qwen2.5-Coder-32B-Instruct")
Buat CodeAgent
agent = CodeAgent(
tools=[], # Tanpa tools tambahan
model=model,
maxsteps=5
)
Jalankan agent
result = agent.run("Hitung rata-rata dari angka berikut: 15, 28, 42, 37, 56")
print(result)
Keunggulan CodeAgent:
- Menghasilkan kode Python yang bisa melakukan komputasi kompleks
- Lebih efisien karena bisa menggabungkan beberapa operasi dalam satu langkah
- Mendukung variabel dan logic flow
- Output lebih mudah di-debug
ToolCallingAgent
ToolCallingAgent menggunakan format tool calling standar (mirip function calling di OpenAI). Agent ini memanggil tools satu per satu dalam format JSON.
from smolagents import ToolCallingAgent, HfApiModel
Inisialisasi model
model = HfApiModel(modelid="Qwen/Qwen2.5-Coder-32B-Instruct")
Buat ToolCallingAgent
agent = ToolCallingAgent(
tools=[],
model=model,
maxsteps=5
)
Jalankan agent
result = agent.run("Berapa hasil dari 25 48?")
print(result)
Kapan menggunakan ToolCallingAgent:
- Ketika model yang digunakan lebih baik dalam tool calling daripada code generation
- Ketika Anda membutuhkan kontrol yang lebih ketat atas aksi yang dilakukan agent
- Ketika integrasi dengan sistem existing yang menggunakan tool calling format
Built-in Tools
Smolagents menyediakan beberapa tools bawaan yang siap digunakan.
Web Search Tool
from smolagents import CodeAgent, HfApiModel, DuckDuckGoSearchTool
Inisialisasi search tool
searchtool = DuckDuckGoSearchTool()