Membuat AI Agent yang Bisa Bekerja Otomatis
Pendahuluan
AI Agent merupakan program yang dapat memproses input, menghasilkan keputusan, dan mengeksekusi aksi tanpa intervensi manusia. Tutorial ini menjelaskan cara membangun agen otomatis berbasis model bahasa besar (LLM) dan menghubungkannya dengan layanan AI populer seperti ChatGPT Plus, Claude Pro, atau Gemini Advanced. Arsitektur singkat:
User Input → LLM (ChatGPT/Claude/Gemini) → Decision Engine → Action Executor (API/Webhook) → Result
Prasyarat & Persiapan
- Hardware: Minimal 2 CPU, 8 GB RAM (lebih baik 16 GB untuk beban produksi).
- Software: Python ≥ 3.9,
git,virtualenv. - Akun: Registrasi pada layanan LLM yang dipilih (ChatGPT Plus, Claude Pro, atau Gemini Advanced) dan dapatkan API key.
- Tools tambahan (opsional):
- Penulisan konten: Notion AI, Jasper.
- Gambar: Midjourney, Canva Pro.
Langkah Demi Langkah
Step 1 – Siapkan Lingkungan Virtual
# Clone repository contoh
git clone https://github.com/jartekindo/ai-agent-template.git
cd ai-agent-template
# Buat dan aktifkan virtualenv
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
Step 2 – Konfigurasi API Key
Buat file .env di root proyek dengan format berikut:
LLM_PROVIDER=chatgpt # pilihan: chatgpt, claude, gemini
CHATGPT_API_KEY=your_chatgpt_api_key
CLAUDE_API_KEY=your_claude_api_key
GEMINI_API_KEY=your_gemini_api_key
WEBHOOK_URL=https://example.com/webhook
Pastikan file .env tidak di‑commit ke repository (git add .gitignore).
Step 3 – Implementasi Decision Engine
File engine.py berisi logika keputusan. Contoh sederhana menggunakan prompt engineering:
import os
import openai # untuk ChatGPT
from dotenv import load_dotenv
load_dotenv()
def get_response(prompt: str) -> str:
provider = os.getenv("LLM_PROVIDER")
if provider == "chatgpt":
client = openai.ChatCompletion()
resp = client.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
temperature=0.2,
)
return resp.choices[0].message.content.strip()
# Tambahkan cabang untuk Claude & Gemini sesuai dokumentasi masing‑masing
raise ValueError(f"Provider {provider} tidak didukung")
def decide_action(user_input: str) -> dict:
prompt = (
"Kamu adalah AI Agent yang membantu mengelola tugas harian. "
"Berikan JSON dengan dua field: 'action' (create_ticket, send_email, atau noop) dan 'payload' (objek terkait). "
f"Input pengguna: '{user_input}'"
)
raw = get_response(prompt)
try:
return json.loads(raw)
except Exception as e:
# fallback ke noop jika parsing gagal
return {"action": "noop", "payload": {}}
Step 4 – Eksekusi Aksi via Webhook
import requests
def execute(action: dict):
url = os.getenv("WEBHOOK_URL")
response = requests.post(url, json=action)
response.raise_for_status()
return response.json()
if __name__ == "__main__":
user_input = input("Masukkan perintah: ")
decision = decide_action(user_input)
result = execute(decision)
print("Result:", result)
Step 5 – Deploy ke Production
- Dockerize aplikasi:
FROM python:3.11-slim
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir -r requirements.txt
ENV PYTHONUNBUFFERED=1
CMD ["python", "engine.py"]
- Push ke registry dan jalankan di VPS atau layanan kontainer (DigitalOcean App Platform, AWS ECS, dll.).
- Gunakan HTTPS pada
WEBHOOK_URLdan aktifkan autentikasi token.
Tips Optimasi & Keamanan
- Caching: Simpan respons LLM untuk pertanyaan yang sering muncul menggunakan Redis.
- Rate Limiting: Batasi panggilan API LLM (mis. 60 req/menit) untuk menghindari biaya tak terduga.
- Enkripsi: Simpan semua secret di Vault atau AWS Secrets Manager, jangan di file plain.
- Observability: Integrasikan dengan Prometheus + Grafana untuk metrik latency dan error rate.
- CI/CD: Tambahkan linting (
flake8) dan unit test (pytest) pada pipeline GitHub Actions.
Troubleshooting Error Umum
| Error | Penyebab | Solusi |
|---|---|---|
401 Unauthorized pada LLM API |
API key tidak valid atau kadaluarsa | Periksa kembali nilai di .env, regen API key di dashboard layanan. |
json.decoder.JSONDecodeError |
LLM mengembalikan teks bukan JSON | Tambahkan instruksi eksplisit di prompt: "Berikan output dalam format JSON yang valid". |
requests.exceptions.ConnectionError |
Webhook tidak reachable | Pastikan URL mengarah ke endpoint yang dapat diakses publik, periksa firewall/VPC. |
| Latency > 5 s | Model terlalu besar atau jaringan lambat | Ganti ke model yang lebih ringan (mis. gpt-3.5-turbo) atau gunakan Perplexity Pro sebagai fallback. |
Kesimpulan
Tutorial ini menunjukkan cara membangun AI Agent otomatis dengan Python, menghubungkan ke layanan LLM terkemuka, dan menyiapkan pipeline produksi yang aman serta dapat di‑scale. Dengan menambahkan caching, monitoring, dan CI/CD, agen siap di‑integrasikan ke workflow bisnis apa pun.