INTRO
โฌก Selamat Datang

Belajar Membuat
AI Agent dari Nol

Modul gratis ini akan membawa kamu dari pemula hingga mampu membangun AI Agent sungguhan yang bisa berpikir dan bertindak mandiri.

๐Ÿ“š 6 Modul
โฑ ~10 Jam
๐Ÿ†“ 100% Gratis
๐Ÿ Python 3.10+
๐Ÿ“‹ Apa yang Kamu Pelajari
MODUL 01

๐Ÿง  Konsep AI Agent

Apa itu agent, komponen, dan cara kerjanya

MODUL 02

โš™๏ธ Setup Environment

Install Python, LangChain, OpenAI API

MODUL 03

๐Ÿค– Agent Pertama

Buat agent sederhana dengan tools dasar

MODUL 04

๐Ÿ”— Multi-step Agent

Chain of thought dan planning

MODUL 05

๐Ÿ’พ Memory & State

Buat agent yang bisa mengingat konteks

MODUL 06

๐Ÿš€ Project Nyata

Bangun Research Agent lengkap

๐Ÿ› ๏ธ Yang Kamu Butuhkan
๐Ÿ’ป

Python 3.10+

Bahasa utama yang digunakan

๐Ÿ”‘

OpenAI API Key

Gratis $5 kredit untuk daftar baru

๐Ÿ“ฆ

LangChain

Framework utama AI Agent

๐Ÿ’ก Tip Gunakan Google Colab (gratis) jika tidak ingin install apapun di komputer. Semua kode bisa dijalankan langsung di browser.
Modul 01 ยท Fundamental

Konsep Dasar
AI Agent

Memahami apa itu AI Agent, bagaimana cara kerjanya, dan apa bedanya dengan AI biasa.

โฑ ~60 menit
๐Ÿ“– Teori
๐Ÿ” Apa Itu AI Agent?
๐Ÿ“Œ Definisi

AI Agent adalah sistem berbasis AI yang dapat menerima tujuan, merencanakan langkah, menggunakan tools, dan bertindak mandiri sampai tujuan tercapai โ€” tanpa dikontrol langkah demi langkah.

๐Ÿ“ Catatan Perbedaan kunci: AI biasa hanya "menjawab", sedangkan AI Agent "melakukan". Agent bisa browsing internet, menulis file, mengirim email, menjalankan kode โ€” semuanya sendiri.
๐Ÿงฉ 4 Komponen Utama Agent
๐Ÿง 

LLM (Otak)

Model bahasa seperti GPT-4 atau Claude sebagai "otak" yang berpikir dan membuat keputusan.

๐Ÿ”ง

Tools

Kemampuan yang bisa digunakan: search web, baca file, hitung matematika, panggil API, dll.

๐Ÿ’พ

Memory

Kemampuan menyimpan dan mengingat informasi dari percakapan sebelumnya atau hasil penelitian.

๐Ÿ“‹

Planning

Kemampuan memecah tujuan besar menjadi langkah-langkah kecil yang bisa dieksekusi.

๐Ÿ”„ Siklus Kerja Agent (ReAct Loop)
  • Receive GoalMenerima instruksi/tujuan dari pengguna.
  • Think (Reason)LLM berpikir: "Apa yang perlu saya lakukan? Tools apa yang cocok?"
  • ActMenjalankan tool yang dipilih (misalnya: search web).
  • ObserveMembaca hasil dari tool yang dijalankan.
  • Repeat atau FinishApakah tujuan sudah tercapai? Kalau belum, ulangi langkah 2-4.
๐Ÿ’ก Pola ini disebut ReAct ReAct = Reasoning + Acting. Ini adalah pola paling populer untuk membangun AI Agent yang handal.
๐Ÿ“Š AI Biasa vs AI Agent
AspekAI Biasa (Chatbot)AI Agent
InputPertanyaanTujuan / Goal
OutputTeks jawabanTindakan nyata
ToolsTidak adaBanyak tools
SifatPasif, reaktifAktif, mandiri
LoopSekali jalanBerulang sampai selesai
ContohChatGPT dasarAutoGPT, Devin, Claude Agent
๐Ÿ—๏ธ Jenis-Jenis Agent
๐Ÿ”น Single Agent

Satu agent yang bekerja sendiri dengan banyak tools. Cocok untuk tugas sederhana hingga menengah.

๐Ÿ”ธ Multi-Agent System

Beberapa agent yang bekerja sama. Ada agent "manager" yang membagi tugas ke agent "worker". Cocok untuk tugas kompleks.

๐Ÿ”ท Autonomous Agent

Agent yang berjalan lama tanpa supervisi manusia. Bisa menyelesaikan project besar secara otomatis.

Modul 02 ยท Setup

