🧠 Prompt Engineering & LLM Interaction Patterns β€” Deep Dive: Zero-Shot sampai Reflexion, ReAct, Agent Loop

Panduan komprehensif teknik interaksi dengan LLM β€” dari zero-shot prompt sampai multi-step agent loop. Mencakup system prompt design, few-shot in-context learning, Chain-of-Thought (CoT), structured output (JSON/function calling), ReAct pattern untuk tool-calling, context management multi-turn, dan advanced patterns (Reflexion, Self-Critique, Plan-and-Execute). Vault udah punya arsitektur agentic AI di agentic-ai-mcp-architecture-deepdive, LLM security di llm-security-red-teaming-attack-surface-ai-layer, dan test-time compute di test-time-compute-system2 β€” tapi belum ada catatan yang membahas cara bicara ke LLM secara efektif dari sisi prompt. Catatan ini adalah jembatan antara API call mentah dan agent otonom.

Posisi di Vault

Ini adalah fondasi interaksi untuk semua catatan AI di vault. Baca ini dulu sebelum agentic-ai-mcp-architecture-deepdive (implementasi MCP tool server), llm-security-red-teaming-attack-surface-ai-layer (dark side: prompt injection & jailbreak), test-time-compute-system2 (CoT dari sisi model, bukan prompt), ai-evaluation-framework (evaluasi output LLM), dan meta-agent-orchestration (multi-agent prompt chaining).


Daftar Isi


Foundation β€” Dari Prompt ke Agent

Evolusi Interaksi LLM

Level 0: Input Text -> Output Text          (Prompt mentah)
Level 1: Input + Examples -> Output         (In-Context Learning)
Level 2: Input + Reasoning -> Output        (Chain-of-Thought)
Level 3: Input + Schema -> JSON             (Structured Output)
Level 4: Input + Tools -> Action -> Observe -> Repeat (ReAct Agent)
Level 5: Multi-turn Context -> Stateful Agent (Conversation)
Level 6: Self-Improving Loop                (Reflexion)

Setiap level menambah kompleksitas, kemampuan, dan potential failure mode.

LevelKemampuan TambahanFailure Mode Baru
0Jawab pertanyaanAmbigu, hallucination, format tidak konsisten
1Ikuti format contohContoh bias, negative examples
2Reasoning logisMulti-hop error, contradiction
3Machine-parsable outputJSON malformed, schema violation
4Eksekusi aksiTool error, wrong tool, infinite loop
5Stateful conversationContext drift, memory leak
6Self-correctionOver-correction, compute cost

Level 0 β€” Zero-Shot & System Prompt Design

Anatomi System Prompt Efektif

[ROLE]          Kamu adalah [peran spesifik] dengan [N tahun] pengalaman di [domain]
[CONTEXT]       Konteks situasi: [latar belakang, tujuan, audiens]
[CONSTRAINTS]   Constraints: [format, panjang, tone, hal yang tidak boleh dilakukan]
[TASK]          Tugas spesifik: [satu intent, jelas, terukur]
[OUTPUT]        Output yang diharapkan: [format, struktur]

Contoh System Prompt

Kamu adalah senior DevOps engineer dengan 10 tahun pengalaman di Kubernetes dan cloud-native.

Konteks: Tim sedang migrasi dari Docker Swarm ke K8s. Developer familiar dengan docker-compose tapi belum pernah pegang K8s.

Constraints:
- Jawab dalam Bahasa Indonesia campur Inggris
- Maksimal 3 paragraf
- Sertakan 1 contoh YAML yang relevan
- Jangan gunakan jargon yang tidak dijelaskan

Tugas: Jelaskan perbedaan Pod dan Deployment di K8s dengan analogi docker-compose services.

Output: Format markdown dengan bagian "TL;DR" di atas.

Anti-Pattern Zero-Shot

❌ Anti-PatternKenapa Gagalβœ… Solusi
Prompt terlalu pendek (β€œJelaskan kernel”)LLM gak tau depth yang diinginkanTambah konteks: audiens, scope, format
Multitask dalam 1 promptLLM fokus di tengah, lupa ujungSatu prompt = satu intent
Instruksi di akhir promptPositional bias: LLM lebih ingat awal & akhirInstruksi utama di awal, detail di akhir
Tone tidak dispesifikasiOutput terlalu formal/kaku untuk konteksExplicit: β€œGaya ngobrol santai, kayak temen”

