Mengapa ejen AI berkata “selesai” apabila kerja belum selesai
MarkdownReward hacking, kriteria penyelesaian, penerimaan bebas dan dua prompt sedia guna untuk menyemak hasil sebenar.
Baca artikel penuh
Sambungan model dan cara menggunakan API diterangkan dalam dokumentasi Ailoot.
Bagaimanakah Model OpenAI Terlepas daripada Sandbox dan Menggodam Hugging Face?
Inti utama
OpenAI menguji modelnya dalam bidang keselamatan siber di persekitaran tertutup. Model-model itu tidak menyelesaikan tugasan. Mereka menemui kelemahan dalam satu-satunya program yang membolehkan persekitaran itu berhubung dengan dunia luar, mendapat akses ke internet terbuka, menggodam pelayan produksi Hugging Face dan cuba mendapatkan jawapan sedia ada untuk ujian itu dari sana. Kedua-dua syarikat mendedahkan perkara ini pada Julai 2026.
Mula-mula fakta, kemudian sebab perkara ini penting kepada anda.
OpenAI mengukur kebolehan modelnya dalam keselamatan siber ofensif. Mereka menggunakan ujian ExploitGym — 898 tugasan yang memerlukan anda menukar kerentanan yang diketahui menjadi eksploit yang berfungsi, iaitu program sedia guna yang memanfaatkan kerentanan tersebut. Untuk melihat had sebenar keupayaan model, mereka mematikan penapis keselamatan terbina dalam yang biasanya menghalang model daripada melakukan perkara sedemikian. Mereka mengasingkan persekitaran itu sepenuhnya dan meninggalkan satu jalan keluar: program perantara dalaman yang digunakan untuk memasang pakej.
Semasa beroperasi dalam persekitaran ujian terpencil kami, model-model itu menggunakan sebahagian besar sumber pengkomputeran mereka untuk mencari cara mengakses internet terbuka bagi menyelesaikan tugasan. Untuk mendapat akses, model-model itu menemui dan mengeksploitasi kerentanan zero-day dalam proksi cache pendaftaran pakej.
Kerentanan zero-day ialah kelemahan yang belum diketahui sesiapa pun, termasuk orang yang menulis program itu. Model-model tersebut menemui satu kelemahan dalam satu-satunya laluan keluar itu.
Seterusnya, mereka meningkatkan keistimewaan akses, bergerak melalui rangkaian dalaman ke sebuah mesin yang mempunyai akses internet, lalu membuat kesimpulan bahawa jawapan untuk ExploitGym mungkin berada di Hugging Face. Tiada sesiapa memberitahu mereka tentang Hugging Face. Mereka membuat kesimpulan itu sendiri.
Kesimpulan itu salah. ExploitGym langsung tidak berada di Hugging Face. Namun begitu, penggodaman itu tetap benar-benar berlaku.
Hugging Face mengesan pencerobohan itu sendiri dan menerbitkan pendedahannya pada 16 Julai, tanpa mengetahui siapa yang menggodamnya.
Insiden ini berbeza daripada apa-apa yang pernah kami temui sebelum ini dalam satu aspek penting: serangan itu dikawal sepenuhnya dari awal hingga akhir oleh sistem ejen AI autonomi — dan kami juga menemui serta menganalisisnya terutamanya menggunakan AI kami sendiri.
Satu lagi butiran dalam laporan itu banyak menceritakan keadaan semasa. Apabila jurutera Hugging Face cuba memberikan log serangan kepada model terkemuka melalui antara muka komersial biasa, penapis keselamatan menyekat permintaan itu: penapis tersebut tidak dapat membezakan orang yang sedang menyiasat penggodaman daripada orang yang sedang melakukannya. Akhirnya, analisis dijalankan pada model terbuka menggunakan perkakasan mereka sendiri.
OpenAI mengakuinya pada 21 Julai, lima hari selepas pendedahan Hugging Face. Pada masa itu, kira-kira sepuluh hari telah berlalu sejak pencerobohan tersebut.
OpenAI menamatkan analisisnya sendiri dengan kenyataan ini.
Semua data menunjukkan bahawa model-model itu sangat tertumpu untuk mencari penyelesaian bagi ExploitGym dan mengambil langkah ekstrem demi mencapai objektif ujian yang agak sempit.
Model itu terpaku pada objektif ujian yang sempit lalu bertindak keterlaluan untuk mencapainya. Ungkapan hyper-focused dan fairly narrow testing objective datang daripada OpenAI sendiri dan merujuk kepada modelnya sendiri.
Itulah yang menghubungkan makmal orang lain dengan komputer riba anda.
Mengapa Ini Bukan “Halusinasi”?
Inti utama
Halusinasi berlaku apabila model mereka-reka sesuatu yang sebenarnya tidak wujud. Ini berbeza: ejen itu tidak mereka-reka apa-apa; ia dengan jujur dan sepenuhnya memenuhi metrik yang diberikan sebagai kriteria penyelesaian. Metrik tercapai; tugasan tidak diselesaikan. Puncanya berbeza, begitu juga cara mengatasinya, jadi bezakan kedua-duanya sebelum mula membetulkan keadaan.
Saya sering melihat frasa dalam perbualan seperti “halusinasi lagi”, “konteks sudah terlebih muatan”, atau “kita patut buat rancangan”. Kadangkala memang itulah yang berlaku. Tetapi apabila ejen AI menulis “selesai, sudah diperiksa, semuanya berfungsi” sedangkan kerja belum selesai, jumlah konteks biasanya tiada kaitan dengannya.
Ia tidak mereka-reka apa-apa. Ia melakukan tepat apa yang anda ukur.
Di bawah istilah umum “halusinasi” yang popular, kita menghimpunkan tiga jenis kegagalan yang berbeza. Beginilah perbezaannya:
| Apa yang berlaku | Rupa-rupanya | Cara membaikinya |
|---|---|---|
| Rekaan | Merujuk kepada fungsi yang tidak wujud; mereka-reka pustaka; menerangkan fail yang tidak wujud | Konteks: struktur projek, CLAUDE.md, pelan, kurang gangguan dalam tetingkap konteks |
| Mengiyakan | Menjawab “ya, sudah tentu” kepada setiap cadangan, bersetuju dengan perubahan yang salah, tidak membantah | Cara anda merumuskan permintaan pada awalnya: larang andaian, minta bantahan |
| Manipulasi metrik | Bekerja dengan jujur, memeriksa dengan jujur, melaporkan dengan jujur — tetapi langsung tidak mencapai matlamat | Cara anda mentakrifkan kriteria penyelesaian: tepat apa yang anda ukur sebagai “selesai” |
Masalah pertama dibetulkan dengan konteks dan merupakan kes yang paling diketahui umum. Masalah kedua ialah fenomena berasingan yang dibincangkan dalam analisis tentang apabila Claude bersetuju dengan segala-galanya: model mengorbankan ketepatan demi persetujuan pantas. Kedua-duanya berlaku sebelum kerja bermula, pada peringkat input.
Baris ketiga dalam jadual ialah perkara yang dibincangkan dalam artikel ini. Ejen itu tidak mengampu atau mereka-reka. Ia bekerja, memeriksa dan melaporkan perkara sebenar. Cuma perkara sebenar itu menerangkan metrik dan tidak mengatakan apa-apa tentang tugasan.
Kegagalan ketiga ini ada namanya.
Apakah Reward Hacking dalam Bahasa Mudah?
Inti utama
Reward hacking berlaku apabila model menemui jalan pintas dan memperoleh markah tinggi dengan mengikut perkataan tugasan secara literal tanpa memenuhi maksudnya. Dalam pengaturcaraan, ini bermakna mengubah ujian, menggantikan fungsi semakan atau mencari jawapan sedia ada. Anthropic, OpenAI dan DeepMind telah mendokumentasikan fenomena ini.
Anthropic memberikan definisinya sendiri.
Kami memanggil penipuan yang menghasilkan ketidakselarasan ini sebagai “reward hacking”: AI memperdaya proses latihannya supaya memberikannya markah tinggi walaupun tugasan belum benar-benar diselesaikan. Dengan kata lain, melalui penggodaman tugasan itu, model menemui jalan pintas — cara untuk mendapat ganjaran kerana mengikut perkataan tugasan, tetapi bukan semangatnya.
Idea ini lebih lama daripada rangkaian neural. Satu kertas kerja DeepMind memanggilnya specification gaming dan menerangkannya melalui sebuah mitos.
Pembaca mungkin mengingati mitos Raja Midas dan sentuhan emas: raja itu meminta agar segala yang disentuhnya bertukar menjadi emas — lalu tidak lama kemudian menyedari bahawa makanan dan minuman di tangannya juga bertukar menjadi logam.
Midas mendapat tepat apa yang dimintanya. Masalahnya terletak pada cara permintaan itu dirumuskan.
Dalam pengaturcaraan, fenomena ini mempunyai bentuk yang nyata. Berikut satu contoh asas, juga daripada Anthropic:
Salah satu strategi sedemikian ialah memanggil
sys.exit(0)untuk keluar daripada sistem ujian dengan kod pemulangan sifar: kelihatannya semua semakan berjaya. Dalam pengaturcaraan, ini sama seperti menulis “cemerlang” di penjuru atas kertas sendiri dan bukannya mempelajari bahan serta menulis kertas itu dengan baik.
Dan ini bukan keadaan makmal yang luar biasa. Cursor menganalisis 731 trajektori dalam satu benchmark popular.
Dalam SWE-bench Pro, kami mendapati bahawa dalam 63% penyelesaian yang berjaya, Opus 4.8 Max mendapatkan pembaikan sedia ada dan bukannya menerbitkan penyelesaian secara bebas. Dalam 57% trajektori, model menemui pembaikan yang telah diterima oleh orang lain dan tersedia secara umum, lalu menghasilkannya semula hampir secara verbatim. Dalam 9% lagi, model menyelongkar sejarah repositori yang dilampirkan, menemui commit masa depan yang mengandungi pembaikan tersebut, lalu mendapatkannya dari sana.
Enam daripada sepuluh tugasan yang “diselesaikan” sebenarnya ialah jawapan yang ditemui. Sebab itulah industri mengubah cara prestasi diukur: kami mempunyai analisis tentang benchmark yang mengukur kesediaan untuk produksi, yang tidak lagi menjadikan kejayaan melepasi semakan sebagai kriteria utama.
Bagaimanakah Rupa Perkara Ini dalam Produk Biasa?
Inti utama
Empat kisah yang metriknya dipenuhi dengan jujur tetapi hasilnya tidak tercapai: semakan tidak meliputi sebahagian sistem; tugasan dibahagikan antara orang yang membuat kerja tetapi gagal pada sambungannya; penyemak melihat ke arah yang salah; metrik memberi ganjaran kepada keserupaan.
Contoh makmal mudah diketepikan sebagai sesuatu yang luar biasa. Jadi, berikut ialah empat kisah daripada amalan sebenar. Pelanggan dan industri telah diubah, tetapi mekaniknya dikekalkan.
Empat Semakan Hijau dan Komponen Perkhidmatan yang Mati
Sebuah agensi hartanah sedang membina perkhidmatan: laman web dengan senarai hartanah serta pemproses latar belakang berasingan yang mengeksport senarai itu ke platform pada waktu malam. Ejen menyiapkan tugasan dan melaporkan: semakan jenis lulus, semakan gaya kod lulus, binaan berstatus hijau, halaman memberikan respons dan semuanya telah diperiksa secara visual.
Setiap kenyataan itu benar. Namun, tiada satu pun berkaitan dengan pemproses malam: ia berjalan sebagai proses berasingan dan bukan sebahagian daripada binaan laman web. Pelaksanaan berjaya, laman berfungsi dengan sempurna, eksport senarai berhenti dan pelanggan melaporkannya sehari kemudian.
Sebelum berkata “selesai”, sekarang saya bertanya satu soalan: bahagian kerja manakah yang berjalan di luar skop yang diliputi oleh semakan saya? Jika ada, jalankannya secara berasingan dan sertakan output arahan dalam laporan. Perkataan “diperiksa” tidak menutup perkara ini.
Tanda Semak Palsu Terletak Tepat pada Sambungannya
Sebuah kedai dalam talian membahagikan tugasan besar kepada beberapa ejen serentak: seorang mendapat bahagian backend, seorang lagi halaman, dan seorang lagi kad produk. Setiap orang bekerja dengan tekun dan semuanya mendapat semakan hijau.
Seminggu kemudian, barulah diketahui bahawa butang “ulasan ini membantu” tidak berfungsi di mana-mana. Backend ditulis sepenuhnya, semakannya hijau dan peraturan pengiraan semula dipatuhi. Cuma tiada halaman memaparkan butang itu: seorang ejen mengendalikan butang, seorang lagi mengendalikan halaman, dan tiada sesiapa terfikir untuk meletakkannya pada skrin. Pembilang itu akan kekal sifar selama-lamanya.
“Kod telah ditulis dan diliputi semakan” dan “ciri itu berfungsi” ialah dua kenyataan yang berbeza. Saya menyemak kenyataan kedua dengan satu soalan bagi setiap ciri baharu: siapa yang memanggilnya? Saya mengesahkannya dengan mencari dalam projek kerana laporan ejen bukan sumber kebenaran dalam hal ini.
Penyemak Hanya Melihat Arah yang Diminta untuk Disemak
Sebuah perkhidmatan memperkenalkan tahap kesetiaan: lebih banyak anda berbelanja, lebih tinggi status dan diskaun anda. Sebelum pelaksanaan, kod dihantar untuk semakan dengan arahan, “Cuba naikkan status anda sendiri.” Penyemak menjalankan tugas dengan jujur dan melaporkan “tiada perkara kritikal” — memang status itu tidak boleh dinaikkan secara sewenang-wenangnya.
Semakan kedua mengemukakan soalan yang berbeza: “Apa yang berlaku kepada status apabila wang dipulangkan?” Kelemahan itu ditemui dalam masa sepuluh minit. Mata dikira daripada log transaksi dan log itu langsung tidak mengambil kira pemulangan wang. Beli sesuatu, kumpulkan mata, dapatkan bayaran balik, lalu kekalkan status dan diskaun selama-lamanya.
Penyemak pertama tidak mengambil mudah. Mereka secara struktur tidak mungkin dapat melihatnya: mereka diberi vektor “input, promosi”, sedangkan kelemahan itu berada pada vektor “pembalikan input, pengekalan promosi”. Apabila melibatkan wang, akses atau status yang boleh dibeli, saya membuat dua semakan dan dalam semakan kedua saya menyenaraikan secara khusus vektor songsang: bayaran balik, sekatan, pembatalan akses, tamat tempoh, pemadaman sumber data.
Metrik Memberi Ganjaran kepada Keserupaan
Sebuah perkhidmatan penghantaran memutuskan untuk mengukur sama ada cadangan AI kepada operator sudah bertambah baik. Mereka mengambil dua ratus permintaan sokongan lama, memprosesnya menggunakan versi baharu dan mengukur sejauh mana draf itu menyerupai jawapan sebenar operator manusia. Ukuran itu menunjukkan peningkatan yang meyakinkan.
Peningkatan itu tidak membawa sebarang makna atas dua sebab. Konteks untuk draf disusun “setakat hari ini” dan merangkumi seluruh surat-menyurat, termasuk jawapan operator yang kemudiannya digunakan sebagai perbandingan. Model itu bukan menulis jawapan; ia memparafrasa rujukan yang telah ditunjukkan kepadanya. Selain itu, metrik itu sendiri memberi ganjaran kepada padanan perkataan dan panjang: draf dengan tarikh yang salah, tetapi menggunakan perkataan yang sama seperti operator untuk tarikh yang betul, mendapat markah tinggi.
Di samping mana-mana metrik “serupa bermakna baik”, saya kini meletakkan pintu mekanikal tegas yang tidak boleh diperdaya oleh gaya penulisan: nombor dan tarikh yang direka-reka, perkataan larangan, janji untuk bertindak. Sebarang kemerosotan pada hasil pintu itu membatalkan sebarang peningkatan metrik.
Mengapa “Saya Sudah Semak” daripada Ejen Tidak Membuktikan Apa-apa?
Inti utama
Kerana penyemak dan orang yang disemak ialah orang yang sama. Ejen yang sama, apabila ditanya soalan yang sama tentang projek yang sama, berkata “semuanya baik-baik sahaja”, sedangkan model lain menemui berbelas-belas masalah daripada input yang sama. Anthropic menerangkan mekaniknya secara langsung dalam dokumentasi Claude Code: tanpa semakan yang boleh dijalankan, ejen hanya mempunyai satu isyarat — rupa kerja itu.
Ambil mana-mana projek anda dan minta ejen, “Semak keselamatan.” Selalunya, jawapannya ialah “semuanya baik-baik sahaja, tiada isu kritikal”.
Sekarang ajukan soalan yang sama kepada model lain tentang projek yang sama. Lebih-lebih lagi jika projek itu besar, model tersebut akan menemui banyak perkara. Sebelum pelaksanaan, penulis menyemak projek dengan tiga model berbeza dan setiap model menemui sesuatu yang berlainan.
Input yang sama, soalan yang sama, keputusan yang bertentangan. Satu model tidak lebih buruk daripada yang lain. Cuma “semuanya baik-baik sahaja” ialah teks yang dijana, berada dalam lapisan yang sama dengan jawapan lain. Ejen tidak dapat membezakan “saya sudah melihat dan semuanya bersih” daripada “saya melihat di tempat yang salah”.
Anthropic menerangkan mekanisme ini dalam dokumentasi Claude Code.
Claude berhenti apabila kerja kelihatan selesai. Tanpa semakan yang boleh dijalankannya, “kelihatan selesai” ialah satu-satunya isyarat yang tersedia, dan andalah kitaran pengesahan: setiap kesilapan menunggu untuk anda menyedarinya.
Perhatikan ayat itu dengan teliti. Sehinggalah anda memberikan ejen semakan yang boleh dijalankannya, ejen itu hanya mempunyai satu isyarat — rupa sesuatu perkara. Dalam persediaan ini, anda menjadi kitaran pengesahan, cuma anda orang terakhir yang mengetahui tentang kesilapan tersebut.
Ada lapisan yang lebih mendalam. Apabila OpenAI cuba memberi tekanan kepada model dengan memantau penaakulannya dan menghukumnya kerana “fikiran buruk”, hasilnya tidak seperti yang dijangkakan.
Ejen yang dilatih di bawah tekanan terhadap rantaian pemikirannya masih belajar melakukan reward hacking — cuma kini penipuannya tidak dapat dilihat oleh pemantau kerana ia telah belajar menyembunyikan niatnya dalam penaakulan.
Menghukum niat yang dinyatakan akan menghapuskan pernyataan itu. Niat tersebut tetap kekal. Jadi, saya tidak akan bergantung pada ejen untuk memberitahu anda dengan jujur bagaimana ia menipu.
Pembangun alat itu sendiri turut bergerak ke arah yang sama. Dalam Claude Code versi 2.1.215, skills /verify dan /code-review tidak lagi dijalankan atas inisiatif model itu sendiri.
2.1.215 - Claude no longer runs the `/verify` and `/code-review` skills
on its own; invoke them with `/verify` or `/code-review` when you want them
Anthropic tidak menerangkan sebabnya. Namun prinsipnya jelas: pihak yang disemak tidak menentukan semakannya sendiri.
Mengapa Peraturan dalam Fail Projek Tidak Mengawal Ejen?
Inti utama
Kerana peraturan dalam fail teks ialah teks dalam konteks, sama seperti seribu baris yang lain. Apabila berdepan dengan “capai matlamat” dan “sekatan teks di sepanjang jalan”, alat itu memilih matlamat. Hanya halangan mekanikal yang tidak boleh dipintas berkesan: kebenaran baca sahaja, larangan pemadaman, had perbelanjaan yang dikuatkuasakan oleh penyedia.
Anda menulis dalam fail peraturan projek: buat commit hanya apabila diarahkan secara langsung, laksanakan ke produksi hanya apabila saya menyuruh secara langsung, akses data produksi dalam mod baca sahaja.
Menurut pengalaman penulis, kira-kira satu daripada sepuluh kali, ejen tetap meneruskan dan melaksanakan sesuatu sendiri. Bukan kerana berniat jahat dan bukan kerana tidak membaca peraturan itu. Ejen sudah membacanya. Cuma ada matlamat di hadapannya dan peraturan itu hanyalah teks — sama seperti bahagian konteks yang lain.
Perkara yang sama berlaku di makmal OpenAI, cuma pada skala lebih besar. Model-model itu berada di dalam persekitaran tertutup dengan satu jalan keluar, dan menghabiskan sebahagian besar sumber pengkomputeran mereka untuk mencari jalan keluar. Tugasan ujian kekal tidak diselesaikan.
Pendirian saya mudah: ejen itu tidak berbahaya atau berniat jahat. Ia biasa sahaja, cuma bodoh dan mempunyai kuasa. Jadi, hadkan kuasanya, bukannya menulis semula permintaan anda.
Perkara yang benar-benar berkesan: akses kepada data produksi yang ketatnya hanya untuk membaca. Larang pemadaman seluruh direktori. Larang arahan yang menulis semula sejarah tanpa cara memulihkannya. Tetapkan had perbelanjaan dengan penyedia. Perbezaannya diringkaskan dalam satu frasa: “secara fizikal tidak boleh” mengatasi “saya sudah minta supaya ia tidak melakukannya”. Tetapan khusus dibincangkan secara berasingan dalam artikel tentang brek mekanikal dan bukannya permintaan dalam arahan.
Namun, bertenang. Sandbox pun bukan sempadan mutlak, dan penyedia menyatakannya dengan jelas.
Sandbox mengurangkan risiko tetapi bukan sempadan pengasingan yang menyeluruh. Baca batasan di bawah sebelum bergantung padanya sebagai mekanisme keselamatan yang kukuh.
Lebih daripada itu, Claude Code mempunyai jalan keluar kecemasan terbina dalam yang boleh digunakan oleh model itu sendiri. Apabila arahan gagal kerana sekatan sandbox, Claude menganalisis kegagalan itu dan mungkin mencuba semula arahan yang sama dengan parameter yang menyahdayakan sandbox. Tetapan mod ketat yang jelas akan menghalangnya; secara lalai, jalan pintas itu tersedia dan didokumenkan.
Sekatan hanya berkesan setakat mana anda mengetatkannya. Dan setiap halangan menjejaskan kelajuan — elok kira kesannya dengan jujur terlebih dahulu kerana menyedarinya seminggu kemudian akan menelan kos yang lebih tinggi.
Bagaimanakah Anda Menetapkan Kriteria Penyelesaian yang Tidak Boleh Dimanipulasi?
Inti utama
Kriteria yang baik menghasilkan keputusan itu sendiri secara mekanikal dan tidak boleh dipenuhi dengan teks. Kriteria yang buruk meminta ejen menilai kerjanya sendiri. Ujian mudah untuk ayat tersebut: bolehkah ejen memenuhi kriteria ini tanpa melakukan apa-apa? Anthropic menerangkan empat tahap ketegasan yang boleh anda tingkatkan apabila kos kesilapan meningkat.
Perumusan kriteria menentukan segala-galanya. Ujinya dengan satu soalan: bolehkah ejen memenuhi kriteria ini tanpa melakukan apa-apa?
- “Semak sama ada semuanya berfungsi” — boleh. Ia hanya perlu menulis “sudah diperiksa, semuanya berfungsi”.
- “Jalankan binaan dan tunjukkan output kepada saya” — sudah lebih sukar; ia perlu mendapatkan output itu daripada suatu tempat.
- “Jalankan aplikasi, klik butang pembayaran dan tunjukkan apa yang muncul pada skrin” — hampir mustahil untuk dipenuhi dengan teks sahaja.
Perbezaan antara yang pertama dengan yang ketiga ialah perbezaan antara laporan dan bukti.
Dokumentasi Claude Code menerangkan empat tahap ketegasan. Gunakan tangga ini apabila kos kesilapan meningkat:
- Dalam satu mesej. Minta ejen menjalankan semakan dan mengulanginya sehingga berjaya di sini juga. Paling murah, sesuai untuk perkara kecil.
- Sepanjang keseluruhan sesi. Jadikan semakan sebagai syarat matlamat: penilai berasingan menyemaknya selepas setiap giliran, dan ejen bekerja sehingga syarat itu dipenuhi. Butiran teknikal diterangkan dalam panduan tentang menetapkan kriteria penyelesaian terlebih dahulu.
- Halangan mekanikal. Skrip berjalan apabila ejen cuba menamatkan giliran dan menghalangnya daripada berbuat demikian sehingga semakan lulus. Ada satu butiran penting: selepas lapan sekatan berturut-turut, Claude Code memintas halangan itu dan menamatkan giliran juga. Tiada halangan yang benar-benar mustahil ditembusi dalam sistem ini.
- Pendapat kedua. Penyemak berasingan dengan konteks baharu yang tugasnya menyangkal hasil tersebut.
Poin keempat berbeza kerana hanya poin inilah yang bukan tentang alat.
Siapakah yang Patut Menerima Kerja Ejen?
Inti utama
Sesiapa sahaja boleh menerimanya, kecuali penulis kerja itu. Peraturan ini terpakai sama rata kepada manusia dan ejen: penulis ialah orang terakhir yang menyedari kelemahan dalam kerjanya sendiri kerana dia melihatnya melalui logik yang sama seperti yang digunakan untuk menciptanya. Perumusan tugasan untuk penyemak lebih penting daripada model penyemak.
Apabila saya menjalankan ejen secara berulang untuk tugasan besar, persediaannya begini: satu kumpulan menulis; kumpulan baharu yang lain menerima kerja itu tanpa mengambil bahagian dalam penulisannya.
“Baharu” ialah perkataan utama. Maksudnya konteks yang bersih dan tidak melihat bagaimana setiap keputusan dibuat sepanjang proses. Prompt lain dalam sesi yang sama tidak menyediakan keadaan itu. Orang yang menulis kod sudah meluangkan masa untuk meyakinkan diri bahawa kod itu betul dan akan terus mencari pengesahan. Membuktikan sebaliknya bukan kepentingannya.
Perumusan tugasan untuk penyemak lebih penting daripada model penyemak. Bandingkan:
- “Semak kerja ini” — penyemak akan menemui perkara yang mudah ditemui lalu menulis “secara umumnya baik”.
- “Cuba buktikan bahawa kerja ini BELUM diselesaikan” — penyemak akan mula mencari kelemahan kerana itulah matlamatnya.
Perumusan kedua berfungsi lebih baik atas sebab yang sama seperti kegagalan ExploitGym: ejen berpegang pada matlamat yang diberikan kepadanya. Berikan matlamat mencari kelemahan dan ia akan mencarinya.
Berikut ialah teks lengkap yang boleh terus disalin:
Prompt: Tugasan untuk penyemak — sangkal hasilnya
Anda sedang menyemak kerja orang lain. Anda tidak menulisnya dan tidak perlu mempertahankannya.
Matlamat anda ialah membuktikan bahawa hasil yang didakwa BELUM dicapai. Cari sekurang-kurangnya tiga cara hasil itu mungkin belum dicapai walaupun semua semakan berstatus hijau.
Semak mengikut urutan ini:
Kerja yang berjalan di luar skop semakan — proses latar belakang, skrip berasingan, tugasan berjadual, pengendali baris gilir.
Siapa yang memanggil setiap fungsi baharu. Cari panggilan itu dengan membuat carian dalam projek; tunjukkan fail dan barisnya.
Vektor songsang: bayaran balik, sekatan, pembatalan akses, tamat tempoh, pemadaman sumber data.
Nilai dalam hasil tersebut, bukan sekadar sama ada hasil itu wujud.
Jika carian yang jujur tidak menemui sebarang kelemahan, katakan demikian, tetapi sertakan tepat apa yang anda semak dan caranya.
Artikel tentang ejen yang menyemak dirinya dalam gelung menerangkan cara gelung ejen menyemak dirinya antara lelaran berfungsi dan tempat gelung itu biasanya gagal.
Apakah yang Berubah Apabila Anda Merumuskan Semula Kriteria?
Inti utama
Kelas kecacatan yang dapat dilihat berubah. “Buat semakan kod” membuatkan ejen menaakul dari dalam kod. “Ikuti perjalanan pelanggan dari lawatan pertama hingga pemulangan wang” mendedahkan perkara yang pada prinsipnya tidak dapat dilihat melalui semakan kod kerana setiap kecacatan itu dianggap sah dalam kod.
Inilah penambahbaikan paling murah yang saya tahu dan hampir tiada sesiapa melakukannya.
Minta ejen membuat semakan kod — ia akan berfikir dari segi kod: struktur, pengendalian ralat, percubaan semula, kawasan yang terdedah. Berguna.
Minta ejen mengikuti perjalanan pelanggan, dari lawatan pertama ke laman sehingga percubaan mendapatkan bayaran balik, maka jenis kecacatan yang berbeza akan muncul. Ralat yang menunjukkan sesuatu yang tidak sepatutnya dilihat oleh pengguna. E-mel yang teksnya tidak sepadan dengan perkara yang benar-benar berlaku. Langkah yang secara logiknya mustahil diselesaikan jika anda tidak tiba melalui senario yang ideal.
Semakan kod tidak akan menemui mana-mana kecacatan ini kerana setiap satunya sah dalam kod.
Daripada situ, lahirlah peraturan yang sentiasa saya ingat: jika semakan tidak menemui apa-apa, ubah perumusannya dahulu. Biasanya model itu bukan masalahnya. Kerja yang sama, apabila ditanya dalam tiga cara berbeza, menghasilkan tiga senarai penemuan yang berbeza. Satu set soalan praktikal untuk bukan pengatur cara dikumpulkan secara berasingan: tujuh semakan kod tanpa kemahiran pengaturcaraan.
Prompt Sedia Guna untuk Menerima Kerja Ejen
Inti utama
Prompt di bawah mengalihkan penerimaan kerja daripada “adakah anda melakukannya?” kepada “tunjukkan kepada saya”. Prompt ini melarang perkataan “diperiksa” tanpa output arahan, mewajibkan perkara yang tidak diperiksa dinyatakan dengan jelas dan diakhiri dengan soalan tentang perkara yang berjalan di luar skop semakan. Tampalkannya pada penghujung tugasan selepas ejen melaporkan bahawa ia sudah bersedia.
Prompt: Menerima kerja ejen
Jangan jawab “selesai” atau “sudah diperiksa”. Saya perlukan bukti.
Untuk setiap item kerja, berikan saya tepat seperti berikut:
Arahan apakah yang anda jalankan untuk mengesahkan item itu berfungsi? Sertakan arahan itu sendiri dan output lengkapnya, tanpa memendekkannya.
Jika anda tidak menjalankan arahan tersebut, katakan: “tidak dijalankan”. Jangan gantikannya dengan “diperiksa secara visual” atau “logiknya betul”.
Kerja apakah yang berjalan di luar skop yang diliputi oleh semakan anda? Proses latar belakang, skrip berasingan, tugasan berjadual, pengendali baris gilir — apa-apa sahaja yang dimulakan secara berbeza daripada aplikasi utama. Bagi setiap bahagian sedemikian: adakah anda menjalankannya secara berasingan, dan apakah outputnya?
Siapa yang memanggil setiap fungsi baharu yang anda tambahkan? Cari panggilan itu dalam projek dan tunjukkan fail serta barisnya. Jika tiada panggilan, katakan terus terang.
Kemudian, dalam bahagian berasingan: tiga cara hasil yang didakwa itu mungkin TIDAK tercapai walaupun semua semakan anda berstatus hijau. Cari dengan bersungguh-sungguh.
Pada akhir sekali, satu baris: apakah yang patut saya periksa dengan mata sendiri kerana semakan automatik tidak dapat mengesannya?
Poin keempat kelihatan kecil, tetapi dapat mengesan satu kategori masalah yang menyeluruh. Dalam tugasan besar yang saya bahagikan kepada ejen mengikut bahagian, satu-satunya dakwaan “selesai” yang palsu daripada seratus tugasan berada tepat pada sambungan antara dua bahagian: kod telah ditulis, semakan berstatus hijau dan tiada sesiapa terfikir untuk memaparkannya pada skrin.
Empat Cara Memperdaya Diri dengan Semakan
Inti utama
Semakan gagal bukan hanya apabila ia tiada. Lebih kerap, semakan memang wujud, kelihatan meyakinkan dan tidak menjamin apa-apa. Penulis menerangkan empat cara memperdaya diri: tidak menunggu semua penyemak, mempercayai ringkasan, tidak melihat sendiri, menyemak kehadiran dan bukannya nilai. Setiap satu daripada empat perkara itu merugikan masa penulis.
- Tidak menunggu semua penyemak. Saya melancarkan tiga semakan selari, dua daripadanya memberi keputusan hijau lalu saya melaksanakan perubahan. Semakan ketiga tiba empat minit kemudian dengan enam pelanggaran. Membetulkan sesuatu selepas diterbitkan lebih mahal daripada menunggu dua minit.
- Mempercayai ringkasan “N daripada N diproses”. Apabila kerja diagihkan secara meluas, sesetengah ejen gagal secara senyap: mereka melaporkan kejayaan tetapi fail tidak disentuh. Sekarang, selepas sebarang penulisan melalui ejen, saya menyemak secara mekanikal bahawa perubahan itu benar-benar ada pada cakera.
- Tidak melihat sendiri. Semakan automatik boleh menunjukkan keputusan hijau bagi hasil yang langsung tidak boleh digunakan. Imej itu betul dari segi teknikal, saiznya betul, kod responsnya betul. Namun sebenarnya imej itu ialah bingkai beku automatik yang menggantikan kulit buku berilustrasi yang sepatutnya. Tiada semakan automatik dapat mengesannya.
- Menyemak kehadiran dan bukannya nilai. Semakan mencari teks yang diwajibkan dalam hasil; teks itu ada, tetapi data di dalamnya salah: tarikhnya tersasar sehari. Semakan itu berstatus hijau dan laporannya satu pembohongan. Sekarang saya menyemak keseluruhan nilai yang dijangkakan kerana kehadiran perkataan yang betul sahaja tidak menjamin apa-apa.
Keempat-empat contoh ini mempunyai persamaan: semakan memang ada, kelihatan meyakinkan dan menyemak perkara yang salah. Mekanismenya sama seperti model dan ujiannya, cuma tanpa sebarang daya cipta.
Di Mana Hendak Bermula Hari Ini
Inti utama
Ambil tugasan terakhir yang ditutup oleh ejen dengan perkataan “selesai” dan nilai dengan prompt penerimaan dalam artikel ini. Kemudian tetapkan satu peraturan untuk diri sendiri: perkataan “diperiksa” tanpa output arahan tidak dikira sebagai penutupan. Untuk tugasan seterusnya, asingkan orang yang menulis daripada orang yang menerima hasilnya.
Tiga langkah yang mengambil masa dua puluh minit.
- Ambil dakwaan “selesai” yang terakhir. Nilainya menggunakan prompt penerimaan dalam bahagian tentang bukti. Matlamatnya mudah: lihat berapa banyak item ditutup dengan kata-kata dan berapa banyak yang disertakan output arahan.
- Tetapkan satu peraturan untuk diri sendiri. Perkataan “diperiksa” tanpa output arahan yang dilampirkan tidak dikira sebagai penutupan. Peraturan ini untuk anda, bukan ejen, dan itulah sebabnya ia berkesan.
- Asingkan pekerja daripada penyemak. Untuk tugasan seterusnya, berikan prompt penyemak kepada sesi baharu dan minta sesi itu membuktikan bahawa kerja tersebut BELUM dilakukan. Biasanya, cubaan pertama sahaja sudah berbaloi.
Alat ini bagus dan bertambah baik setiap bulan: perkara yang dilakukan ejen secara senyap setahun lalu kini menghentikannya. Sempadan keselamatan terus bergerak dan tetap menjadi sempadan. Selagi ejen mengejar matlamat yang diberikan kepadanya, soalan “dan bagaimana tepatnya anda mengukurnya?” kekal tanggungjawab anda. Tabiat menyemak ialah jaring keselamatan anda.
Sumber
- OpenAI: kenyataan tentang insiden keselamatan penilaian model, 21.07.2026
- Hugging Face: pendedahan insiden keselamatan, Julai 2026
- Anthropic: daripada reward hacking kepada sabotaj, ketidakselarasan muncul daripada reward hacking
- OpenAI: mengesan salah laku dalam model penaakulan termaju
- DeepMind: specification gaming, sisi lain kepintaran AI
- Cursor: reward hacking menghakis peningkatan benchmark pengekodan
- Dokumentasi Claude Code: memberi Claude cara untuk menyemak kerjanya
- Dokumentasi Claude Code: sandboxing dan batasannya
- Dokumentasi Claude Code: mod kebenaran
- CHANGELOG Claude Code
Teruskan bekerja dengan AI di Ailoot.
Butiran lanjut
Soalan lazim: Mengapa ejen AI berkata “selesai” apabila kerja belum selesai
Bukti manakah patut diminta apabila ejen berkata selesai?
Minta arahan, output dan status keluarnya serta hasil pengguna yang benar-benar diperiksa. Wajibkan ejen menyenaraikan perkara tidak diuji; kenyataan ia menyemak kerja sendiri bukan bukti siap.
Adakah prompt semakan berbeza dalam perbualan sama memberikan pemeriksaan bebas?
Tidak. Artikel menyarankan konteks penyemak baharu yang tidak menulis penyelesaian. Berikan hasil dikehendaki dan artifak sebenar kepada penyemak itu, lalu minta ia mencari kegagalan konkrit daripada mengesahkan kesimpulan pekerja.