Setup Tools &
Environment

Install semua yang dibutuhkan untuk mulai membangun AI Agent pertamamu.

โฑ ~45 menit
๐Ÿ’ป Setup
๐Ÿ“ฆ Install Dependencies
bash
# Buat virtual environment
python -m venv agent-env
source agent-env/bin/activate  # Linux/Mac
agent-env\Scripts\activate     # Windows

# Install packages utama
pip install langchain langchain-openai
pip install langchain-community
pip install python-dotenv
pip install duckduckgo-search
pip install beautifulsoup4 requests
๐Ÿ”‘ Setup API Key
โš ๏ธ Penting Jangan pernah hardcode API key langsung di kode. Gunakan file .env untuk keamanan.
.env
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
python
from dotenv import load_dotenv
import os

load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
print("API key loaded!") # Tes apakah berhasil
โœ… Tes Koneksi ke LLM
python
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage

# Inisialisasi model
llm = ChatOpenAI(
    model="gpt-4o-mini",  # Model paling hemat
    temperature=0
)

# Tes sederhana
response = llm.invoke([
    HumanMessage(content="Halo! Jawab singkat saja.")
])

print(response.content)
๐Ÿ’ก Alternatif Gratis Bisa gunakan Groq (gratis, cepat) atau Ollama (lokal, tidak perlu API key) sebagai pengganti OpenAI.
๐Ÿ†“ Alternatif API Gratis
ProviderModelGratis?Cara Pakai
OpenAIgpt-4o-mini$5 kredit pertamapip install langchain-openai
Groqllama3, mixtralโœ… Gratispip install langchain-groq
Google Geminigemini-flashโœ… Gratispip install langchain-google-genai
Ollamallama3, mistralโœ… Lokalollama run llama3
Modul 03 ยท Praktik

Membuat
Agent Pertama

Saatnya code! Kita akan membuat AI Agent pertama yang bisa mencari informasi dari internet.

โฑ ~90 menit
๐Ÿ’ป Coding
๐Ÿ”ง Membuat Tool Pertama

Tool adalah fungsi Python biasa yang diberi decorator @tool dari LangChain.

python โ€” tools.py
from langchain.tools import tool
from duckduckgo_search import DDGS
import requests

@tool
def search_web(query: str) -> str:
    """Cari informasi dari internet menggunakan DuckDuckGo."""
    with DDGS() as ddgs:
        results = list(ddgs.text(query, max_results=3))
    
    output = ""
    for r in results:
        output += f"Judul: {r['title']}\n"
        output += f"URL: {r['href']}\n"
        output += f"Isi: {r['body']}\n\n"
    
    return output

@tool
def calculate(expression: str) -> str:
    """Hitung ekspresi matematika sederhana. Contoh: '2 + 2' atau '10 * 5'"""
    try:
        result = eval(expression)
        return f"Hasil: {result}"
    except:
        return "Error: ekspresi tidak valid"
๐Ÿค– Buat Agent dengan Tools
python โ€” agent.py
from langchain_openai import ChatOpenAI
from langchain.agents import create_react_agent, AgentExecutor
from langchain import hub
from tools import search_web, calculate

# 1. Inisialisasi LLM
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)

# 2. Daftar tools yang bisa digunakan agent
tools = [search_web, calculate]

# 3. Load prompt ReAct dari LangChain Hub
prompt = hub.pull("hwchase17/react")

# 4. Buat agent
agent = create_react_agent(llm, tools, prompt)

# 5. Buat executor (yang menjalankan loop)
agent_executor = AgentExecutor(
    agent=agent,
    tools=tools,
    verbose=True,   # Tampilkan proses berpikir
    max_iterations=5
)

# 6. Jalankan!
result = agent_executor.invoke({
    "input": "Siapa presiden Indonesia saat ini dan berapa usianya?"
})

print("\n=== JAWABAN FINAL ===")
print(result["output"])
๐Ÿ” Apa yang terjadi saat dijalankan Agent akan berpikir keras (Thought), memilih tool search_web (Action), membaca hasilnya (Observation), lalu menyimpulkan jawaban. Semua proses ini tampil karena verbose=True.
๐Ÿ“ค Output yang Diharapkan
output
> Entering new AgentExecutor chain...
Thought: Saya perlu mencari informasi tentang presiden Indonesia.
Action: search_web
Action Input: presiden Indonesia 2024
Observation: Judul: Prabowo Subianto...

Thought: Saya sudah punya informasinya. Sekarang saya perlu cari usianya.
Action: search_web
Action Input: usia Prabowo Subianto tahun lahir

... (loop berlanjut) ...

Final Answer: Presiden Indonesia saat ini adalah Prabowo Subianto, 
berusia XX tahun.
Modul 04 ยท Lanjut

