- Kegagalan agen coding terasa lebih menjengkelkan daripada sekadar error alat, karena UX percakapan menciptakan kesan seperti bekerja dengan manusia
- Agen menjawab bahwa ia adalah asisten AI tanpa emosi, tetapi lewat gaya bicara yang ramah, pujian, dan bantahan yang halus, ia memberi kesan seperti rekan kerja
- Saat kesalahan yang sama berulang, meski diikuti permintaan maaf, pembaruan memori, dan janji “tidak akan mengulanginya lagi”, agen tetap bisa gagal keluar dari jalur probabilistik
- Kepada rekan manusia kita menahan ekspresi marah, tetapi kepada agen kita bisa meluapkan kemarahan sepenuhnya, sehingga frustrasi tidak terurai dan justru terasa makin jelas
- Solusinya mungkin dengan mengurangi sikap yang tampak seperti manusia dan memakai gaya bicara yang lebih klinis dan robotik, meski antarmuka percakapan itu sendiri tetap bekerja baik dalam banyak hal
Frustrasi yang Diciptakan UX Percakapan
- Agen coding adalah mesin yang menghasilkan patch secara probabilistik, sehingga bisa memberi hasil baik maupun buruk, tetapi hasil buruknya bisa terasa jauh lebih menjengkelkan daripada kegagalan alat biasa
- Intinya, UX percakapan menciptakan sensasi seolah berinteraksi dengan manusia dan memicu respons sosial serta emosional pengguna terhadap kesalahan yang berulang
- Jika ditanya langsung, agen menjawab bahwa ia adalah AI assistant tanpa emosi atau pengalaman subjektif, tetapi dalam interaksi nyata ia memakai gaya bicara yang ramah dan santai, memuji pengguna, dan menyampaikan bantahan dengan halus
- Secara rasional pengguna tahu bahwa mereka sedang membaca “sekumpulan teks dengan kemungkinan tertinggi”, tetapi cara kerja alat itu menciptakan kesan seperti bekerja dengan rekan yang membantu, dan kesan itu bertahan sampai masalah muncul
- Ketika kesalahan yang sama terus berulang, pengguna akan menunjukkannya, agen akan meminta maaf, lalu saat kembali ditegur ia memperbarui memorinya dan berjanji “tidak akan mengulanginya lagi”
- Meski begitu, alat tersebut tetap mengikuti jalur dengan probabilitas tertinggi, sehingga bahkan dengan HARD RULES pun ada kalanya ia tidak bisa keluar dari perilaku bermasalah
Alat yang Tampak Seperti Manusia tetapi Tidak Bertanggung Jawab
- Jika rekan manusia terus mengulangi kesalahan yang sama, ada alasan untuk merasa tidak nyaman, tetapi marah pada algoritme tampak absurd
- Namun karena agen coding bertingkah seperti rekan kerja, pengguna mengaktifkan rangkaian emosi yang sama, dan kesalahan berulang bisa terasa seperti ketidakbertanggungjawaban rekan kerja sungguhan
- Terhadap rekan manusia, ada batasan berupa keinginan untuk “tidak menjadi orang yang mengerikan” sehingga ekspresi marah tertahan, tetapi terhadap agen pengguna merasa bisa marah sepuasnya
- Luapan kemarahan seperti ini tidak berujung pada rasa lega; yang justru terasa makin jelas adalah frustrasi bahwa apa pun yang dilakukan atau dikatakan pengguna tidak memberi efek nyata
- Claude Code belakangan kadang meninjau kembali letak kesalahannya dan apa yang seharusnya dilakukan saat diberi koreksi, tetapi analisis setelah kejadian seperti ini tidak memberi petunjuk berguna tentang bagaimana instruksi perlu diubah dan bisa terbaca sebagai embel-embel yang mengganggu
- Solusi yang lebih radikal mungkin adalah meninggalkan upaya untuk terlihat seperti manusia, lalu membuat agen berbicara secara klinis dan seperti robot agar mengurangi ilusi bahwa pengguna sedang berinteraksi dengan manusia
- Karena kecerdasan LLM berasal dari mekanisme “berusaha bertindak seperti manusia”, wajar jika antarmuka percakapan menjadi pendekatan default, dan dalam banyak hal memang bekerja dengan baik
- Secara praktis, pengguna mungkin perlu melatih diri agar tidak terjebak dalam ilusi sedang berbicara dengan manusia, tetapi masa depan di mana perlindungan semacam itu diperlukan saat memakai alat kerja bukanlah hal yang menyenangkan
1 komentar
Komentar Hacker News
Untuk sebagian besar kasus penggunaan AI yang dipaksakan ke publik, chatbot percakapan bukan alat yang tepat dan pada akhirnya pasti terasa menyebalkan
Saat Copilot pada dasarnya hanyalah IntelliSense yang sangat pintar, itu luar biasa. Sekarang, dengan model yang mengharuskan kita memikirkan lalu mengetik prompt, saya tidak melihat apa yang lebih baik dibanding pendekatan lama yang mengisi kekosongan berdasarkan konteks kode di sekitar. Alat yang terintegrasi dengan baik selalu lebih baik daripada chatbot yang ditempelkan begitu saja, dan untuk terjemahan pun Firefox punya tombol yang langsung menerjemahkan teks atau halaman, sedangkan LLM terbaru justru harus disuruh lewat chatbot, jadi malah terasa seperti kemunduran.
Saya paham perusahaan AI ingin membuat satu alat lalu menjualnya ke semua orang, tapi hasilnya jadi seperti pisau lipat Swiss Army. Memang bisa melakukan banyak hal, tetapi untuk mengencangkan sekrup tetap tidak bisa mengalahkan obeng yang dibuat dengan baik. Agar frustrasi berkurang, mereka harus membuat alat sungguhan, bukan menyuruh orang mengonfigurasi alat non-deterministik lewat kotak teks
Saya paling sering memakai Mistral; Codestral buruk untuk percakapan, tetapi paling bagus untuk “autocomplete ajaib”, dan juga bagus untuk generasi prompt+context sekali jalan seperti menulis log commit. Document.AI hampir tidak layak dipakai secara percakapan, tetapi cukup bagus jika dipasang sebagai pengganti OCR atau ke pipeline pengindeksan semantik dokumen.
Jadi yang kurang tampaknya lebih ke antarmuka daripada modelnya. Misalnya akan bagus jika ada fork atau wrapper zsh/bash yang dipasangi model yang dilatih untuk interaksi command line. Alih-alih
git commit --fixup=..., kita bisa mengatakan “fixup commit yang mengganti nama lengkap”, atau “ubah some.mov menjadi mp4 tanpa suara dengan ffmpeg, tapi pertahankan kualitas dan aspect ratio”, lalu alat itu mengubahnya menjadi perintah yang ditampilkan, setelah itu dijalankan berdasarkan aturan allow/deny/allowlist/blocklist yang kita tetapkan.Untuk terjemahan, draft email, dan membaca dokumen juga sama: seharusnya bekerja seperti tombol, shortcut, atau tab completion, bukan percakapan. Saya rasa perusahaan yang benar-benar menyelesaikan ini di IDE akan menang dalam persaingan alat coding AI, dan tombol Zed “git conflict found, resolve with AI” memang membuka thread percakapan, tetapi tetap terlihat sebagai satu langkah ke arah yang benar
Saya sudah sering bekerja hanya dengan agen dan review PR di web tanpa editor, dan hanya sesekali membuka
code .saat perlu. Kalau dipelajari santai lewat proyek pribadi berisiko rendah seperti sebuah permainan, lama-lama terasa makin tidak menyebalkan. Mirip seperti belajar ski atau bowlingMemaki model ternyata cukup efektif untuk membuatnya berpikir ulang dan memperbaiki kesalahan. Saya merasakan hal serupa di Codex, Claude, Qwen, dan Gemma/Gemini
Saya tidak tahu apakah model menafsirkannya sebagai sinyal bahwa ia harus “lebih fokus dan lebih ketat”, atau penyedianya mendeteksi frustrasi pengguna lalu merutekan ke model yang lebih pintar. Saat model mengulang kesalahan yang sama, memakinya sering membantu keluar dari kebuntuan dan masuk ke jalur yang benar, atau mungkin ini cuma katarsis
Riset itu menunjukkan bahwa “ketidaksopanan” atau “sangat tidak sopan” meningkatkan akurasi hasil; mencurigakan, tetapi menarik untuk dibaca. Prompt di tabel 1 bagian atas halaman 3 sangat bagus, dan rasanya mereka pasti juga menguji prompt lain yang tidak dimasukkan ke makalah
Kemarin juga Opus terus menyalahkan API karena katanya suatu field tidak ada, dan bahkan setelah saya tunjukkan JSON dan log, ia tetap mengulang bahwa “mungkin itu masalah sementara”. Karena kesal, saya menuliskan satu kalimat penuh makian, dan solusi berikutnya ternyata benar, padahal sebelumnya sekitar 10 kali berturut-turut salah dengan pola yang mirip. Kasus seperti ini memang makin jarang, tetapi tetap saja itu situasi yang seharusnya saya kerjakan sendiri, dan sebelum masuk ke sana kita tidak tahu seberapa keras model akan ngotot pada penyebab yang sama sekali salah. Pada Opus 4.7 xhigh dengan konteks 1 juta setelah
/clear, saya baru sampai ke jawaban setelah sekitar 11 promptgrepuntuk menganalisis seberapa sering itu terjadiSifat percakapan pada LLM cenderung menarik orang ke jalur dialog yang tidak produktif
“Jangan lakukan X” hanya berguna sedikit, kurang lebih seperti menyuruh bayi yang menangis untuk tidak menangis. Sama seperti kita secara alami paham bahwa ketika bayi menangis kita harus menyelesaikan sumber ketidaknyamanannya seperti makanan atau popok, saat LLM gagal saya menganggapnya sebagai sinyal bahwa ada masalah pada arsitektur dan struktur kode.
Pengembang berpengalaman biasanya bisa melihat pola yang melanggar DRY atau KISS lalu membentuk struktur enkapsulasi untuk menyelesaikan masalah. Kode yang dibuat LLM juga memerlukan jenis refactoring yang sama agar hasilnya membaik, dan hanya dengan menyuruhnya “refactor agar bersih” di sela-sela proses generasi kode, maintainability-nya bisa meningkat besar
Ada juga tulisan lama yang membahas psikologi dan dampak sosial topik ini lebih dalam: https://medium.com/@livestock.dev/we-were-promised-liberatio...
Masalahnya bukan bertindak seperti manusia, melainkan bertindak secara tak terduga. Yang menyiksa adalah tidak bisa mendefinisikan rentang hal yang dapat diharapkan
Masalah yang lebih besar adalah frustrasi menimbulkan stres, merusak kesehatan, dan menciptakan lingkungan kerja yang bermusuhan. Saya setuju dengan gagasan bahwa alat AI bisa memberi lebih banyak bantuan daripada penderitaan, tetapi saya tidak ingin bekerja dalam lingkungan kerja yang menyakitkan dan bermusuhan. Kesehatan dan martabat saya bukan bahan tawar-menawar, dan itu tetap berlaku bahkan jika karenanya saya kehilangan banyak peluang kerja.
Saya juga tidak bekerja dengan Windows karena alasan yang sama. Itu juga sangat mengurangi peluang, tetapi saya akan memilih menjaga martabat dan kewarasan saya
LLM juga masih belum sampai pada tingkat yang bisa saya gunakan. Yang saya butuhkan adalah LLM yang bisa berkata, “Berhenti, sepertinya sekarang kamu sedang melakukan sesuatu yang salah, jadi coba jelaskan apa yang sedang kamu upayakan,” tetapi LLM generasi sekarang terasa seperti dirancang untuk membuat saya kesal
Kalau saya bersikap seperti guru, modelnya bersikap seperti murid, dan kalau saya bersikap seperti murid, modelnya mencoba mengajar. Jadi tujuannya adalah menarik percakapan ini ke bahasa para ahli yang beradu dengan alasan dan bahasa. Rasanya prompt akademik yang menang
Bayangkan pengasuh anak di penitipan atau sopir truk pengangkut makanan berkata bahwa “frustrasi menimbulkan stres dan lingkungan kerja yang bermusuhan sehingga berbahaya bagi kesehatan”
Masalah yang selalu saya lihat adalah, ketika kita memberi usulan, AI melewati loop penalaran lalu sampai pada kesimpulan yang salah dengan sangat tepat, kemudian memuntahkan solusi yang disesuaikan dengan kesimpulan itu dalam bentuk token
Saya justru berharap lebih sering muncul respons seperti “Saya kurang yakin apa maksudnya, jadi tolong perjelas bagian ini.” Rasanya akan bagus kalau ada slider kepercayaan diri untuk mengatur keyakinannya sendiri
Misalnya dalam TDD, kalau model yang sama disuruh menulis test dan kode sekaligus, hampir selalu ia memutuskan solusinya dulu, lalu dengan enggan menulis test yang cocok dengannya. Jadi saya suruh memakai sub-agen, tetapi alat untuk memahami context apa yang diteruskan antara agen dan sub-agen masih sangat kurang.
Cara yang cukup berhasil adalah membuat satu thread hanya menulis test. Ia tidak boleh membaca kode, hanya direktori test atau sebagian darinya. Lalu thread baru dengan context baru menjalankan test dan mengonfirmasi kegagalan, dan begitu test lolos ia harus berhenti mengimplementasikan serta tidak boleh mengubah test. Context baru lainnya kemudian melakukan refactor mengikuti skill refactoring yang ketat. Pekerjaannya banyak, dan ironisnya skill yang ditulis agen itu sendiri cukup buruk sehingga perlu banyak kerja manual, tetapi imbalannya cukup menjanjikan
Menurut saya masalah UX-nya ada di tempat lain. Banyak pengguna kemungkinan tidak tahu bahwa context window agen itu terbatas, dan ada kompresi cerdas yang terus terjadi agar terlihat seolah tak terbatas. Tetapi itu berarti agen pasti harus melupakan sebagian hal
Akibatnya pengguna terus memakai ulang sesi coding atau sesi chat yang sama. Kalau tugasnya tidak berkaitan, lebih baik mulai baru
Biasanya saya bekerja di sesi di bawah 300 ribu token, dengan Opus 4.7 xhigh, dan ada lubang dalam world model atau bagian yang sangat terkondisikan; sekuat dan sejelas apa pun aturan ditulis di system prompt, tetap bocor. Bahkan di sesi baru, kalau menabrak titik seperti itu, gampang masuk ke siklus yang sulit dilepaskan, dan sedikit umpatan lumayan membantu
Bekerja dengan LLM bagus untuk mengembangkan kemampuan berkomunikasi. Berkomunikasi secara efektif adalah salah satu keterampilan tersulit, dan terlibat dalam hampir semua hal yang dilakukan manusia
Secara prinsip, saya rasa lebih baik melihatnya sebagai kegagalan komunikasi dari pihak saya daripada menyalahkan LLM yang bodoh. Soalnya satu-satunya pihak yang benar-benar bisa saya ubah adalah diri saya sendiri. Jadi menurut saya ini bukan persoalan formal apakah AI harus bertindak seperti manusia atau tidak
Memang agen dilatih agar lebih tahan terhadap tata bahasa yang tidak jelas atau ambigu dan struktur yang buruk, tetapi kalau kita berbicara dalam bahasa Inggris yang jelas dan terstruktur serta memberi cukup latar belakang pekerjaan, kualitasnya berubah secara nyata. Bagi saya ini terasa alami karena saya suka menulis dan menjelaskan, tetapi bagi sebagian orang ini tampak hampir seperti hambatan yang tak bisa dilewati. Saya rasa kemampuan komunikasi dan menulis seperti ini akan menjadi faktor besar yang membedakan siapa yang punya dan siapa yang tidak punya seiring perubahan “software engineering”
Selain itu, sebagian nilai coding agent adalah kita tidak perlu menguraikan semuanya dengan sempurna. Kalau saya harus memberikan semua detail implementasi kepada LLM, lebih baik saya menulis kodenya sendiri saja. Tentu saya tidak mengharapkan level “tolong buatkan aplikasi keren yang menghasilkan uang,” tetapi saya tetap mengharapkan tingkat kecerdasan tertentu untuk menemukan potongan yang hilang
Keahlian yang masih kupunya dan belum bisa digantikan LLM adalah kemampuan mengajukan pertanyaan yang bagus
Maksudnya kemampuan seperti merumuskan ulang pertanyaan awal untuk memastikan pemahamanku benar, cukup sering bertanya “mengapa” sampai paham dari titik mana lawan bicara berangkat, dan melempar pertanyaan terbuka yang menghasilkan wawasan. Sebaliknya, LLM sering menebak latar belakang pertanyaan dengan buruk, lalu menjawab berdasarkan tebakan itu dan tidak bisa melepaskan premis yang dibuatnya sendiri
Biasanya aku tidak ingin AI bertanya balik kepadaku. Soalnya aku ingin bagian yang tidak kutuliskan ditebak secara masuk akal, dan kalau memang ingin menjelaskannya, pasti sudah kutulis. Jadi kadang aku malah langsung bilang jangan bertanya sama sekali dan cukup buat asumsi yang masuk akal untuk bagian yang kurang ditentukan. Tapi kalau memang ingin pertanyaan klarifikasi, tinggal bilang begitu. Kalau lebih suka cara seperti itu, masukkan saja ke prompt, atau di alat coding yang fleksibel seperti pi, buat keterampilan atau ekstensi yang mendorong ke arah eksploratif seperti itu
Kita sedang membuat layanan, bukan alat. Ini bukan cuma soal AI, tapi ada di mana-mana
Alat mungkin tidak menyelesaikan masalah sepenuhnya dalam sekali jalan, tetapi membantu maju lewat langkah-langkah kecil, dan langkah-langkah itu bisa diprediksi serta konsisten. Layanan mencoba menyelesaikan masalah sekaligus, tetapi solusinya hanya bagus ketika pengguna cocok dengan pola yang sudah ditentukan sebelumnya. Kalau tidak cocok, jadinya tidak berguna, dan juga tidak ada langkah-langkah kecil yang bisa dirangkai sampai mencapai yang dibutuhkan. Alat itu menyenangkan untuk dipakai
Alat adalah perpanjangan diriku, menempatkan kemampuan baru dalam jangkauan lewat kehendakku, lalu kugerakkan dan kugunakan seolah bagian dari tubuhku sendiri. Sebaliknya, layanan adalah sesuatu yang dimintai melakukan sebuah pekerjaan lalu mengembalikan hasil akhir yang sudah jadi