AI Agent Patterns — AI Web

AI Agent Patterns AI Agent adalah LLM yang bisa mengambil action secara otonom: panggil API, baca file, jalankan kode, navigasi web. Bukan hanya menjawab…

AI agent adalah loop: model menerima tugas, meminta tool, server menjalankan tool-nya, hasilnya dikirim balik ke model, dan model memutuskan langkah berikutnya. Begitu terus sampai model menjawab, atau sampai server menghentikannya. Bayangin kamu menyuruh asisten toko: "Cariin novel tentang sekolah di Belitung, kalau stoknya ada pesan satu." Dia gak hafal jalannya. Dia baca katalog, cek gudang, lalu menyiapkan nota dan menunggu kamu tanda tangan. Setiap selesai satu langkah, dia memutuskan langkah berikutnya dari apa yang baru dia lihat. Kamu memberi dia batas: paling banyak enam langkah, dan uang tetap di dompetmu.

🧪 Tebakan cepat: tugas "Cariin novel tentang sekolah di Belitung. Kalau stoknya ada, pesan 1 ya." dijalankan agent dengan gpt-6-luna. Pertanyaan stok biasa (satu request) biayanya $0,00006. Biaya tugas ini: sama, sekitar 4 kali, atau sekitar 100 kali? Tebak dulu, jawabannya ada di bagian "Satu tugas, langkah demi langkah".

Chatbot, workflow, dan agent

Artikel Anthropic "Building effective agents" (Engineering at Anthropic, terbit 19 Desember 2024) membedakan dua hal. Workflow: model dan tool dirangkai lewat jalur yang ditulis di kode. Agent: model yang mengarahkan sendiri proses dan pemakaian tool-nya. Kata artikel itu, agent "biasanya cuma LLM yang memakai tool berdasarkan umpan balik dari lingkungan, di dalam loop".

Ide loop ini punya nama: ReAct (Reasoning + Acting), dari makalah "ReAct: Synergizing Reasoning and Acting in Language Models" (Yao dkk., 2022). Model berpikir (think), bertindak dengan memanggil tool (act), membaca hasilnya (observe), lalu mengulang. Jadi pola agent yang memakai loop observe-think-act itu ReAct. Chain-of-thought cuma berpikir tanpa bertindak, dan prompt-response cuma satu kali jalan.

Satu tugas, langkah demi langkah

Agent Toko Buku punya tiga tool: cariSinopsis (mencari di index sinopsis, versi kecil dari pelajaran RAG), cekStok (GET /books?q=...), dan pesanBuku (cuma menyiapkan pesanan). Jalannya di Lab untuk tugas Belitung. Keputusan model di Lab adalah stand-in yang ditulis tangan; tool, penjaga, dan hitungannya beneran jalan. Token dihitung kira-kira: 295 token untuk instruksi, tiga definisi tool, dan pertanyaan (diukur dengan tokenizer o200k_base), ditambah panjang tiap item ÷ 3,5.

Langkah Model meminta Server menjalankan Token input request ini
1 cariSinopsis {"topik":"sekolah di Belitung"} cari di index: Laskar Pelangi, skor 0,158 295
2 cekStok {"judul":"Laskar Pelangi"} GET /books?q=Laskar%20Pelangi: harga 89000, stok 12 405
3 pesanBuku {"book_id":1,"jumlah":1} ditahan: {"status":"menunggu_konfirmasi","total":89000} 474
4 jawaban: "Laskar Pelangi karya Andrea Hirata cocok ... Tekan Konfirmasi untuk memesan 1." 549

Gak ada yang menulis urutan "cari, cek, pesan" di kode. Model memilih cekStok karena hasil langkah 1 menyebut Laskar Pelangi, dan memilih pesanBuku karena stoknya 12. Kalau tugasnya Bumi Manusia (stok 0), loop berhenti di langkah 2 dengan "sedang habis, jadi belum aku pesankan".

Tiap request mengirim ulang semua item sebelumnya, jadi totalnya 1.723 token input dan 135 token output. Dengan harga gpt-6-luna ($0,10 / $0,50 per 1 juta token, Oktober 2026): (1.723 × 0,10 + 135 × 0,50) / 1.000.000 = $0,00024, sekitar 4 kali pertanyaan stok biasa. Itu jawaban tebakannya. Dengan gpt-6-astra ($10 / $50) hitungan yang sama jadi $0,024, dan 10.000 tugas sehari jadi $240 sehari.

