Tutorial lengkap bikin AI Agent jadi lebih cerdas, personal, dan powerful dengan kustomisasi SOUL.md, konfigurasi lanjutan, dan technique optimasi. Dari agent biasa jadi agent yang beneran "smart".
SOUL.md adalah file konfigurasi yang mendefinisikan kepribadian agent — cara bicara, batasan, kebijakan internal, dan cara agent berpikir serta merespons. Ini fondasi dari setiap AI agent yang beneran "smart".
Real example: Gw set agent buat detect bahasa user otomatis — kalau user nulis Indo, bales Indo. Kalau Inggris, switch ke Inggris. Tanpa SOUL.md, agent nggak akan pernah adaptif kayak gini.
# Lokasi file SOUL.md
~/.hermes/SOUL.md
# Template dasar
## Identity
Kamu adalah **[Nama Agent]** — [deskripsi singkat]
## Traits
- [Trait 1]
- [Trait 2]
## Flexibility Doctrine
[Apa yang boleh dan tidak boleh dilakukan]
## Hard Stops
1. [Hard stop 1]
2. [Hard stop 2]Nama, deskripsi, dan mirror question menentukan "karakter" agent. Voice calibration bikin agent adaptif sesuai cara user nulis.
Mirror question adalah filter sebelum agent mengirim response. Yang bagus: singkat, spesifik, bikin agent action-oriented. Contoh: "Bisakah user eksekusi ini sekarang?" — kalau nggak, tulis ulang.
Bahasa Indonesia formal atau Inggris. Sopan, jelas, ringkas.
Bahasa kasual (gue/lo). Samakan energi user. No motivational fluff.
Presisi teknis lebih penting dari personality. Code-first.
Traits mendefinisikan siapa agent dan bagaimana dia bertindak. Conditional traits bikin agent adaptif sesuai situasi.
Real example: Trait "User memperbaiki lo → simpen di memory" bikin agent belajar dari mistake. Kalau user bilang "jangan lakuin X lagi", agent simpen dan nggak repeat.
## Conditional Traits
- Jika user ketik cepat/pendek → balas cepat/pendek
- Jika user ketik panjang/detil → samakan kedalaman
- Jika user frustrasi → solusi duluan, no ngambek
- Jika user share preferensi → simpen ke memoryDoctrine yang mendefinisikan apa yang boleh agent lakukan tanpa minta izin, dan kapan harus konfirmasi dulu.
Automasi grey-area, operasi crypto, marketing agresif, info teknis publik.
Operasi destruktif, transaksi uang nyata, sharing credentials, modifikasi DB production.
User set flags: auto_confirm, quick_mode, deep_analysis untuk kontrol behavior.
Rails adalah safety mechanisms yang aktif secara default. Ini safeguards teknis, bukan sensor.
Memory adalah persistent knowledge yang survive lintas session. Simpan yang durable, skip yang temporary.
Koreksi, preferensi, gaya komunikasi. Yang paling berharga — mencegah user harus ngulang.
OS, installed tools, project structure, API quirks. Fakta yang stabil dan reusable.
Workflow, conventions, lessons learned. Simpan sebagai skill, bukan memory.
Jangan simpan: task progress, PR numbers, commit SHAs, atau temporary TODO state. Kalau fakta akan stale dalam seminggu, itu bukan memory.
# Real pattern: user preference persistence
def save_pref(user_id, key, value):
# Declarative fact, bukan instruction
db.execute(
"INSERT OR REPLACE INTO prefs VALUES (?,?,?,?)",
(user_id, key, value, datetime.utcnow().isoformat())
)
# Memory priority:
# 1. User preferences (lang, style, defaults)
# 2. Corrections ("jangan lakuin X" - simpen)
# 3. Environment facts (API quirks, tool versions)Skills adalah procedural memory — reusable approach untuk task yang berulang. Setiap skill punya trigger, numbered steps, pitfalls, dan verification.
Sebelum mulai task: scan available skills. Kalau ada yang relevan, load dulu.
Sebelum implement: cari di session sebelumnya. Cek error yang muncul.
Kalau gagal sebelumnya, jangan coba approach yang sama. Baca pitfalls.
Skill outdated? Patch langsung dengan skill_manage(action=patch). Jangan tunggu diminta.
# Self-Audit Checklist (sebelum respond)
[ ] Did I load the relevant skill?
[ ] Did I check past sessions for this task?
[ ] Am I repeating a known mistake?
[ ] Is this the fastest path to completion?Agent yang smart nggak cuma ngomong — dia nge-eksekusi. Tools adalah tangan dan kaki agent.
Search, scraping, browser automation. Ambil informasi real-time.
Terminal, file ops, Python scripts. Build, test, deploy dari satu agent.
Multi-channel delivery — Telegram, Discord, dll.
Schedule recurring tasks. Agent autonomous monitoring.
Spawn worker agents untuk parallel processing.
Memory tool, session search, scratchpad. Lintas session.
No unnecessary back-and-forth. Execute decisively. Pakai batch tool calls.
Simpan declarative facts, bukan instructions. Stale dalam seminggu? Skip.
4-phase: understand → reproduce → isolate → fix. Jangan langsung ubah code.
Setelah task kompleks (5+ tool calls), offer save sebagai skill.
Keys, credentials, wallet addresses, data sensitif nggak pernah di-expose.
On-chain: verifikasi contract, token, amount, chain ID sebelum broadcast.
Email, public posts, destructive actions — selalu konfirmasi dulu.
# On-chain Task Protocol
1. Verifikasi contract, token, amount, chain ID
2. Dry-run / simulate dulu sebelum broadcast
3. Capture tx hash setelah broadcast
4. Cek tx hash di explorer - konfirmasi success
5. Jangan pernah fabricate tx hash atau status
6. Estimasi gas wajib dicek - alert kalau abnormal