Cara Membuat AI Agent Sederhana dengan Python untuk Otomatisasi Tugas Sehari-hari
Cara Membuat AI Agent Sederhana dengan Python untuk Otomatisasi Tugas Sehari-hari
Di tengah kesibukan sehari-hari, banyak tugas digital repetitif yang menyita waktu dan energi. Mulai dari merapikan file di desktop, merespons email standar, hingga memantau harga produk. Daripada melakukannya secara manual, Anda bisa membuat AI agent sederhana menggunakan Python untuk menangani semuanya secara otomatis.
Artikel ini akan memandu Anda langkah demi langkah membangun AI agent sendiri dari nol. Dengan pendekatan praktis dan kode yang bisa langsung dicoba, Anda akan merasakan sendiri bagaimana otomatisasi cerdas bekerja tanpa perlu menjadi ahli machine learning.
Apa Itu AI Agent dan Mengapa Anda Membutuhkannya?
Secara sederhana, AI agent adalah program yang bisa merasakan lingkungan (perangkat Anda), membuat keputusan berdasarkan aturan atau model AI, lalu mengambil tindakan nyata. Berbeda dengan skrip biasa yang statis, agent kita nanti bisa meniru pola pikir sederhana: Ambil data β Proses dengan aturan atau logika AI β Eksekusi tindakan.
Manfaat membuat AI agent sendiri:
- Menghemat waktu dari tugas manual yang berulang.
- Mengurangi human error karena proses berjalan konsisten.
- Bisa dikustomisasi sesuai alur kerja pribadi atau tim.
- Portabel dan bisa dijalankan di laptop, server, atau Raspberry Pi.
Persiapan Awal: Tools dan Library
Sebelum menulis kode, siapkan dulu lingkungan kerja Anda. Pastikan Python 3.8+ sudah terinstal. Kita akan menggunakan beberapa library ringan:
pip install schedule requests beautifulsoup4 pyautoGUI openai
| Library | Fungsi |
|---|---|
schedule |
Menjadwalkan eksekusi agent (setiap jam, setiap hari, dll) |
requests & beautifulsoup4 |
Scraping web sederhana |
pyautogui |
Otomatisasi klik dan keyboard (jika diperlukan) |
openai |
Opsional β untuk agent yang butuh kecerdasan bahasa alami |
Catatan: Jika tidak ingin menggunakan API OpenAI, Anda bisa menggunakan logika
if-elseatau model lokal sederhana. Semua contoh di artikel ini bisa berjalan tanpa koneksi internet (kecuali scraping).
Konsep Dasar: Arsitektur Agent Sederhana
Kita akan mendesain agent dengan struktur sederhana yang terdiri dari 3 komponen:
1. Sensor : Mengumpulkan data (file, email, clipboard, web)
2. Processing : Menganalisis data (logika berbasis aturan / LLM call)
3. Actuator : Melakukan aksi (rename file, kirim email, tekan tombol)
Pola ini memudahkan kita menambahkan berbagai tugas tanpa mengubah arsitektur utama.
Contoh 1: Agent Pembersih Desktop Otomatis
Tugas paling klasik β merapikan file di folder Downloads atau Desktop berdasarkan ekstensi.
Tujuan: Setiap file yang masuk ke folder Downloads akan dipindah ke subfolder (Dokumen, Gambar, Video, Arsip).
import os
import shutil
import time
from pathlib import Path
class DesktopCleaner:
def __init__(self, source_folder="~/Downloads"):
self.source = Path(source_folder).expanduser()
self.rules = {
'images': ['.jpg', '.jpeg', '.png', '.gif', '.webp'],
'documents': ['.pdf', '.docx', '.xlsx', '.pptx', '.txt'],
'archives': ['.zip', '.rar', '.tar', '.gz'],
'videos': ['.mp4', '.mkv', '.avi', '.mov'],
'audios': ['.mp3', '.wav', '.flac', '.aac'],
}
def create_folders(self):
for folder in self.rules.keys():
(self.source / folder).mkdir(exist_ok=True)
def scan_and_clean(self):
self.create_folders()
for item in self.source.iterdir():
if item.is_file():
ext = item.suffix.lower()
for folder, extensions in self.rules.items():
if ext in extensions:
dest = self.source / folder / item.name
shutil.move(str(item), str(dest))
print(f" β {item.name} β {folder}/")
break
if __name__ == "__main__":
agent = DesktopCleaner("~/Downloads")
while True:
print("Memindai folder...")
agent.scan_and_clean()
time.sleep(60) # Scan setiap 60 detik
Penjelasan:
- Agent ini "merasakan" folder Downloads, memproses file berdasarkan ekstensi, dan "bertindak" memindahkannya ke folder yang sesuai.
- Anda bisa jalankan di background atau jadwalkan dengan
schedule.
Contoh 2: Agent Monitor Harga Barang
Agent ini akan mengecek harga suatu produk di e-commerce setiap hari dan mengirim notifikasi jika ada diskon.
import requests
from bs4 import BeautifulSoup
import smtplib
from email.message import EmailMessage
import schedule
import time
class PriceTracker:
def __init__(self, url, target_price, email_config=None):
self.url = url
self.target = target_price
self.email_config = email_config # {'from':'...', 'to':'...', 'password':'...'}
def get_price(self):
headers = {'User-Agent': 'Mozilla/5.0'}
res = requests.get(self.url, headers=headers, timeout=10)
soup = BeautifulSoup(res.text, 'html.parser')
# Ganti selektor sesuai halaman (contoh Tokopedia/Shopee)
price_tag = soup.select_one('.price-value') or soup.select_one('span[data-testid="price"]')
if price_tag:
raw = price_tag.text.replace('.', '').replace(',', '.').replace('Rp', '').strip()
return float(raw)
return None
def send_alert(self, current_price):
msg = EmailMessage()
msg['Subject'] = f'Harga turun! Sekarang Rp{current_price:,.0f}'
msg['From'] = self.email_config['from']
msg['To'] = self.email_config['to']
msg.set_content(f'Cek sekarang: {self.url}')
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as server:
server.login(self.email_config['from'], self.email_config['password'])
server.send_message(msg)
print(f" Email terkirim! Harga: Rp{current_price:,.0f}")
def check(self):
print("Memeriksa harga...")
price = self.get_price()
if price and price <= self.target:
self.send_alert(price)
return True
print(f" Harga saat ini: Rp{price:,.0f} (target: Rp{self.target:,.0f})")
return False
# Jadwal harian
tracker = PriceTracker('https://example.com/produk', target_price=200000)
schedule.every().day.at("08:00").do(tracker.check)
while True:
schedule.run_pending()
time.sleep(60)
Optimasi:
- Anda bisa menambahkan log ke file CSV untuk histori harga.
- Gunakan
BeautifulSoupdengan selector yang stabil; pilih elemen berdasarkandata-testidagar tidak mudah berubah.
Contoh 3: Agent Layanan Pelanggan Minimal (dengan Logika Sederhana)
Agent ini membaca email masuk dari file teks atau API, lalu membalas secara otomatis berdasarkan kata kunci.
import re
class SimpleEmailAgent:
def __init__(self, keyword_responses):
self.keyword_responses = keyword_responses # dict: {'keyword':'balasan'}
def analyze(self, email_body):
body = email_body.lower()
for keyword, response in self.keyword_responses.items():
if keyword in body:
return response
return None
def process(self, email_file):
with open(email_file, 'r') as f:
content = f.read()
reply = self.analyze(content)
if reply:
print(f" Email diproses. Balas: {reply}")
# Lanjutkan dengan mengirim email via smtplib
else:
print(" Tidak ada kata kunci cocok, arsipkan.")
# Contoh penggunaan
responses = {
'lupa password': 'Silakan reset password di link berikut: ...',
'status pesanan': 'Pesanan Anda sedang diproses. Cek status di ...',
'pengembalian dana': 'Mohon isi formulir pengembalian di ...',
}
agent = SimpleEmailAgent(responses)
agent.process('inbox/email_baru.txt')
Agent ini bisa diperkuat dengan tiga baris prompt ke GPT jika Anda ingin agent yang lebih luwes. Cukup tambahkan:
import openai
class EnhancedEmailAgent(SimpleEmailAgent):
def analyze_with_ai(self, body):
prompt = f"Klasifikasikan email berikut ke dalam kategori yang sudah ada, lalu berikan balasan:\nEmail: {body}\nKategori: {list(self.keyword_responses.keys())}"
response = openai.ChatCompletion.create(model="gpt-4", messages=[{"role":"user","content":prompt}])
return response.choices[0].message.content
Tips Membangun Agent yang Handal
- Mulai dari aturan yang konkret. Jangan langsung pakai AI untuk yang sederhana; aturan
if-elselebih cepat dan gratis. - Gunakan logging. Catat setiap aksi agent ke file log
agent.logagar mudah dilacak jika terjadi kesalahan. - Beri toleransi jaringan. Gunakan
try/exceptdanretryuntuk scraping atau API call. - Jangan buat agent terlalu kompleks di awal. Selesaikan satu tugas dengan baik, lalu tambahkan fitur lain.
- Keamanan token. Jika menggunakan API key (OpenAI, email), simpan di environment variable, jangan hardcode.
Kesimpulan: Langkah Selanjutnya
Membuat AI agent sederhana dengan Python bukanlah sesuatu yang rumit. Dengan modal dasar Python dan library schedule, requests, serta sedikit kreativitas, Anda sudah bisa mengotomatiskan berbagai tugas sehari-hariβdari merapikan file hingga memantau harga dan membalas email.
Mulailah dari satu agent kecil, misalnya pembersih folder, lalu lihat bagaimana agent itu bekerja. Setelah nyaman, tingkatkan dengan menambahkan kemampuan AI melalui API atau logika yang lebih cerdas.
Yang terpenting: agent Anda tidak harus sempurna. Cukup sedikit lebih efisien daripada Anda melakukannya manualβitu sudah berarti.
Selamat mencoba, dan jadikan hari-hari Anda lebih bebas untuk hal yang benar-benar penting!