Dipublikasikan 4 Juni 2026
AI agent sudah menjadi topik hangat di kalangan developer sejak perilisan GPT-4 dan Claude 3. Berbeda dengan chatbot biasa yang hanya merespons prompt satu kali, AI agent memiliki kemampuan untuk merencanakan tugas, menggunakan tool eksternal, dan mengevaluasi hasil secara berulang hingga goal tercapai. Bagi developer Indonesia yang ingin memahami paradigma ini secara hands-on, Python dan LangChain adalah stack paling ramah pemula.
Dalam tutorial ini, kita akan membangun AI agent dari nol yang mampu menjawab pertanyaan kompleks dengan menggabungkan kemampuan browsing web dan perhitungan matematika. Tidak perlu GPU mahal atau subscription premium: cukup Python 3.10+, API key OpenAI, dan library LangChain.
AI agent pada dasarnya adalah loop di mana Large Language Model (LLM) bertindak sebagai otak pengambil keputusan. Loop tersebut terdiri dari tiga fase:
Thought: LLM memikirkan langkah apa yang perlu diambil untuk menjawab pertanyaan user
Action: LLM memilih dan mengeksekusi tool yang sesuai, seperti kalkulator atau search engine
Observation: LLM membaca hasil dari tool dan menentukan apakah goal sudah tercapai
Pola ini dikenal sebagai ReAct (Reasoning and Acting). LangChain menyediakan abstrasi tingkat tinggi sehingga kita tidak perlu menulis loop ini secara manual.
Pastikan Python versi 3.10 atau lebih baru terinstal di sistem kamu. Buat virtual environment baru untuk menghindari konflik dependency:
python3 -m venv venv
source venv/bin/activate
pip install langchain langchain-openai python-dotenvBuat file .env di root project dan tambahkan API key OpenAI kamu:
OPENAI_API_KEY=sk-your-key-herePastikan file .env sudah masuk ke .gitignore supaya tidak tercommit ke repository publik.
Kita mulai dengan agent yang memiliki dua tool: Search untuk browsing dan Calculator untuk perhitungan matematika. Buat file agent.py:
import os
from dotenv import load_dotenv
from langchain.agents import AgentType, initialize_agent
from langchain_openai import ChatOpenAI
from langchain.tools import Tool
from langchain.utilities import SerpAPIWrapper
from langchain.chains import LLMMathChain
load_dotenv()
# Inisialisasi LLM
llm = ChatOpenAI(temperature=0, model_name="gpt-4o-mini")
# Tool 1: Search via SerpAPI
search = SerpAPIWrapper(serpapi_api_key=os.getenv("SERPAPI_API_KEY"))
search_tool = Tool(
name="Search",
func=search.run,
description="Gunakan untuk mencari informasi terkini di internet"
)
# Tool 2: Calculator
math_chain = LLMMathChain.from_llm(llm=llm)
calc_tool = Tool(
name="Calculator",
func=math_chain.run,
description="Gunakan untuk perhitungan matematika kompleks"
)
tools = [search_tool, calc_tool]
# Inisialisasi agent
agent = initialize_agent(
tools,
llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
# Jalankan agent
response = agent.run("Berapa harga Bitcoin hari ini dan bagaimana perbandingannya dengan harga Ethereum?")
print(response)Pastikan kamu sudah memiliki API key dari SerpAPI untuk fitur pencarian. Alternatifnya, kamu bisa mengganti tool search dengan DuckDuckGo search yang tidak memerlukan API key.
Salah satu kekuatan LangChain adalah kemudahan menambahkan tool kustom. Misalnya, kita ingin agent bisa membaca cuaca dari API eksternal. Buat fungsi Python sederhana dan bungkus sebagai Tool:
import requests
def get_weather(city: str) -> str:
url = f"https://api.openweathermap.org/data/2.5/weather?q={city}" + chr(38) + "appid={os.getenv('OWM_API_KEY')}" + chr(38) + "units=metric"
resp = requests.get(url).json()
if resp.get("main"):
temp = resp["main"]["temp"]
return f"Cuaca di {city}: {temp}C"
return "Data cuaca tidak ditemukan"
weather_tool = Tool(
name="Weather",
func=get_weather,
description="Gunakan untuk mendapatkan informasi cuaca saat ini di kota tertentu"
)
tools = [search_tool, calc_tool, weather_tool]
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
agent.run("Bagaimana cuaca di Jakarta dan apakah perlu bawa payung?")Dengan menambahkan tool kustom, agent kamu menjadi spesifik untuk domain bisnis. Misalnya, tool bisa berupa query ke database internal, pemanggilan CRM API, atau kalkulasi financial model.
Ketika kamu menjalankan agent dengan verbose=True, LangChain akan mencetak setiap step secara detail. Berikut contoh output yang mungkin kamu lihat:
> Entering new AgentExecutor chain...
Berapa harga Bitcoin hari ini dan bagaimana perbandingannya dengan harga Ethereum?
Saya perlu mencari harga keduanya.
Action: Search
Action Input: "harga Bitcoin hari ini"
Observation: Bitcoin diperdagangkan pada $67,000...
Saya perlu mencari harga Ethereum juga.
Action: Search
Action Input: "harga Ethereum hari ini"
Observation: Ethereum diperdagangkan pada $3,500...
Sekarang saya bisa membandingkan keduanya.
Final Answer: Bitcoin $67,000 lebih tinggi 19x dari Ethereum $3,500.
> Finished chain.Perhatikan bagaimana agent memutuskan untuk melakukan dua kali pencarian sebelum memberikan jawaban final. Ini adalah core dari paradigma ReAct: reasoning, action, observation, dan repeat.
Agent tidak selalu benar di percobaan pertama. Terkadang tool menghasilkan error atau LLM menghasilkan action input yang tidak valid. LangChain menyediakan beberapa mekanisme untuk menangani ini:
max_iterations: batasi jumlah loop agar tidak infinite. Default biasanya 15.
handle_parsing_errors: otomatis retry jika LLM menghasilkan output yang tidak bisa di-parse.
early_stopping_method: tentukan apa yang terjadi saat max iteration tercapai.
Contoh konfigurasi yang lebih robust:
agent = initialize_agent(
tools,
llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
max_iterations=10,
handle_parsing_errors=True,
early_stopping_method="generate"
)Meskipun menarik, AI agent berbasis LLM masih memiliki keterbatasan yang perlu dipahami:
Biaya API bisa meningkat drastis jika agent melakukan terlalu banyak iterasi. Selalu set batasan dan monitor penggunaan token.
Agent tidak memiliki memori permanen antar session. Untuk memori jangka panjang, gunakan vector store seperti Pinecone atau ChromaDB.
Tool yang lambat akan memperlambat response agent secara keseluruhan. Optimasi latensi tool sama pentingnya dengan optimasi prompt.
Jangan memberikan tool yang bisa menulis ke database production tanpa approval manusia. Gunakan read-only access untuk tool eksternal.
Tip: untuk production, pertimbangkan menggunakan LangGraph daripada AgentExecutor dasar. LangGraph memberikan kontrol lebih besar terhadap state dan flow, serta memudahkan implementasi conditional edges.
Membangun AI agent dengan Python dan LangChain adalah pengalaman belajar yang sangat berharga bagi developer yang ingin memahami paradigma agentic workflow. Dari tutorial ini, kamu sudah bisa membuat agent yang mampu browsing, menghitung, dan mengakses API eksternal secara autonomus.
Langkah selanjutnya adalah mengeksplorasi arsitektur yang lebih kompleks seperti multi-agent collaboration dengan LangGraph, atau mengintegrasikan agent dengan backend FastAPI untuk dijadikan service. Dokumentasi resmi LangChain tersedia di LangChain Documentation. Jangan lupa juga untuk membaca paper asli ReAct di arXiv agar pemahaman teoritis semakin kuat.
Dapatkan feedback, users, dan eksposur dari komunitas kreator, developer, dan entrepreneur digital Indonesia.
Submit Produk → Pelajari Dulu