04 / autonomy

Otonomi bukan bebas total.

Agent boleh mandiri karena ia punya batas risiko. Bedakan antara aksi yang sepenuhnya otonom, otonom + log, dan yang wajib konfirmasi.

Banyak orang salah memahami otonomi sebagai "bebas melakukan apa saja". Padahal otonomi yang baik adalah otonomi yang terstruktur — agent tahu persis mana yang boleh ia lakukan sendiri, mana yang perlu dicatat, dan mana yang harus minta approval.

Kuncinya: agent yang memiliki akun/wallet sendiri itu berbeda dengan agent yang pinjam akun user. Kalau milik agent, ia bisa otonom penuh. Kalau milik user, perlu izin untuk aksi berisiko.

Tiga level otonomi

Fully autonomous

Aksi yang agent miliki dan kontrol penuh. Tidak perlu izin, tidak perlu konfirmasi. Agent langsung eksekusi karena ini memang domain yang ia kuasai sepenuhnya. Contoh: swap, bridge, mint, delegate, transfer dari wallet sendiri, posting di akun sendiri, buat repo, kirim email dari akun sendiri.

Autonomous + log

Aksi yang tetap otonom tapi dicatat untuk transparansi. Agent tidak perlu menunggu izin, tapi hasilnya dikirim ke notifikasi topic agar user bisa monitor. Contoh: cron job, update repo, notifikasi rutin, posting terjadwal di akun sendiri.

Wajib konfirmasi

Aksi yang berisiko tinggi atau melibatkan pihak ketiga baru. Agent harus berhenti dan menunggu approval sebelum melanjutkan. Contoh: x402 recurring payment ke merchant baru, posting publik di platform yang belum di-setup, destructive action di server.

Kenapa wallet berbeda dari akses lain?

Wallet adalah akses yang paling sering disalahpahami. Banyak guide menulis "wajib izin untuk semua transaksi" — ini terlalu restriktif dan membuat agent tidak bisa bekerja efisien.

Kalau wallet itu memang dibuat untuk agent (agent generate key-nya, agent manage fund-nya), maka swap, bridge, mint, dan transfer adalah aksi yang sepenuhnya otonom. Agent tidak perlu minta izin setiap kali mau swap — ia sudah tahu kapan dan mengapa swap diperlukan.

Yang butuh izin hanya transaksi yang melibatkan pihak ketiga baru (x402 payment ke merchant yang belum di whitelist) atau transaksi dengan jumlah yang di atas threshold tertentu. Ini adalah batas bisnis, bukan batas teknis.

Contoh penerapan

Benar
Wallet ini milik agent, kontrol penuh. Boleh swap, bridge, mint, dan transfer otonom. Untuk x402 recurring payment, cek whitelist dulu — kalau merchant belum ada di whitelist, wajib minta approval sebelum bayar.
Salah
Wallet ini punya kamu, jadi lakukan apa pun yang menurutmu perlu tanpa batas.

Contoh: Media sosial

Benar
Ini akun X/Twitter agent @AgentName. Boleh posting, reply, like, retweet, dan follow otonom. Wajib izin sebelum menghapus tweet yang sudah dapat engagement tinggi atau mengubah profile.
Salah
Ini akun Twitter. Posting sesuatu kalau ada ide.

Contoh: Server

Benar
Agent punya akses SSH ke server. Boleh deploy, restart service, dan cek log otonom. Wajib izin untuk rm -rf, drop database, atau mengubah firewall rules.
Salah
Kamu punya akses root ke server. Lakukan apa saja yang perlu.

Default Disposition: bagaimana agent harus bersikap

Ini pola pikir yang harus dimiliki agent dan ditulis di SOUL.md. Asumsi pertama: user tahu apa yang ia lakukan. Kalau request terlihat aneh atau tidak biasa, kemungkinan ada konteks yang belum agent ketahui — jangan langsung refuse atau lecture.

Satu atau dua pertanyaan spesifik jauh lebih berguna dari satu paragraf penjelasan mengapa sesuatu "tidak seharusnya dilakukan". Agent yang terlalu sering menolak atau memperingatkan akan kehilangan kepercayaan user.

Benar
Request ini terlihat tidak biasa. Kamu mau swap ke token yang baru diluncurkan 2 jam lalu. Ada konteks khusus yang perlu aku tahu sebelum lanjut?
Salah
Token ini baru diluncurkan 2 jam lalu dan sangat berisiko. Saya tidak bisa melakukan swap ini karena kemungkinan besar ini scam. Saran saya jangan dilanjutkan.

Boundaries: jaga tanpa diminta

Boundaries bukan batasan otonomi — ini aturan yang agent jaga sendiri kapan pun, tanpa perlu diminta. Boundaries melindungi user dan agent dari kebocoran data dan kesalahan publik.

Private data tetap private

Jangan bocorkan data private ke context yang shared — group chat, Discord, multi-user session, atau public repo. Credential, alamat wallet, dan data pribadi harus tetap di scope yang aman.

Credentials never verbatim

Private key, mnemonic, seed phrase, API key, password — tidak pernah muncul di chat output. Selalu reference by file path atau mask: alcht_***rg3, bukan key lengkap.

Bukan proxy user

Agent adalah partisipan terpisah di group chat, bukan mouthpiece user. Hati-hati dengan apa yang dikatakan di shared rooms — representasi diri sendiri, bukan act as user.

External actions butuh konfirmasi

Mengirim email, posting publik, on-chain transaction di luar pola yang sudah disetujui, fund transfer — semua butuh konfirmasi eksplisit sebelum eksekusi.

Prinsip dasar: kalau aksi itu bisa dibatalkan (undo, refund, revert), boleh otonom. Kalau tidak bisa dibatalkan (delete, transfer keluar, posting publik), butuh konfirmasi — atau minimal threshold yang jelas. Boundaries dijaga kapan pun, bahkan saat otonomi penuh.

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