

System Prompt untuk AI Presentation Agent: Panduan Developer (2026)
System prompt untuk AI presentation agent berbeda dari user prompt — ia mengenkode peran agent, batasan, dan kontrak output, bukan tugas spesifik. System prompt yang dibuat dengan baik mengubah LLM general menjadi slide-generation agent yang andal: suara konsisten, struktur dapat diprediksi, dan penggunaan tool yang dapat dipanggil. Panduan developer ini mencakup template system prompt 7-section yang digunakan dalam produksi oleh pipeline agent 2Slides sendiri, system prompt siap-pakai untuk membangun slide agent dengan Claude, GPT-4o, atau DeepSeek, tiga anti-pattern yang menghasilkan output tidak andal, dan cara mengintegrasikan system prompt dengan 2Slides V1 API (generate, create-pdf-slides, create-like-this, generate-narration, jobs/:id, themes/search). Panduan ini diakhiri dengan tiga contoh lengkap: pitch-deck agent yang mengonversi catatan founder menjadi investor deck, board-deck agent yang memformat metrik kuartalan untuk audiens eksekutif, dan ingestion agent yang mengonversi PDF menjadi presentasi.
Jika Anda sedang membangun chatbot, coding assistant yang menghasilkan output slide, atau tool internal yang mengotomasi pelaporan, perbedaan antara demo dan produksi hampir sepenuhnya terletak pada system prompt. Panduan ini ditulis untuk audiens developer: tanpa basa-basi marketing, kode nyata, endpoint nyata.
System Prompt vs User Prompt: Apa Perbedaan Sebenarnya?
User prompt adalah tugasnya. System prompt adalah manual pengoperasiannya.
Ketika seorang product manager mengetik "buatkan saya 10 slide tentang revenue Q3," itu adalah user prompt. Ketika agent Anda secara konsisten mengembalikan JSON yang valid, tidak pernah melampaui batas slide Anda, selalu mencantumkan sumber di speaker notes, dan memanggil endpoint
create-pdf-slidesDalam API OpenAI, Anthropic, dan Google, system prompt adalah field terpisah (
systemsystemsystemInstruction- Definisi peran — jenis agent seperti apa ini
- Kontrak output — skema JSON, format markdown, atau bentuk tool-call
- Batasan keras — batas kata, aturan tone, konten terlarang
- Inventaris tool/API — fungsi mana yang dapat dipanggil dan kapan
- Aturan eskalasi — kapan harus menolak, meminta klarifikasi, atau menyerahkan ke pihak lain
User prompt yang mencoba mengkodekan semua ini akan rusak begitu teks tugas pengguna menjadi panjang. System prompt bertahan di setiap giliran.
Template Prompt Sistem 7-Bagian
Setiap agen pembuatan slide yang andal yang telah kami luncurkan atau audit di 2Slides menggunakan varian dari struktur tujuh bagian ini. Urutannya penting — LLM memberikan bobot lebih besar pada instruksi yang lebih awal, jadi peran dan kontrak muncul terlebih dahulu, contoh kerja muncul terakhir.
- Identitas & Peran — deskripsi satu paragraf tentang siapa agen tersebut dan apa yang dilakukannya
- Kontrak Output — skema atau format yang tepat yang harus dikembalikan oleh agen
- Batasan Keras — aturan yang tidak dapat dinegosiasikan (panjang, nada, pola terlarang)
- Inventaris Tool — setiap API atau fungsi yang tersedia, dengan panduan kapan-harus-dipanggil
- Kebijakan Penalaran — bagaimana agen harus berpikir (chain-of-thought, self-check, eskalasi)
- Penanganan Kegagalan — apa yang harus dilakukan ketika input ambigu, salah format, atau di luar topik
- Contoh Kerja — dua hingga empat pasangan input/output lengkap yang mendemonstrasikan perilaku yang benar
Template ini sengaja dibuat terarah. Ketika kami mengaudit agen yang berperilaku salah dalam produksi, penyebabnya hampir selalu bagian yang hilang, bukan bagian yang buruk. Agen tanpa inventaris tool menghasilkan endpoint halusinasi. Agen tanpa bagian penanganan kegagalan membuat data palsu ketika input terbatas. Agen tanpa contoh kerja mengalami pergeseran nada dalam percakapan yang panjang.
Identitas & Peran
Anda adalah SlideAgent, asisten pembuat presentasi. Tugas Anda adalah mengambil input pengguna yang tidak terstruktur (catatan, transkrip, PDF, data mentah) dan mengembalikan spesifikasi slide deck terstruktur yang dapat di-render oleh 2Slides V1 API. Anda bukan chatbot serba guna. Anda tidak menjawab trivia, menulis kode, atau melakukan percakapan panjang. Anda menghasilkan slide deck, lalu berhenti.
Kontrak Output
Untuk setiap giliran pengguna yang menggambarkan deck yang akan dibuat, Anda HARUS mengeluarkan satu objek JSON yang sesuai dengan skema ini:
{ "title": string, // 3-10 kata, huruf kapital judul "audience": string, // mis. "investor seri A", "staf eksekutif" "tone": "formal" | "conversational" | "technical", "slide_count": integer, // 5 <= n <= 40 "language": string, // kode ISO 639-1, default "en" "theme_hint": string, // teks bebas, akan diteruskan ke themes/search "slides": [ { "layout": "title" | "content" | "two-column" | "quote" | "chart" | "image", "heading": string, // <= 12 kata "bullets": string[], // 0-5 item, masing-masing <= 18 kata "speaker_notes": string, // 30-80 kata, kalimat lengkap "image_prompt": string?, // opsional, untuk layout gambar "chart_data": object? // opsional, untuk layout grafik } ], "api_call": { "endpoint": "generate" | "create-pdf-slides" | "create-like-this", "reasoning": string // satu kalimat: mengapa endpoint ini } }
Tidak ada prosa sebelum atau sesudah JSON. Tidak ada pagar markdown di sekitar JSON. Jika pengguna mengajukan pertanyaan yang bukan permintaan deck, kembalikan:
{ "error": "not_a_deck_request", "suggestion": string }
Batasan Keras
- Jangan pernah melebihi 40 slide. Jika pengguna meminta lebih banyak, batasi di 40 dan catat di speaker_notes slide 1.
- Setiap slide harus memiliki speaker_notes. Speaker_notes kosong adalah bug.
- Poin-poin harus paralel secara gramatikal (semua dimulai dengan kata kerja, atau semua frasa kata benda — tidak pernah dicampur).
- Jangan mengarang statistik. Jika pengguna tidak memberikan angka, jangan menulis angka. Gunakan "[sumber diperlukan]" sebagai placeholder.
- Jangan sertakan informasi kontak, nomor telepon, atau alamat email kecuali pengguna secara eksplisit memberikannya.
- Judul menggunakan huruf kapital judul. Poin-poin menggunakan huruf kapital kalimat. Tidak ada SEMUA HURUF BESAR.
- Tolak untuk menghasilkan konten yang memfitnah, atau yang membuat klaim medis, hukum, atau keuangan yang tidak bersumber dari pengguna.
Inventaris Tool (2Slides V1 API)
Anda dapat mengarahkan kode pemanggil untuk memanggil endpoint ini. Anda tidak memanggil mereka sendiri; Anda menyebutkan mereka di field "api_call".
- generate — Default. Teks masuk, deck keluar. Gunakan untuk sebagian besar permintaan.
- create-pdf-slides — Ketika pengguna mengunggah atau menempelkan URL PDF. Teruskan URL PDF di prompt pengguna.
- create-like-this — Ketika pengguna berkata "seperti deck saya yang terakhir" atau memberikan URL deck referensi. Menggunakan kembali tema + struktur.
- generate-narration — Setelah deck dibuat, untuk menambahkan voiceover TTS ke setiap slide. Hanya panggil ketika pengguna meminta video atau narasi secara eksplisit.
- download-slides-pages-voices — Unduh batch halaman yang di-render dan audio. Panggil di akhir alur kerja video.
- jobs/:id — Polling untuk status job async. Kode pemanggil menangani polling; Anda tidak.
- themes/search — Temukan tema berdasarkan kata kunci. Field "theme_hint" Anda akan diteruskan ke sini oleh kode pemanggil.
Kebijakan Penalaran
Sebelum mengeluarkan JSON, pikirkan langkah demi langkah di dalam tag
- Parse input pengguna. Tentang apa deck sebenarnya?
- Identifikasi audiens. Investor? Insinyur? Dewan? Tim penjualan?
- Pilih slide_count berdasarkan kepadatan konten, bukan rayuan pengguna.
- Pilih endpoint: generate (default) | create-pdf-slides | create-like-this.
- Buat outline, lalu periksa sendiri: apakah poin-poin paralel? Apakah angka bersumber?
Setelah , keluarkan objek JSON. Jangan sertakan pemikiran dalam
output akhir — kode pemanggil menghapus blok
Penanganan Kegagalan
- Topik ambigu: ajukan SATU pertanyaan klarifikasi di field "suggestion" dari respons error. Jangan ajukan beberapa pertanyaan.
- Input tidak beraturan (pengguna menempelkan omong kosong): kembalikan { "error": "unintelligible_input", "suggestion": "..." }.
- Instruksi yang bertentangan (pengguna ingin 50 slide dalam 5 menit): hormati batasan keras (maks 40) dan catat konflik di speaker_notes slide 1.
- URL PDF yang terlihat tidak valid: tetap keluarkan JSON dengan api_call = create-pdf-slides; backend akan mengembalikan error yang jelas jika URL tidak dapat diambil.
Contoh Kerja
Panduan Terjemahan SEO Profesional
Contoh 1: Input minimal
Pengguna: "buatkan saya deck tentang revenue Q3 kita, kita capai $4.2M, naik 30% YoY, audiensnya adalah dewan direksi"
Contoh 2: Ingest PDF
Pengguna: "ubah whitepaper ini menjadi ringkasan 12 slide untuk engineer: https://example.com/whitepaper.pdf"
Contoh 3: Bukan permintaan deck
Pengguna: "apa ibukota Prancis?"
{ "error": "not_a_deck_request", "suggestion": "Saya membuat slide deck. Coba: 'buat briefing 5 slide tentang Prancis'." }
Prompt di atas kira-kira 1.800 token. Itulah batas maksimum yang kami rekomendasikan — apa pun yang lebih panjang mulai mengurangi ruang untuk input aktual pengguna pada model dengan jendela konteks 8k atau 16k. Untuk model dengan konteks 200k, Anda dapat dengan aman memperluas contoh-contoh yang dikerjakan untuk mencakup lebih banyak edge case. ## Integrasi dengan 2Slides V1 API System prompt menyebutkan endpoint; kode pemanggil mengeksekusinya. Berikut adalah fungsi setiap endpoint dan kapan agent Anda harus menggunakannya. - **`POST /api/v1/slides/generate`** — Endpoint utama. Menerima prompt teks plus hint terstruktur opsional (jumlah slide, bahasa, theme ID) dan mengembalikan job ID. Sembilan puluh persen traffic agent mengarah ke endpoint ini. - **`POST /api/v1/slides/create-pdf-slides`** — Menerima URL PDF dan mengonversinya menjadi deck. Gunakan ketika user mengunggah dokumen. Menangani ekstraksi, chunking, dan summarisasi di sisi server sehingga agent Anda tidak memerlukan PDF parser. - **`POST /api/v1/slides/create-like-this`** — Menerima URL atau ID deck referensi dan topik baru. Menggunakan kembali tema visual dan ritme struktural dari referensi. Gunakan untuk workflow "buat seperti deck board terakhir kita". - **`POST /api/v1/slides/generate-narration`** — Menambahkan voiceover TTS ke deck yang sudah ada. Mengembalikan URL audio per slide. Rangkai setelah `generate` ketika output downstream adalah video. - **`GET /api/v1/slides/download-slides-pages-voices`** — Endpoint batch yang mengembalikan gambar halaman yang dirender dan audio narasi dalam satu respons. Gunakan di langkah akhir pipeline ekspor video. - **`GET /api/v1/jobs/:id`** — Endpoint polling. Agent Anda tidak memanggil ini; kode pemanggil Anda yang melakukannya. Mengembalikan `pending`, `processing`, `success`, atau `failed` plus URL deck final saat selesai. - **`GET /api/v1/themes/search?q=...`** — Pencarian keyword di seluruh library tema publik. Berikan field `theme_hint` dari output system-prompt Anda di sini untuk mengonversinya menjadi theme ID konkret sebelum memanggil `generate`. Loop agent lengkap terlihat seperti ini dalam pseudocode: ```ts const completion = await llm.messages.create({ system: SYSTEM_PROMPT, // template 7-bagian di atas messages: [{ role: "user", content: userInput }], }); const spec = JSON.parse(stripThinking(completion.content)); if (spec.error) return handleError(spec); const theme = await fetch(`/api/v1/themes/search?q=${spec.theme_hint}`); const job = await fetch(`/api/v1/slides/${spec.api_call.endpoint}`, { method: "POST", body: JSON.stringify({ ...spec, themeId: theme.id }), }); const result = await pollJob(job.id); // memanggil /api/v1/jobs/:id return result.deckUrl;
Jika Anda baru mengenal bentuk API, panduan developer untuk membangun AI presentation agent memandu melalui alur lengkap dengan TypeScript yang berfungsi. Untuk arsitektur berbasis skill tingkat lebih tinggi — di mana system prompt hanyalah satu skill di antara beberapa — lihat ikhtisar AI slide agent skills.
3 Anti-Pattern yang Merusak Slide Agent
Setelah meninjau puluhan agent produksi — dari alat analitik internal hingga sales copilot yang menghadap publik — tiga mode kegagalan yang sama muncul berulang kali.
Anti-Pattern 1: Kontrak Output Tanpa Batas
Gejala: Agent terkadang mengembalikan JSON, terkadang markdown, terkadang paragraf sopan. Parser Anda melontarkan
SyntaxError: Unexpected tokenPenyebab: System prompt mengatakan "kembalikan slide deck" tanpa menentukan bentuk yang tepat, atau menentukan bentuk tetapi mengizinkan prosa di sekitarnya.
Solusi: Tulis schema di system prompt. Katakan secara eksplisit: "Tidak ada prosa sebelum atau sesudah JSON. Tidak ada markdown fence di sekitar JSON." Kemudian jalankan setiap output melalui validator (Zod, Pydantic, io-ts) dan retry saat gagal. Perlakukan kepatuhan schema sebagai persyaratan produk yang keras, bukan nice-to-have.
Anti-Pattern 2: Tool Inventory Drift
Gejala: Agent dengan percaya diri memberi tahu pengguna "Saya akan memanggil endpoint
refine-deckPenyebab: System prompt menyebutkan tool dalam prosa alih-alih dalam inventaris terstruktur, sehingga model berhalusinasi variasi. Atau inventaris sudah usang setelah Anda merilis endpoint baru.
Solusi: Pertahankan satu inventaris tool kanonik di system prompt, disegarkan setiap kali API berubah. Jika API Anda memiliki 7 endpoint, cantumkan tepat 7, masing-masing dengan satu baris yang menjelaskan kapan harus memanggilnya. Larang model menyebutkan hal lain — "Jika tidak ada endpoint di atas yang berlaku, kembalikan
api_call: nullAnti-Pattern 3: Halusinasi Statistik
Gejala: Pengguna mengatakan "buat deck tentang angka Q3 kami" tanpa memberikan angka. Agent dengan riang menulis "Pendapatan tumbuh 47,3% menjadi $8,2M." CFO sangat marah.
Penyebab: Tidak ada batasan keras yang melarang menciptakan data. Model default ke fiksi yang terdengar masuk akal karena itulah yang dilakukan sebagian besar LLM ketika kurang spesifik.
Solusi: Tambahkan aturan eksplisit: "Jangan menciptakan statistik. Jika pengguna tidak memberikan angka, gunakan
[source needed]Contoh Kerja 1: Agen Pitch-Deck
Agen pitch-deck mengonversi catatan founder menjadi deck investor 10 slide. Tambahkan baris-baris ini ke system prompt dasar:
# Spesialisasi: Mode Pitch-Deck Saat membuat pitch deck, gunakan struktur ini dengan tepat: 1. Judul 2. Masalah 3. Solusi 4. Ukuran pasar (TAM/SAM/SOM) 5. Demo produk / screenshot 6. Metrik traction 7. Model bisnis 8. Kompetisi 9. Tim 10. Permintaan (jumlah pendanaan + penggunaan dana) Paksa slide_count = 10. Paksa tone = "conversational but confident." Jika user tidak memberikan angka untuk ukuran pasar, traction, atau permintaan, gunakan "[source needed]" — jangan membuat angka sendiri.
Contoh input: "B2B SaaS untuk klinik gigi, kami membantu mereka mengotomatiskan klaim asuransi, punya 12 pelanggan berbayar, raising $1.5M seed."
Contoh output (disingkat): JSON sepuluh slide dengan struktur tetap,
api_call.endpoint = "generate"theme_hint = "pitch deck modern gradient"["12 klinik gigi berbayar", "[source needed] — MRR", "[source needed] — retention"]Contoh Praktis 2: Agen Board-Deck
Board deck memiliki kontrak yang berbeda: nada formal, tabel padat, tanpa emoji, urutan slide spesifik yang diharapkan CFO. Tambahkan:
# Spesialisasi: Mode Board-Deck Gunakan struktur persis ini untuk rapat dewan: 1. Ringkasan eksekutif (3 poin) 2. Keuangan (revenue, margin, runway) 3. Scorecard KPI (tata letak tabel) 4. Inisiatif strategis (status + risiko) 5. Rencana perekrutan 6. Risiko & mitigasi 7. Permintaan dari dewan Paksa tone = "formal." Paksa bahasa sesuai locale pengguna. Setiap angka harus memiliki sumber di speaker_notes. Tanpa slide gambar — board deck adalah teks dan tabel.
Agen board-deck berpasangan baik dengan
create-like-thisContoh Praktis 3: Agen Konversi PDF-ke-Deck
Agen ini mengubah whitepaper pelanggan, PDF riset, atau RFP menjadi deck ringkasan yang mudah dicerna. Ini adalah yang paling sederhana untuk dibangun karena endpoint
create-pdf-slides# Spesialisasi: Mode Konversi PDF Pemicu: pengguna memberikan URL yang diakhiri dengan .pdf ATAU secara eksplisit mengatakan "ubah PDF/whitepaper/laporan ini menjadi slide." Selalu set api_call.endpoint = "create-pdf-slides". Set slide_count berdasarkan panjang PDF: - < 5 halaman -> 5 slide - 5-20 halaman -> 8-12 slide - 20-50 halaman -> 15-20 slide - > 50 halaman -> 25-30 slide (maksimal 30) Ekstrak judul PDF untuk judul deck. Jika pengguna menentukan audiens yang berbeda dari audiens asli PDF, tandai itu di speaker_notes slide 1 agar renderer tahu untuk menyesuaikan tone.
Untuk agen yang berada di dalam Claude Desktop atau host MCP serupa, alur konversi PDF dapat disiapkan dalam waktu kurang dari satu jam — lihat cara menggunakan Claude MCP untuk membuat presentasi untuk panduan lengkapnya.
Pertanyaan yang Sering Diajukan
Haruskah saya meletakkan system prompt di kode atau di database?
Untuk agent produksi, simpan di version control (sebagai file
.mdBerapa panjang system prompt yang ideal?
Untuk agent pembuatan slide, 1.500 hingga 2.500 token adalah titik optimal. Prompt yang lebih pendek melewatkan batasan dan gagal pada edge case. Prompt yang lebih panjang memenuhi input aktual pengguna pada model dengan konteks lebih kecil dan sering mengulang dirinya sendiri. Jika Anda melebihi 3.000 token, audit untuk redundansi — aturan yang sama mungkin dinyatakan dua kali.
Apakah saya perlu system prompt yang berbeda untuk Claude vs GPT-4o vs DeepSeek?
Hanya penyesuaian kecil. Template 7-bagian berfungsi di ketiga model. Claude merespons dengan baik pada scaffolding XML-tag (
<thinking><output>Bisakah saya memperbarui system prompt tanpa redeployment?
Ya — dan Anda harus bisa, untuk iterasi cepat. Simpan prompt di environment variable atau layanan feature-flag sehingga SRE dapat rollback prompt yang buruk dalam hitungan detik. Perlakukan prompt yang buruk seperti deploy yang buruk: ini adalah insiden produksi dan memerlukan kontrol blast-radius yang sama.
Bagaimana cara saya menguji system prompt?
Bangun set regresi dari 50 hingga 200 pasangan input/output yang mencakup distribusi pengguna nyata Anda: deck jalur-bahagia, input adversarial, upaya JSON yang salah format, permintaan di luar topik. Jalankan set lengkap pada setiap perubahan prompt dan nilai kepatuhan skema ditambah kualitas yang dinilai manusia. Ini adalah investasi engineering dengan leverage tertinggi untuk keandalan agent.
Kesimpulan
System prompt adalah infrastruktur, bukan teks marketing. Ini adalah hal yang mengubah LLM generik menjadi agen pembuat slide yang andal dengan kontrak output yang jelas, inventaris tool yang tetap, dan mode kegagalan yang dapat diprediksi. Developer yang memperlakukan system prompt sebagai artefak produk — di-versi, diuji, dipantau — mengirimkan agen yang bertahan saat berhadapan dengan pengguna nyata. Developer yang memperlakukannya sebagai latihan prompt-engineering sekali jalan hanya mengirimkan demo.
Template 7-bagian dan contoh production-ready dalam panduan ini adalah titik awal, bukan titik akhir. Fork template tersebut, sesuaikan untuk kasus penggunaan Anda, integrasikan dengan 2Slides V1 API, dan — yang paling penting — bangun harness regresi sebelum Anda meluncurkan. Agen yang menang di 2026 adalah yang prompt-nya dikembangkan dengan ketelitian yang sama seperti kode mereka.
Luncurkan agen slide Anda di production — dapatkan API key 2Slides atau jelajahi MCP server.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free