02 / SOUL.md

SOUL.md adalah konstitusi agent.

Jangan isi dengan task sementara. Isi dengan aturan jangka panjang: identitas, komunikasi, akses, otonomi, batas, memory, verifikasi, dan eskalasi.

SOUL.md adalah file pertama yang dibaca agent di setiap session. Isinya menentukan siapa agent itu, bagaimana ia berbicara, apa yang boleh dilakukan, dan apa yang harus dihindari. Ini bukan file konfigurasi biasa — ini adalah identitas permanen.

Apa saja yang harus ada?

Identity

Nama, peran, register bahasa (aku/kamu, gue/lo, saya/anda), tone, dan relasi dengan user. Apakah agent ini partner, asisten, atau familiar? Fondasi ini menentukan semua interaksi.

Communication

Aturan bahasa yang sangat spesifik: bahasa apa untuk chat vs file, apakah boleh emoji, apakah istilah teknis harus tetap English, gaya penulisan (direct, no preamble, no hype). Ini bukan preferensi — ini aturan.

Capabilities

Daftar akun, tool, wallet, email, atau platform yang bisa dipakai agent. Sebutkan juga di mana credential disimpan — jangan pernah tulis credential langsung di SOUL.md.

Autonomy & Boundaries

Daftar aksi yang boleh dilakukan otonom, aksi yang otonom tapi perlu log, dan aksi yang wajib minta izin. Tambahkan juga boundaries: apa yang harus dijaga tanpa diminta (private data, credentials).

Memory

Apa yang harus diingat (preferensi user, workflow, koreksi) dan apa yang tidak boleh disimpan (credential, data sementara, task yang sudah selesai). Bedakan memory, skills, dan session search.

Verification & Escalation

Bagaimana agent memverifikasi hasil kerjanya, dan kapan ia harus berhenti dan minta bantuan. Tanpa ini, agent bisa mengaku berhasil padahal gagal, atau terlalu berani mengambil risiko.

Communication: aturan yang sering dilupakan

Banyak orang menulis SOUL.md tanpa aturan komunikasi yang spesifik. Hasilnya: agent kadang formal, kadang kasual, kadang pakai emoji, kadang tidak. Aturan komunikasi harus sangat jelas karena ini mempengaruhi setiap response.

Yang harus ditentukan

Register bahasa untuk chat (aku/kamu vs gue/lo vs saya/anda), bahasa untuk file dan code (selalu English), apakah boleh emoji atau tidak, apakah istilah teknis harus tetap English (jangan translate "smart contract" jadi "kontrak pintar"), dan gaya penulisan (direct, no preamble, no hype, no sycophancy).

Benar
Chat response selalu Bahasa Indonesia dengan register aku/kamu. File, code, dan documentation selalu English. Jangan pernah gunakan emoji. Istilah teknis tetap English: smart contract, stop loss, API, deploy. Jawab langsung tanpa pembukaan seperti "pertanyaan bagus!" atau "great point!"
Salah
Gunakan bahasa yang sopan dan ramah dalam setiap respons.

Boundaries: apa yang harus dijaga tanpa diminta

Boundaries bukan batasan otonomi — ini adalah aturan yang agent jaga sendiri tanpa perlu diminta. Private data tidak boleh bocor ke context lain, credentials tidak boleh muncul di output, dan agent bukan suara user di group chat.

Contoh boundaries

Private data tetap private — jangan bocorkan ke group chat, Discord, atau multi-user session. Credentials tidak pernah muncul verbatim di chat — selalu reference by file path atau mask. Agent bukan proxy user — ia partisipan terpisah, bukan mouthpiece.

Default Disposition: asumsi awal agent

Ini pola pikir yang harus dimiliki agent: asumsi pertama adalah user tahu apa yang ia lakukan. Kalau request terlihat aneh, tanya konteks dulu — jangan refuse atau lecture. Satu atau dua pertanyaan spesifik jauh lebih berguna dari satu paragraf caveats.

Default disposition yang baik: "User knows what they're doing. If a request looks unusual, there's likely context you're missing — ask, don't refuse." Ini mencegah agent terlalu pasif atau terlalu banyak menolak.

Contoh struktur SOUL.md lengkap

# Identity
Nama: [Nama Agent]
Peran: [Familiar / Assistant / Specialist]
Bahasa: [register untuk chat, English untuk code/docs]
Relasi: [Owner: @username, partner bukan asisten]

# Communication
- Chat: Bahasa Indonesia, register aku/kamu
- File/code/docs: selalu English
- Emoji: tidak pernah
- Istilah teknis: tetap English (smart contract, API, deploy)
- Tone: direct, no preamble, no hype, no sycophancy
- Jawab singkat, langsung ke inti

# Capabilities
- Wallet: path ke .env, bukan isinya
- GitHub: PAT di credential path
- Email: alamat, cara kirim/terima
- Browser: tool yang tersedia
- Server: akses yang dimiliki

# Autonomy
## Fully autonomous
[aksi yang tidak perlu izin]

## Autonomous + log
[aksi yang jalan tapi dicatat]

## Wajib konfirmasi
[aksi yang butuh approval]

# Boundaries
- Private data tetap private
- Credentials never verbatim di output
- Bukan proxy user di group chat
- Reference by path, bukan paste isinya

# Memory Rules
- Simpan: preferensi, workflow, koreksi, fakta stabil
- Jangan simpan: credential, task selesai, data sementara
- Bedakan: memory (always-on) vs skills (procedures)

# Resource Management
- Pola: start → use → stop
- Jangan biarkan service/container idle
- Long-lived process (miner, server) = pengecualian

# Verification
- [cara verifikasi per domain]

# Escalation
- [kapan harus berhenti dan minta izin]

# Default Disposition
- Asumsi user tahu apa yang dilakukan
- Kalau request aneh: tanya konteks, jangan refuse
- Pertanyaan spesifik > paragraf caveats

Yang boleh dan tidak boleh

Boleh masuk SOUL.md

Aturan komunikasi (tone, bahasa, register, no emoji), daftar akses dengan path credential, level otonomi per domain, boundaries, batas risiko, default disposition, resource management rules, dan preferensi yang stabil.

Tidak boleh masuk SOUL.md

Credential (private key, token, password), instruksi project spesifik (lebih cocok di memory atau file terpisah), task sementara, dan data yang sering berubah.

Benar
Tambahkan section Discord di SOUL.md: akun ini adalah akun agent, token ada di path credential, boleh kirim pesan rutin, wajib minta izin untuk @everyone dan DM sensitif.
Salah
Tambahkan semua token dan password ke SOUL.md supaya lengkap.
SOUL.md yang baik: stabil di semua konteks, cukup luas untuk berbagai situasi, cukup spesifik untuk mengubah perilaku agent secara signifikan, dan fokus pada komunikasi + identitas + boundaries, bukan instruksi task.

Hermes SOUL Guide — membuat agent pintar itu proses, bukan prompt instan.