AizuDemy

Tutorial Build Lightweight AI Agent Pakai HuggingFace smolagents & Ollama

Tutorial Build Lightweight AI Agent Pakai HuggingFace smolagents & Ollama
IKLAN
IDCloudHost
🎧
Dengarkan Artikel Ini
Suara AI Otomatis β€’ 6 mnt baca baca
⚑ TL;DR

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.
πŸ“‹ Daftar Isi Materi Tutup β–΄

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 menulis result = 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:7b

Model 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 psutil

Langkah 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=8192 pada konfigurasi LiteLLMModel.
  • 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 serve di 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=5 pada fungsi agent.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-search dan pandas untuk 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 ManagerAgent yang mengoordinasikan beberapa CodeAgent spesialis.

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.

A
Aizu Dev

Tim penulis AizuDemy yang menyajikan tutorial teknologi, cloud, dan pengembangan perangkat lunak dalam Bahasa Indonesia.

πŸ“– Artikel Terkait