Bayangkan punya asisten digital yang bisa membuka browser, mengetik di kolom pencarian, mengklik tombol, mengisi formulir, dan mengumpulkan data dari situs web — semuanya hanya dari satu kalimat perintah. Itulah yang ditawarkan Browser Use, library Python open-source yang sedang viral di GitHub dengan lebih dari 110 ribu bintang. Dalam tutorial ini kamu akan belajar membangun AI agent browser dari nol, mulai dari instalasi sampai menjalankan tugas otomatisasi nyata.
Browser Use adalah framework open-source yang membuat situs web "dapat diakses" oleh AI agent. Alih-alih menulis scraper manual dengan BeautifulSoup atau Selenium, kamu cukup mendeskripsikan tugas dalam bahasa alami — misalnya "cari harga iPhone di Tokopedia dan ambil yang termurah" — lalu agent akan membuka browser, menavigasi halaman, mengklik, mengisi input, dan mengembalikan hasilnya.
Kenapa tool ini layak kamu pelajari sekarang? Pertama, pertumbuhannya luar biasa: repository browser-use/browser-use sudah melampaui 110 ribu bintang dan menjadi salah satu repo Python paling cepat berkembang. Kedua, ia menduduki peringkat #1 di benchmark Odysseys dengan akurasi rata-rata 87,4%, mengungguli agen computer-use dari OpenAI, Anthropic, Google, dan Microsoft. Ketiga, ia model-agnostic — kamu bisa memakai GPT, Claude, Gemini, atau bahkan model lokal lewat Ollama.
Sebelum mulai, pastikan kamu sudah menyiapkan hal-hal berikut:
- Python 3.11 atau lebih baru (cek dengan
python --version). - API key dari penyedia LLM, misalnya OpenAI, Anthropic, atau Google Gemini.
- Koneksi internet yang stabil (agent akan mengakses situs web secara langsung).
- Opsional:
uvsebagai package manager yang jauh lebih cepat dari pip.
Buat folder proyek baru, lalu install Browser Use. Sebaiknya pakai virtual environment agar dependensi tidak bentrok dengan proyek lain.
# Buat dan aktifkan virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Install Browser Use
pip install browser-use
# Install browser Chromium yang dipakai untuk otomatisasi
playwright install chromium
Library ini memakai Playwright di balik layar untuk mengendalikan browser Chromium secara headless. Perintah playwright install chromium mengunduh binary browser satu kali saja dan hanya perlu diulang ketika kamu mengganti versi Playwright.
Browser Use butuh LLM untuk "berpikir" — memutuskan elemen mana yang harus diklik atau diisi. Simpan API key-mu di file .env agar tidak tertulis langsung di kode:
# .env
ANTHROPIC_API_KEY=sk-ant-xxxxxxxx
# atau pakai OpenAI:
# OPENAI_API_KEY=sk-xxxxxxxx
# atau Gemini:
# GOOGLE_API_KEY=xxxxxxxx
Jangan pernah men-commit file .env ke GitHub. Tambahkan .env ke .gitignore agar API key-mu tidak bocor ke publik dan disalahgunakan orang lain.
Sekarang tulis script Python pertamamu. Tugas paling sederhana: minta agent mencari jumlah bintang (stars) repository browser-use di GitHub.
import asyncio
from browser_use import Agent, ChatOpenAI
async def main():
agent = Agent(
task="Buka https://github.com/browser-use/browser-use dan cari jumlah bintangnya",
llm=ChatOpenAI(model="gpt-4o"),
)
result = await agent.run()
print(result)
if __name__ == "__main__":
asyncio.run(main())
Penjelasan singkat: Agent menerima task berupa instruksi bahasa alami dan llm berupa model yang dipakai untuk mengambil keputusan di setiap langkah. Saat dijalankan, agent akan membuka jendela browser, menavigasi ke GitHub, membaca angka bintang, lalu mengembalikan hasilnya. Ganti gpt-4o dengan model terbaru yang tersedia di akunmu (misalnya gpt-5.5 atau claude-opus-4-8).
Sering kali kamu ingin mengakses hasil akhir secara terstruktur, bukan sekadar mencetak output. Object history yang dikembalikan agent.run() menyimpan semuanya:
import asyncio
from browser_use import Agent, ChatOpenAI
async def main():
agent = Agent(
task=(
"Buka https://github.com/browser-use/browser-use, "
"cari jumlah bintangnya, lalu kembalikan angkanya."
),
llm=ChatOpenAI(model="gpt-4o"),
)
history = await agent.run()
print("Hasil akhir :", history.final_result())
print("URL dikunjungi:", history.urls())
print("Aksi dilakukan:", history.action_names())
# Simpan seluruh riwayat (termasuk screenshot) ke file JSON
history.save_to_file("agent_history.json")
if __name__ == "__main__":
asyncio.run(main())
Beberapa method penting di object riwayat (AgentHistoryList): final_result() untuk hasil akhir, urls() untuk daftar URL yang dikunjungi, action_names() untuk daftar aksi (klik, ketik, scroll, dan seterusnya), serta save_to_file() untuk mengekspor riwayat lengkap termasuk screenshot tiap langkah.
Kekuatan sebenarnya Browser Use terlihat pada tugas multi-langkah. Contoh berikut meminta agent membuka form latihan, mengisi beberapa kolom, mengirimnya, lalu mengambil hasil yang muncul:
import asyncio
from browser_use import Agent, ChatOpenAI
async def main():
agent = Agent(
task=(
"Buka https://demoqa.com/automation-practice-form, "
"isi First Name 'Budi' dan Last Name 'Santoso', "
"Email 'budi@example.com', pilih Gender Male, "
"isi Mobile '0812345678', lalu klik tombol Submit. "
"Setelah modal hasil muncul, tuliskan isi data yang ditampilkan."
),
llm=ChatOpenAI(model="gpt-4o"),
)
history = await agent.run()
print(history.final_result())
if __name__ == "__main__":
asyncio.run(main())
Agent akan secara mandiri menemukan elemen form, mengetikkan data ke kolom yang tepat, memilih radio button, mengklik tombol submit, lalu membaca hasilnya. Kamu tidak perlu menulis satu pun selector CSS atau XPath — seluruh logika navigasi ditangani oleh LLM.
Tidak punya kredit API? Browser Use juga mendukung model lokal lewat Ollama. Install Ollama, tarik model, lalu pakai ChatOllama:
# Install Ollama lalu tarik model
ollama pull llama3.1
import asyncio
from browser_use import Agent, ChatOllama
async def main():
agent = Agent(
task="Buka https://example.com dan tuliskan judul halamannya",
llm=ChatOllama(model="llama3.1"),
)
history = await agent.run()
print(history.final_result())
if __name__ == "__main__":
asyncio.run(main())
Model lokal memang gratis dan privat, tapi akurasi navigasinya biasanya di bawah model frontier seperti GPT atau Claude. Untuk tugas yang butuh presisi tinggi (misalnya login atau checkout), pakai model frontier; untuk eksperimen dan belajar, model lokal sudah lebih dari cukup.
- Buat task spesifik. Semakin rinci instruksimu (URL, data yang diisi, hasil yang diharapkan), semakin kecil peluang agent "nyasar".
- Pantau dengan mode headless dimatikan. Saat development, biarkan browser terlihat agar kamu bisa mengamati langkah agent secara langsung.
- Waspadai CAPTCHA dan login. Situs dengan proteksi anti-bot bisa memblokir agent; selalu patuhi terms of service situs yang kamu akses.
- Gunakan
save_to_file()untuk debugging. Screenshot tiap langkah tersimpan di riwayat sehingga mudah melacak di mana agent gagal.
Browser Use membuka babak baru dalam otomatisasi web: alih-alih menulis scraper yang rapuh, kamu cukup menulis instruksi dalam bahasa alami. Di tutorial ini kamu sudah belajar instalasi, konfigurasi API key, menulis agent pertama, mengambil hasil, mengisi form, sampai memakai model lokal lewat Ollama. Dari sini, kamu bisa bereksperimen dengan tugas yang lebih kompleks — riset harga kompetitor, pengisian formulir berulang, monitoring harga, atau agregasi data dari banyak situs sekaligus.
Kalau artikel ini membantumu, bagikan ke teman sesama developer, dan pantau terus BengkelKode untuk tutorial AI & coding terbaru lainnya.
BengkelKode