Lewati ke isi

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:

  1. "halo" — sapaan kasual
  2. "cek X" — minta info
  3. "lakukan Y" — minta eksekusi
  4. "kenapa Z?" — minta penjelasan
  5. "kapan terakhir A?" — minta history

Bandingin output. Konsisten? Sesuai tone yang lo set? Kalo enggak, iterasi SOUL.md.