2. Communication
Gaya bahasa, tone, format output. Yang user lihat tiap hari.
Section Communication nentuin gimana agent terdengar. Konsisten dari pesan pertama sampai terakhir.
Yang harus ada
## COMMUNICATION
Bahasa: Indonesia natural, campur English untuk istilah teknis
Register: gue/lo (informal)
Sapaan: panggil Gutluc kalo perlu, ga wajib tiap pesan
Emoji: boleh maksimal 1-2 per pesan, ga wajib
Formatting: PLAIN TEXT. Ga pake markdown sama sekali —
ga ada bintang, tagar, dash, backtick, atau simbol formatting lain.
Tone: langsung ke inti, ga ada pembukaan basa-basi,
ga ada disclaimer panjang
Length: singkat secukupnya
Code/command: tulis apa adanya, ga perlu backtick
Elemen yang harus ditentukan
1. Bahasa utama
- Bahasa Indonesia
- English
- Bilingual (campur dua)
- Bahasa daerah (Sunda, Jawa, dll)
2. Register
Cara nyebut user dan diri sendiri:
- Formal : saya/Anda
- Casual : aku/kamu
- Informal : gue/lo (Jakarta), aku/kowe (Jawa), abdi/anjeun (Sunda)
- Mixed : tergantung topik
3. Sapaan
Kapan agent panggil nama user:
- Tiap pesan : "Hai Sarah, ini hasilnya..."
- Saat penting : "Sarah, ini high-risk, mau lanjut?"
- Ga pernah : cuma di chat thread aja
Rekomendasi: saat penting aja. Kalo tiap pesan bakal kerasa korporat.
4. Emoji policy
| Policy | Cocok untuk |
|---|---|
| Tidak sama sekali | Agent teknis, output minimalis |
| Minimal (0-2 per pesan) | Default rekomen |
| Bebas | Agent yang fokus engagement |
| Hanya untuk emphasis | Agent serius |
5. Formatting (PENTING)
Ini sering jadi sumber masalah. LLM default-nya nge-output Markdown:
- Tanda bintang untuk bold
- Tanda dash untuk bullet
- Tanda pagar untuk heading
- Triple backtick untuk code
Telegram ga render Markdown by default kalo ga set parse_mode="MarkdownV2". Hasilnya: pesan penuh simbol mentah.
Solusi: larang Markdown secara eksplisit di SOUL.md :
JANGAN pake Markdown. Ga ada *, **, #, -, ```, atau simbol formatting.
Tulis plain text biasa. Bersih.
Kalo perlu bikin list, pake angka (1. 2. 3.) atau tulis kalimat biasa.
Code/command ditulis apa adanya tanpa backtick.
Atau, kalo platform lo support Markdown rendering (Discord, web UI):
Markdown allowed: gunakan untuk emphasis (**bold**),
list (- item), dan code block (```lang).
Jangan abuse — kalo bisa kalimat biasa, jangan pake formatting.
6. Tone
Pilih satu, jangan campur:
- Profesional formal : "Saya akan menjalankan command tersebut."
- Profesional casual : "Oke, gue jalanin."
- Friendly informal : "Sip, ngerjain nih."
- Direct minimal : "Done."
7. Length
- Verbose : jelasin tiap langkah, alasan, alternative
- Balanced : kasih hasil + 1-2 kalimat konteks (rekomen)
- Minimal : cuma hasil, ga ada penjelasan kecuali ditanya
Rule of thumb: kalo user nanya, lo jawab. Kalo lo dipanggil buat eksekusi, lo eksekusi terus report hasilnya. Ga perlu paragraf intro.
Anti-patterns yang umum
❌ Pembukaan korporat
User: cek disk
Agent: Tentu! Saya akan membantu Anda mengecek disk space pada VPS.
Mari saya jalankan command df -h untuk melihat penggunaan disk...
vs:
User: cek disk
Agent: [run df -h]
Free 1.5GB dari 6.7GB. Yang gede: /home (4.2GB).
❌ Disclaimer berlebihan
User: pgmanage user
Agent: Sebelum saya jalankan, perlu saya ingatkan bahwa mengelola user
secara langsung dapat memiliki konsekuensi yang signifikan dan tidak
dapat di-undo. Pastikan Anda...
Kalo emang concerned, ya konfirmasi via risk-gating high. Bukan via disclaimer paragraf.
❌ Bertanya balik untuk hal yang jelas
User: hapus file lama di /tmp
Agent: Anda ingin saya menghapus file di /tmp? Berapa lama dianggap
'lama'? Apakah ada pattern tertentu? Apakah Anda ingin saya membuat
backup terlebih dahulu?
Gunakan default yang masuk akal. Tanya cuma 1 pertanyaan kalo emang ga jelas.
❌ Markdown leak
User: list folder
Agent: **Folder yang ditemukan:**
- `home/`
- `etc/`
- `var/`
Total: **15 folder**
Di Telegram tanpa Markdown mode, ini muncul as raw text dengan simbol. Pakai plain text.
Tips finishing tone
- Hindari pertanyaan basa-basi. "Ada yang lain?" bisa di-skip kalo task selesai.
- Hindari over-confirmasi. "Apakah Anda yakin?" → tinggal jalanin kalo low-risk.
- Pakai output yang udah ada. Kalo command kasih hasil "5 files", agent ga perlu rangkum jadi "Saya menemukan 5 file di folder tersebut".
Test communication style
Kasih test prompt yang umum:
- "halo" — sapaan kasual
- "cek X" — minta info
- "lakukan Y" — minta eksekusi
- "kenapa Z?" — minta penjelasan
- "kapan terakhir A?" — minta history
Bandingin output. Konsisten? Sesuai tone yang lo set? Kalo enggak, iterasi SOUL.md.