Multi-step Agent
& Chain of Thought

Buat agent yang mampu merencanakan tugas kompleks dan menyelesaikannya step by step.

โฑ ~90 menit
๐Ÿ’ป Coding
๐Ÿ“ Agent dengan File Output
python
from langchain.tools import tool import os @tool def write_file(filename: str, content: str) -> str: """Tulis konten ke dalam sebuah file.""" with open(filename, 'w', encoding='utf-8') as f: f.write(content) return f"File '{filename}' berhasil disimpan." @tool def read_file(filename: str) -> str: """Baca isi dari sebuah file.""" if not os.path.exists(filename): return "File tidak ditemukan." with open(filename, 'r', encoding='utf-8') as f: return f.read()
๐ŸŽฏ Contoh Tugas Multi-step
python
# Agent akan: cari info โ†’ rangkum โ†’ simpan ke file
result = agent_executor.invoke({
    "input": """
    Lakukan tugas berikut langkah demi langkah:
    1. Cari informasi terbaru tentang 'LangChain AI framework'
    2. Buat ringkasan dalam Bahasa Indonesia (200 kata)
    3. Simpan ringkasan tersebut ke file 'langchain_summary.txt'
    4. Konfirmasi bahwa file sudah tersimpan
    """
})
๐Ÿ’ก Tips Prompting untuk Multi-step Selalu tuliskan langkah secara eksplisit dan berurutan. Agent bekerja lebih baik ketika tahu urutan yang diharapkan.
๐Ÿ”— Chaining dengan LCEL

LCEL (LangChain Expression Language) memungkinkan kita menghubungkan komponen dengan operator |

python โ€” lcel_chain.py
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser

llm = ChatOpenAI(model="gpt-4o-mini")

# Chain 1: Buat outline
outline_prompt = ChatPromptTemplate.from_template(
    "Buat outline artikel 5 poin tentang: {topic}"
)

# Chain 2: Tulis artikel berdasarkan outline
article_prompt = ChatPromptTemplate.from_template(
    "Tulis artikel lengkap berdasarkan outline ini:\n{outline}"
)

# Gabungkan dengan LCEL
chain = (
    outline_prompt
    | llm
    | StrOutputParser()
    | {"outline": lambda x: x}
    | article_prompt
    | llm
    | StrOutputParser()
)

# Jalankan!
artikel = chain.invoke({"topic": "AI Agent di industri"})
print(artikel)
Modul 05 ยท Memory

Memory & State
Management

Buat agent yang bisa mengingat konteks percakapan sebelumnya dan menyimpan state.

โฑ ~90 menit
๐Ÿ’ป Coding
๐Ÿ’พ Jenis Memory
๐Ÿ—‚๏ธ

Short-term Memory

Ingat percakapan dalam satu sesi. Disimpan di memori RAM (chat history).

๐Ÿ—„๏ธ

Long-term Memory

Ingat informasi antar sesi. Disimpan di database atau file.

๐Ÿ”

Semantic Memory

Cari informasi berdasarkan kemiripan makna menggunakan vector database.

๐Ÿ“‹

Episodic Memory

Ingat kejadian/event spesifik yang pernah dialami agent.

๐Ÿ—จ๏ธ Implementasi Chat History
python โ€” memory_agent.py
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain.agents import create_openai_tools_agent, AgentExecutor
from langchain_community.chat_message_histories import ChatMessageHistory
from langchain_core.runnables.history import RunnableWithMessageHistory

llm = ChatOpenAI(model="gpt-4o-mini")
tools = [search_web, calculate]

# Prompt yang menyertakan chat history
prompt = ChatPromptTemplate.from_messages([
    ("system", "Kamu adalah asisten AI yang membantu. Ingat konteks percakapan."),
    MessagesPlaceholder("chat_history"),  # Tempat history dimasukkan
    ("user", "{input}"),
    MessagesPlaceholder("agent_scratchpad"),
])

agent = create_openai_tools_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools)

# Simpan history per session
store = {}

def get_session_history(session_id: str):
    if session_id not in store:
        store[session_id] = ChatMessageHistory()
    return store[session_id]

# Bungkus dengan memory
agent_with_memory = RunnableWithMessageHistory(
    executor,
    get_session_history,
    input_messages_key="input",
    history_messages_key="chat_history",
)

# Percakapan dengan memory!
config = {"configurable": {"session_id": "user-123"}}

agent_with_memory.invoke({"input": "Nama saya Budi."}, config=config)
agent_with_memory.invoke({"input": "Siapa nama saya?"}, config=config)
# Agent akan menjawab: "Nama Anda adalah Budi."
Modul 06 ยท Project

Build Real Agent:
Research Assistant