Level 1 β€” Few-Shot & In-Context Learning

Teknik Few-Shot

TeknikCara KerjaKapan Pakai
Fixed Few-Shot2-5 contoh statis sebelum queryFormat output rigid, classification task
Dynamic Few-ShotPilih contoh relevan dari vector DB tiap queryProduction RAG β€” lebih akurat
Many-Shot50-100+ contoh dalam konteksPattern extraction, style matching
Negative ExamplesSertakan contoh yang SALAH + kenapa salahKlasifikasi dengan boundary jelas

Aturan Emas Few-Shot

  1. Contoh harus diverse β€” jangan 5 contoh yang mirip
  2. Contoh harus edge-case-aware β€” sertakan 1 kasus batas
  3. Format konsisten: Input β†’ Reasoning (opsional) β†’ Output
  4. Label dengan jelas mana contoh dan mana query real
  5. Negative examples > positive examples untuk boundary cases

Template Few-Shot

Berikut adalah contoh format yang diinginkan:

Input: "Jelaskan perbedaan TCP dan UDP"
Output:
  TL;DR: TCP = reliable tapi lambat. UDP = cepat tapi lossy.
  Detail:
    - TCP: connection-oriented, 3-way handshake, retransmission
    - UDP: connectionless, fire-and-forget, no ack

Input: "Apa itu Kubernetes?"
Output:
  TL;DR: Orchestrator container β€” kayak Docker Compos tapi untuk banyak server.
  Detail:
    - ...

Input: {user_query}
Output:

Level 2 β€” Chain-of-Thought (CoT)

Tingkatan CoT

TeknikPromptEfekCost
Zero-Shot CoT”Mari berpikir langkah demi langkah”+10-30% accuracy0 (cuma tambah 1 kalimat)
Few-Shot CoTContoh dengan reasoning chain+20-40%Sedang (beberapa contoh)
Structured CoT”Output dengan format: 1. Analisis… 2. Langkah… 3. Kesimpulan”Output terstruktur + reasoningMinimal
Self-ConsistencyGenerate N chain β†’ voting jawaban paling konsisten+5-15% dari CoT biasaTinggi (Nx API call)
CoT with Confidence”Setelah berpikir, beri confidence score 0-1”Trust calibrationMinimal

Kapan CoT Efektif?

βœ… Matematika, logika, debugging, multi-hop QA, planning ❌ Fakta sederhana, kreativitas, summarization β€” CoT malah bikin verbose

CoT = Murah Meriah

Zero-shot CoT gak perlu training, gak perlu fine-tune, cuma tambah 1 kalimat di prompt. Efeknya dramatis di reasoning task. Dulu GSM8K benchmark: 18% accuracy β†’ 79% hanya dengan menambahkan β€œLet’s think step by step.”

Level 3 β€” Structured Output (JSON Mode / Function Calling)

Cara Kerja

LLM menghasilkan output yang bisa diparsing mesin β€” bukan teks bebas.

Metode 1: Prompt-based JSON

Output dalam format JSON valid:
{
  "kesimpulan": "...",
  "confidence": 0-1,
  "alasan": ["...", "..."]
}
Jangan sertakan markdown, hanya JSON.

Metode 2: Function Calling (API-level)

OpenAI, Anthropic, Google, OpenRouter β€” semua support tools parameter.

{
  "name": "search_knowledge_base",
  "description": "Cari dokumen relevan dari vault",
  "parameters": {
    "type": "object",
    "properties": {
      "query": { "type": "string" },
      "limit": { "type": "integer", "default": 5 }
    }
  }
}

Metode 3: Constrained Decoding (JSON-mode API)

Beberapa provider punya response_format: {"type": "json_object"} yang memaksa output JSON valid di level decoding, bukan prompt.

MetodeJaminan JSON ValidKecepatanDukungan Provider
Prompt-based❌ Kadang gagalCepatSemua
Function Callingβœ… High, tapi bisa skippedSedangOpenAI, Anthropic, Gemini
Constrained Decodingβœ…βœ… Almost 100%LambatOpenAI, Together, Fireworks

Level 4 β€” Tool-Calling Loop & ReAct Pattern

ReAct = Reasoning + Acting β€” siklus kognitif yang memungkinkan LLM menggunakan tools eksternal.

Flow Satu Siklus

