Tutorial Build Lightweight AI Agent Pakai HuggingFace smolagents & Ollama
Poin Kunci Artikel Ini:
- Pernah tidak laptop kamu mendadak kipasnya berisik dan freeze pas lagi jalankan AI agent pakai framework seperti LangChain atau CrewAI?
- Belum lagi drama agent gagal terus gara-gara kesalahan kecil format JSON saat memanggil tool.
- Niatnya ingin bikin otomasi cerdas, malah sibuk mengurus laptop kepanasan dan error log yang tidak selesai-selesai.HuggingFace paham betul masalah ini.
Pernah tidak laptop kamu mendadak kipasnya berisik dan freeze pas lagi jalankan AI agent pakai framework seperti LangChain atau CrewAI? Belum lagi drama agent gagal terus gara-gara kesalahan kecil format JSON saat memanggil tool. Niatnya ingin bikin otomasi cerdas, malah sibuk mengurus laptop kepanasan dan error log yang tidak selesai-selesai.
HuggingFace paham betul masalah ini. Mereka merilis smolagents, sebuah library agentic minimalis yang ukuran kodenya cuma beberapa ratus baris. Pendekatannya beda total dari framework lama. Dibanding memaksa LLM menulis format JSON kaku, smolagents menggunakan pola CodeAgent. Di sini, LLM langsung menulis kode Python murni yang bisa langsung dieksekusi. Hasilnya? Lebih hemat resource, kodenya rapi, dan minim error.
Di panduan ini, kita bakal membedah cara membangun AI Agent lokal menggunakan smolagents, Ollama, dan LiteLLM. Semua proses berjalan penuh di laptop kamu sendiriβtanpa kirim data ke server luar, hemat RAM, dan bebas biaya API.
1. Kenapa Pilih smolagents? Solusi Ringan vs Framework Lain
Framework agent mainstream biasanya membawa abstraksi yang cukup tebal. Ada puluhan layer, prompt bawaan yang panjang, dan parser rumit. Kalau kamu memakai LLM lokal ukuran 7B atau 8B di Ollama, format JSON yang terlalu kaku sering membuat model bingung dan menghasilkan output yang tidak bisa diparsing.
smolagents memotong semua kerumitan itu dengan prinsip sederhana:
- Pola CodeAgent yang Alami: LLM pada dasarnya sangat mahir menulis kode Python. Dibanding memaksa LLM mengeluarkan struktur JSON seperti
{"tool": "calculator", "args": {"a": 5, "b": 10}}, smolagents meminta LLM langsung menulisresult = 5 + 10. Ini jauh lebih mudah diproses oleh model coding. - Ukuran Ringan & Transparan: Library ini tidak menyembunyikan logika di balik lapisan kode yang rumit. Kamu bisa membaca seluruh source code smolagents dalam hitungan menit. Saat terjadi bug, proses debugging-nya sangat jelas.
- Hemat Token Context: Prompt sistem yang disuntikkan sangat efisien. Ini penting sekali untuk LLM lokal yang punya batas context window terbatas.
- Privasi Penuh & Gratis: Dikombinasikan dengan Ollama, kamu bisa menjalankan AI agent canggih saat offline total tanpa perlu khawatir data sensitif bocor ke internet.
2. Setup Environment: Ollama, LiteLLM, dan smolagents
Yuk, langsung kita siapkan lingkungannya. Pastikan Python (minimal versi 3.10) dan Ollama sudah terpasang di komputer kamu.
Langkah 1: Jalankan Model Spesialis Coding di Ollama
Karena smolagents mengandalkan kemampuan penulisan kode Python, kita butuh model yang jago koding. Pilihan paling pas untuk laptop standar adalah qwen2.5-coder:7b. Jalankan perintah ini di terminal:
ollama pull qwen2.5-coder:7bModel 7B ini punya keseimbangan luar biasa antara kecepatan dan kecerdasan. RAM 16GB atau GPU laptop dengan 6GB VRAM sudah lebih dari cukup untuk menjalankannya.
Langkah 2: Install Package Python
Buat virtual environment baru agar project tetap rapi, lalu pasang library yang dibutuhkan:
pip install smolagents litellm duckduckgo-search pandas psutilLangkah 3: Hubungkan smolagents ke Ollama via LiteLLM
smolagents menggunakan LiteLLM sebagai jembatan untuk berkomunikasi dengan endpoint Ollama. Sekarang, buat file baru bernama app.py dan masukkan kode berikut:
from smolagents import CodeAgent, LiteLLMModel
model = LiteLLMModel(
model_id="ollama/qwen2.5-coder:7b",
api_base="http://localhost:11434",
num_ctx=8192
)
agent = CodeAgent(
tools=[],
model=model,
add_base_tools=True
)
agent.run("Hitung hasil dari 25 pangkat 3 ditambah akar kuadrat dari 144.")
Saat kode di atas dijalankan, agent tidak cuma memanggil fungsi bawaan, tapi menulis script Python kecil untuk menyelesaikan perhitungan matematika tersebut lalu mengeksekusinya.
Membuat Custom Tools Python Sendiri
Kekuatan utama AI Agent terletak pada kemampuannya berinteraksi dengan sistem komputer kamu. Di smolagents, membuat tool baru semudah menambahkan decorator @tool di atas fungsi Python biasa. Tuliskan deskripsi yang jelas pada docstring, karena deskripsi itulah yang dibaca oleh LLM sebagai petunjuk pemakaian tool.
Berikut contoh cara membuat dua tool custom untuk memantau status sistem laptop dan menyimpan laporan ke dalam file:
import psutil
from smolagents import tool, CodeAgent, LiteLLMModel
@tool
def get_system_stats() -> str:
"""Mengambil status penggunaan CPU dan RAM komputer saat ini.
Returns:
str: Laporan persentase penggunaan CPU dan RAM.
"""
cpu = psutil.cpu_percent(interval=1)
ram = psutil.virtual_memory().percent
return f"Penggunaan CPU: {cpu}%, RAM: {ram}%"
@tool
def save_report(filename: str, content: str) -> str:
"""Menyimpan teks laporan ke file teks lokal.
Args:
filename: Nama file target (misal: report.txt).
content: Teks isi laporan yang ingin disimpan.
Returns:
str: Pesan konfirmasi status penyimpanan.
"""
with open(filename, "w", encoding="utf-8") as f:
f.write(content)
return f"File {filename} berhasil disimpan di disk."
model = LiteLLMModel(
model_id="ollama/qwen2.5-coder:7b",
api_base="http://localhost:11434"
)
agent = CodeAgent(
tools=[get_system_stats, save_report],
model=model
)
agent.run("Cek status CPU dan RAM laptop saya sekarang, lalu simpan hasilnya ke file report_sistem.txt")
3. Pengamanan Kode & Solusi Troubleshooting Error
Menjalankan kode Python buatan AI secara langsung di mesin lokal tentu membawa risiko keamanan tersendiri yang wajib kita tangani.
PERINGATAN KEAMANAN: CodeAgent mengeksekusi script Python buatan LLM secara langsung di komputer kamu. Jika ada instruksi berbahaya dari luar atau model mengalami halusinasi, LLM bisa saja menghasilkan kode yang tidak sengaja menghapus file penting.
Mengamankan Interpreter Kode
Secara default, kamu bisa membatasi library luar apa saja yang boleh diimpor oleh agent menggunakan argumen additional_authorized_imports:
agent = CodeAgent(
tools=[get_system_stats],
model=model,
additional_authorized_imports=["math", "datetime", "json", "pandas"]
)Jika kamu membutuhkan isolasi total (misalnya untuk aplikasi produksi), manfaatkan E2B Executor. Sandbox ini mengeksekusi kode di lingkungan terisolasi berbasis cloud, sehingga sistem lokal kamu aman 100%:
from smolagents import E2BExecutor
agent = CodeAgent(
tools=[],
model=model,
executor=E2BExecutor()
)Troubleshooting Masalah yang Sering Muncul
- Context Window Terpotong: Default context Ollama terkadang terbatas di 2048 token. Jika instruksi agent agak panjang, LLM bisa lupa konteks. Atur selalu
num_ctx=8192pada konfigurasiLiteLLMModel. - Error Sintaks Berulang: Model kecil (di bawah 3B) sering gagal menulis kode Python yang benar. Selalu gunakan model spesialis koding minimal ukuran 7B seperti
qwen2.5-coder:7b. - Koneksi Ditolak (Connection Refused): Pastikan service Ollama sudah aktif di background. Kamu bisa mengecek atau menyalakannya lewat perintah
ollama servedi terminal. - Agent Looping Tanpa Henti: Saat kode mengalami error, agent kadang mencoba memperbaiki diri berulang-ulang. Batasi jumlah langkah perbaikan dengan menambahkan argumen
max_steps=5pada fungsiagent.run().
4. Kesimpulan dan Ide Eksperimen
Hadirnya smolagents membuktikan bahwa membuat AI agent yang andal tidak harus rumit dan berat. Mengganti pola JSON kaku dengan eksekusi kode Python murni lewat CodeAgent membuat kinerja agent lebih cepat, hemat token, dan gampang ditelusuri jika ada kendala.
Dipadukan dengan Ollama, kamu sudah punya sistem otomasi mandiri di mesin lokal yang siap membantu tugas teknis harian tanpa perlu membayar langganan API bulanan.
Coba Ide Eksperimen Ini:
- Otomasi Web Scraping: Gabungkan
duckduckgo-searchdanpandasuntuk mengambil data dari internet lalu menyusunnya ke dalam file Excel otomatis. - Pemantau Log Server: Bikin tool pemantau file log yang bisa membaca error secara realtime dan memberikan ringkasan solusinya.
- Sistem Multi-Agent: Bagi tugas kompleks menggunakan
ManagerAgentyang mengoordinasikan beberapaCodeAgentspesialis.
Langkah Konkret: Jangan cuma dibaca! Buka terminal kamu sekarang, pasang smolagents dan model qwen2.5-coder:7b, lalu coba buat satu custom @tool sederhana untuk mengotomatiskan pekerjaan rutin kamu hari ini.