Bangun Research Agent lengkap yang bisa mencari, menganalisis, dan membuat laporan otomatis.

โฑ ~2 jam
๐Ÿš€ Project
๐ŸŽฏ Fitur Research Agent
๐Ÿ”

Web Search

Cari informasi dari internet secara otomatis

๐Ÿ“„

Read Pages

Baca isi halaman web secara penuh

๐Ÿ“

Write Report

Buat laporan lengkap dan simpan ke file

๐Ÿ“ Struktur Project
struktur folder
research-agent/
โ”œโ”€โ”€ main.py          # Entry point
โ”œโ”€โ”€ tools.py         # Semua tools
โ”œโ”€โ”€ agent.py         # Konfigurasi agent
โ”œโ”€โ”€ prompts.py       # System prompts
โ”œโ”€โ”€ .env             # API keys
โ””โ”€โ”€ output/          # Hasil laporan
๐Ÿ› ๏ธ Semua Tools
python โ€” tools.py (lengkap)
from langchain.tools import tool
from duckduckgo_search import DDGS
import requests
from bs4 import BeautifulSoup
import os
from datetime import datetime

@tool
def search_web(query: str) -> str:
    """Cari artikel/berita dari internet."""
    with DDGS() as ddgs:
        results = list(ddgs.text(query, max_results=5))
    output = ""
    for i, r in enumerate(results, 1):
        output += f"{i}. {r['title']}\n   URL: {r['href']}\n   {r['body']}\n\n"
    return output

@tool
def read_webpage(url: str) -> str:
    """Baca isi lengkap sebuah halaman web."""
    try:
        resp = requests.get(url, timeout=10)
        soup = BeautifulSoup(resp.text, 'html.parser')
        for tag in soup(['script', 'style', 'nav']):
            tag.decompose()
        text = soup.get_text(separator='\n', strip=True)
        return text[:3000]  # Batasi 3000 karakter
    except Exception as e:
        return f"Error: {str(e)}"

@tool
def save_report(topic: str, content: str) -> str:
    """Simpan laporan penelitian ke file."""
    os.makedirs('output', exist_ok=True)
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    filename = f"output/report_{timestamp}.md"
    with open(filename, 'w', encoding='utf-8') as f:
        f.write(f"# Laporan: {topic}\n\n{content}")
    return f"Laporan disimpan: {filename}"
๐Ÿค– Research Agent Final
python โ€” main.py
from langchain_openai import ChatOpenAI
from langchain.agents import create_openai_tools_agent, AgentExecutor
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from tools import search_web, read_webpage, save_report
from dotenv import load_dotenv

load_dotenv()

# System prompt khusus untuk research
SYSTEM = """Kamu adalah Research Assistant yang handal.
Tugasmu adalah melakukan riset mendalam tentang topik yang diberikan.

Langkah kerja:
1. Cari informasi dari beberapa sumber menggunakan search_web
2. Baca halaman-halaman yang relevan dengan read_webpage
3. Analisis dan rangkum informasi yang ditemukan
4. Buat laporan terstruktur dengan format Markdown
5. Simpan laporan dengan save_report

Selalu gunakan minimal 3 sumber berbeda. Pastikan laporan:
- Memiliki executive summary
- Terstruktur dengan heading yang jelas  
- Menyertakan key findings
- Ditulis dalam Bahasa Indonesia"""

llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.3)
tools = [search_web, read_webpage, save_report]

prompt = ChatPromptTemplate.from_messages([
    ("system", SYSTEM),
    ("user", "{input}"),
    MessagesPlaceholder("agent_scratchpad"),
])

agent = create_openai_tools_agent(llm, tools, prompt)
executor = AgentExecutor(
    agent=agent, tools=tools,
    verbose=True, max_iterations=10
)

# Jalankan research!
topic = input("Topik yang ingin diriset: ")
result = executor.invoke({"input": f"Riset mendalam tentang: {topic}"})
print("\nโœ… Research selesai! Cek folder 'output' untuk laporan.")
๐ŸŽ‰ Langkah Selanjutnya
๐ŸŒ

Tambah UI Web

Buat interface dengan Streamlit atau Gradio agar bisa diakses lewat browser

๐Ÿค

Multi-Agent

Pisahkan jadi beberapa agent: Researcher, Writer, Editor

๐Ÿ—ƒ๏ธ

Vector Database

Tambah long-term memory dengan ChromaDB atau Pinecone

โ˜๏ธ

Deploy

Deploy ke cloud: Railway, Render, atau AWS Lambda

๐Ÿ† Selamat! Kamu sudah selesai modul dasar. Eksplorasi lebih lanjut dengan LangGraph untuk membuat agent workflow yang lebih canggih.