1. Thought: LLM menganalisis situasi dan menentukan langkah
2. Action: LLM memilih tool + argumen (dalam format JSON)
3. Observation: Hasil eksekusi tool dikembalikan ke LLM
4. Repeat: Kembali ke Thought β€” apakah sudah cukup atau perlu langkah lagi
5. Final Answer: LLM memberikan jawaban final berdasarkan semua observasi

Contoh Siklus

Thought: Saya perlu tahu CVE terbaru untuk kernel Linux
Action: search_cve(query="Linux kernel critical 2025")
Observation: [CVE-2025-XXXX, CVE-2025-XXXX β€” use-after-free di netfilter]
Thought: Saya punya data CVE. Sekarang saya perlu rekomendasi mitigasi
Action: query_knowledge_base(topic="netfilter mitigation")
Observation: [Patch di versi 6.8.5, backport available]
Final Answer: Berikut CVE kritis kernel Linux 2025 beserta mitigasi...

Infinite Loop Detection

Tool-calling agent bisa stuck dalam loop. Mitigasi:

  1. Max iteration β€” hard limit (biasanya 10-25 langkah)
  2. Repetition detection β€” jika LLM generate action yang sama >2x
  3. Timeout β€” batas waktu total siklus
  4. Thought diversity check β€” jika thought gak berkembang, force final answer

Koneksi: Implementasi MCP tool server ada di agentic-ai-mcp-architecture-deepdive. Catatan ini fokus pada prompt-level interaction, bukan infrastruktur.

Level 5 β€” Multi-Turn Context Management

Masalah Konteks

MasalahPenyebabSolusi
Context Window OverflowKonteks terlalu panjang setelah N turnSummarization historis: compress N turn jadi 1 paragraf
Positional BiasLLM lupa informasi di tengah konteksInstruksi paling penting di awal dan akhir prompt
Hallucination karena konflikData baru override data lama secara implisitExplicit conflict resolution: β€œData terbaru override data lama”
Tool Call HistoryHasil tool call memenuhi konteksSimpan hanya hasil relevan, hapus intermediate error
Attention SinkModel terdistraksi oleh informasi paling baruPrioritaskan ulang konteks berdasarkan relevansi

Strategi Ringkasan (Summarization) untuk Long Conversation

System: Kamu adalah asisten yang membantu.
[10 turn percakapan sebelumnya β€” terlalu panjang]

Alternatif β€” compress:
System: Kamu adalah asisten yang membantu.
[Ringkasan: User bertanya tentang K8s deployment. Sudah dibahas: rolling update, probe, resource limits.]
User: Sekarang gimana caranya setup HPA?

Level 6 β€” Advanced Patterns (Reflexion, Self-Critique, Plan-and-Execute)

PatternCara KerjaKelebihanKekuranganUse Case
ReflexionGenerate β†’ evaluasi output sendiri β†’ refine berdasarkan evaluasiSelf-improving, kualitas naik tiap iterasiButuh 2-3x API callCoding, writing, complex analysis
Self-CritiqueMinta LLM critique jawabannyaDeteksi error sendiri, factual accuracyLLM kadang gak bisa critique output sendiriFact-checking, code review
Plan-and-ExecuteStep 1: buat rencana (sub-task list). Step 2: eksekusi tiap sub-taskTask decomposition, traceablePlan bisa salah (garbage in, garbage out)Multi-step research, complex workflow
Tree-of-Thoughts (ToT)Branching reasoning β€” explore multiple paths simultanEksplorasi kreatif, optimasiMahal (N path x M depth)Creative problem solving, optimization

Contoh Reflexion Prompt

[ROUND 1] Generate jawaban untuk query
[ROUND 2] Evaluasi jawaban:
  - Apakah ada factual error?
  - Apakah format sesuai spec?
  - Apakah ada konteks yang terlewat?
  Beri skor 1-10 untuk setiap aspek.
[ROUND 3] Refine jawaban berdasarkan evaluasi

Perbandingan Pattern

PatternComplexityCost (API calls)Best For
Zero-ShotRendah1Simple QA, creative writing
Few-ShotRendah1 + prepClassification, format-specific
CoTRendah1 (+N untuk self-consistency)Reasoning, math, logic
Structured OutputRendah-Sedang1Data extraction, API integration
ReAct Tool LoopSedangN (tergantung tools)Research, multi-step tasks
ReflexionTinggi3-5 per cycleHigh-quality output required
Plan-and-ExecuteTinggi1 (plan) + N (execute)Complex multi-step

Koneksi ke Vault