Kodenya: loop dengan tiga cara berhenti

const MAKS_LANGKAH = 6; // paling banyak 6 request ke model per pertanyaan

async function jalankanAgen(pertanyaan) {
  const input = [{ role: "user", content: pertanyaan }];
  let gagalTerakhir = "";
  for (let langkah = 1; langkah <= MAKS_LANGKAH; langkah++) {
    const res = await client.responses.create({ model: "gpt-6-luna", reasoning: { effort: "none" }, instructions: ATURAN, tools, input });
    const panggilan = res.output.filter((item) => item.type === "function_call");
    if (panggilan.length === 0) return res.output_text; // berhenti 1: model menjawab
    if (langkah === MAKS_LANGKAH) break; // berhenti 2: jatah langkah habis
    input.push(...toResponseInputItems(res.output));
    for (const p of panggilan) {
      const kunci = p.name + p.arguments;
      if (kunci === gagalTerakhir) return "Maaf, sistem stok lagi gangguan."; // berhenti 3
      const hasil = await jalankanTool(p.name, p.arguments);
      gagalTerakhir = hasil.error ? kunci : "";
      input.push({ type: "function_call_output", call_id: p.call_id, output: JSON.stringify(hasil) });
    }
  }
  return "Maaf, aku belum bisa menyelesaikannya.";
}

Pola dari "Building effective agents"

Saran utama artikel itu: mulai dari solusi paling sederhana, karena sistem agentic menukar waktu tunggu dan biaya dengan hasil yang lebih baik. Banyak aplikasi cukup dengan satu panggilan model plus data (RAG, SQL). Kalau perlu lebih, pilih polanya:

Pola Cara kerja Di Toko Buku
Routing klasifikasikan input dulu, lalu kirim ke jalur khusus tanya stok ke model kecil, rekomendasi ke model besar, komplain ke CS manusia
Agent (tool loop) model memilih tool berikutnya dari hasil tool sebelumnya tugas Belitung di atas
Planner/executor satu panggilan membuat rencana, kode menjalankan tiap langkahnya, lalu hasilnya dirangkum (versi workflow-nya disebut artikel itu orchestrator-workers) bandingkan 20 judul: stok ada dan di bawah Rp100.000
Evaluator-optimizer satu panggilan menulis, pemeriksa memberi catatan, ulangi teks promo 2 kalimat yang harga dan stoknya harus benar

Artikel itu juga menyebut prompt chaining (beberapa panggilan berurutan) dan parallelization (beberapa panggilan sekaligus, lalu digabung). Kalau langkahnya bisa ditulis di depan, tulis sebagai workflow di kode. Agent baru dipakai kalau jumlah langkahnya memang tergantung hasil di tengah jalan.

Tool tulis: manusia yang menyetujui

Agent boleh membaca sendiri (cariSinopsis, cekStok), tapi tool yang mengubah sesuatu harus menunggu manusia. pesanBuku cuma mengembalikan menunggu_konfirmasi, dan POST /orders baru dikirim saat pelanggan menekan Konfirmasi, lewat endpoint biasa dengan sesi dan hak aksesnya sendiri. Framework punya fitur untuk ini: toolApproval di Vercel AI SDK dan humanInTheLoopMiddleware di LangChain (pelajaran sebelumnya). Tool khusus admin, seperti mengubah harga, gak pernah diberikan ke agent.

Kegagalan yang khas pada agent

⚠️ Jebakan yang sering ketemu

TL;DR: AI agent adalah loop model, tool, hasil, model, sampai model menjawab atau server menghentikannya. Bedanya dengan chatbot: agent merencanakan langkah, memakai tool, dan mengambil keputusan sendiri. Pola loop observe-think-act itu ReAct (Yao dkk., 2022). "Building effective agents" (Anthropic, 19 Desember 2024) membedakan workflow (jalur ditulis di kode) dan agent (model yang mengarahkan), menyarankan mulai dari yang paling sederhana, dan menjabarkan pola routing, orchestrator-workers (planner/executor), dan evaluator-optimizer. Tugas Belitung butuh 4 request dan 1.723 token input, $0,00024 dengan gpt-6-luna (4 kali pertanyaan biasa). Pasang tiga cara berhenti: model menjawab, MAKS_LANGKAH, dan panggilan gagal yang diulang persis. Tool tulis menunggu konfirmasi manusia, argumen divalidasi di server, dan hasil tool diperlakukan sebagai data yang bisa berisi perintah titipan.

Yang akan kamu pelajari