Blog

Kimi Code Never Ask: mod dan arahan berbahaya

Markdown

Dalam mod Never Ask, Kimi Code menjalankan rm -rf dan shutdown tanpa bertanya. Apakah perbezaan antara 3 mod itu, dan bagaimana anda boleh melarang arahan berbahaya dalam config.toml?

Baca artikel penuh

Dalam Kimi Code, mod Never Ask (/auto) meluluskan semuanya secara automatik: mod ini akan menjalankan rm -rf, shutdown dan reboot tanpa bertanya walau sekali. Ejen hanya bertanya sebelum arahan ini dalam 2 mod lain, Always Ask dan Ask When Needed.

Saya sendiri menggunakan Claude Code dengan “benarkan semuanya” diaktifkan; kalau tidak, kita akan asyik mengklik: ya, ya, ya.

Prototaip peribadi juga boleh mendedahkan fail dan kelayakan bernilai. Gunakan salinan atau bekas terasing dengan kebenaran terhad dan sandaran yang disahkan; untuk sistem pelanggan, berikan juga identiti pangkalan data berasingan dengan akses yang diperlukan sahaja. Dengan itu, ejen tidak dapat memadam pangkalan data walaupun benar-benar mahu berbuat demikian.

Mari kita lihat fungsi setiap mod Kimi Code, tempat perlindungan berfungsi dan cara menetapkan larangan. Mari mulakan.

Untuk mendapatkan maklumat tentang penggunaan perkhidmatan ini, lihat dokumentasi Ailoot.

Inti pati

Kimi Code mempunyai 3 mod. Always Ask ialah mod lalai: pembacaan berlaku secara automatik dan anda mengesahkan semua tindakan lain satu demi satu. Ask When Needed (/yolo) meluluskan suntingan biasa secara automatik, tetapi bertanya sebelum mengakses fail yang mengandungi kunci, menjalankan arahan berbahaya atau keluar daripada mod pelan. Never Ask (/auto) tidak bertanya apa-apa, dan perlindungan terhadap arahan berbahaya tidak berfungsi dalam mod ini. Tetapkan larangan kekal dengan peraturan deny dalam ~/.kimi-code/config.toml; sebaik-baiknya jangan aktifkan Never Ask apabila pangkalan data langsung boleh dicapai.

Apakah perbezaan antara 3 mod Kimi Code?

Jika anda sudah memasang Kimi Code, anda pernah melihat panel kelulusan: ejen mahu menyunting fail atau menjalankan arahan, lalu menunggu jawapan “ya” daripada anda. Nama mod ini dahulu ialah Manual, YOLO dan Auto, sebab itulah arahan lama /yolo dan /auto masih digunakan.

Always Ask. Mod lalai. Ejen membaca fail tanpa bertanya, tetapi anda mengesahkan setiap suntingan dan setiap arahan secara berasingan. Inilah mod yang paling perlahan.

Ask When Needed. Diaktifkan dengan /yolo. Mod ini meluluskan suntingan dan arahan biasa secara automatik, tetapi bertanya sebelum mengakses .env (fail yang mengandungi kata laluan dan kunci projek) serta kunci SSH pelayan, sebelum menjalankan arahan berbahaya seperti shutdown (mematikan komputer) dan rm -rf (memadam seluruh folder tanpa melalui tong sampah), dan sebelum keluar daripada mod pelan. Ejen juga boleh mengemukakan soalan kepada anda.

Never Ask. Diaktifkan dengan /auto. Semua kelulusan berlaku secara automatik, termasuk kelulusan untuk fail sensitif dan untuk keluar daripada mod pelan. Ejen tidak bertanya apa-apa kepada anda dan membuat semua keputusan sendiri.

Jadual tiga mod kebenaran Kimi Code: Always Ask, Ask When Needed, Never Ask
3 mod kebenaran dalam Kimi Code CLI.

Mod pelan diaktifkan secara berasingan dengan Shift-Tab atau /plan: ejen menulis pelan terlebih dahulu dan menunggu kelulusan anda, kemudian barulah menyentuh fail.

Apabila saya sendiri bekerja tanpa pengesahan

Dalam Claude Code, “benarkan semuanya” ialah tetapan lalai saya dan diaktifkan dalam setiap sembang baharu. Tanpanya, vibe coding terlalu perlahan. Pengguna vibe coding memang sudah kurang memahami banyak perkara, kemudian perlu pula terus menekan butang: ya, ya, ya, tidak, tidak, tidak.

Tetapi dalam mod ini, ejen boleh melakukan apa sahaja yang melulu, termasuk menghapuskan pangkalan data. Ejen kemudian akan berkata “maaf, saya minta maaf,” tetapi kadangkala tindakannya tidak dapat dipulihkan lagi. Jadi, mod ini untuk mereka yang berani, dan anda bertanggungjawab terhadapnya.

Inilah peraturan saya. Untuk projek peribadi, eksperimen dan prototaip, gunakan mod tanpa pengesahan hanya dalam salinan atau bekas terasing tanpa fail bernilai atau kelayakan pengeluaran, dengan kebenaran terhad dan sandaran. Ketiadaan pelanggan tidak melindungi fail atau kunci peribadi, dan pengasingan masih perlu diperiksa. Tetapi jika anda mengaktifkan mod ini dalam projek yang sama yang mempunyai akses kepada pelayan produksi, 1 arahan sudah cukup untuk ejen memadam pangkalan data itu pada waktu malam dan menggunakan perubahan pada laman langsung.

Sebab larangan dalam bentuk kata-kata tidak melindungi anda

Ramai orang menulis “jangan sentuh pangkalan data” dalam arahan ejen. Jangan harap arahan itu akan menyelamatkan anda. Anda memberitahunya: kawan, jangan masuk ke sini. Tetapi ejen tetap akan masuk dan mengambil apa yang diperlukannya apabila perlu. Kimi dari China khususnya: ejen ini akan melanggar apa-apa larangan yang anda tetapkan. Model Amerika jauh lebih terlatih untuk tidak berbuat demikian.

Saya masih menggunakan Kimi dalam kerja saya. Kimi K3 sangat teliti; saya menggunakannya untuk memeriksa projek bagi mencari kunci yang bocor dan mengumpulkan maklumat. Pernah sekali, saya menghabiskan semua had penggunaannya dalam masa beberapa hari. Kimi tidak buat hal dan melakukan semua yang diminta. Sebab itulah anda memerlukan pengasingan semasa menggunakannya. Saya menerangkan cara saya mengujinya pada tugasan sendiri di sini.

Anda memerlukan 2 bentuk pengasingan:

  1. Senarai sekat arahan dalam tetapan. Ia menyekat panggilan alat yang sepadan; corak satu ejaan arahan bukan sempadan lengkap terhadap alat lain atau tindakan setara. Gunakannya bersama kebenaran sistem pengendalian, bekas dan pangkalan data.
  2. Akses pangkalan data baca sahaja. Pada pangkalan data langsung, ejen mempunyai pengguna berasingan dengan kebenaran baca sahaja. Dengan itu, ejen tidak dapat menghapuskan pangkalan data walaupun dalam mod Never Ask.

Tempat perlindungan terhadap arahan berbahaya berfungsi

Perlindungan terbina dalam Kimi Code terhadap arahan berbahaya diaktifkan secara lalai. Dalam mod Always Ask dan Ask When Needed, Kimi Code meminta pengesahan sebelum menjalankan shutdown, reboot (mulakan semula) atau rm -rf. Dalam mod Never Ask, arahan ini dijalankan tanpa berhenti untuk bertanya.

Terdapat 2 pengecualian:

  • rm -rf dijalankan tanpa bertanya jika ia hanya memadam kandungan folder sementara /tmp atau /temp (sejak versi 0.43.0);
  • dalam mod Ask When Needed, Kimi Code tidak bertanya tentang arahan terminal yang tidak dapat dihuraikannya terlebih dahulu (sejak versi 2.0.1).

Dalam versi 0.40.0, mod Auto menyekat arahan berbahaya; sekatan itu dibuang dalam versi 0.41.0.

Dahulu/sekarang: Mod autonomi Kimi Code dahulunya menyekat arahan berbahaya, tetapi kini tidak lagi
0.40.0: Auto menyekat arahan berbahaya. 0.41.0: Sekatan itu telah dibuang.

Anda boleh menyahaktifkan perlindungan dengan dangerous_command_guard = false dalam bahagian [permission] fail tetapan ~/.kimi-code/config.toml, atau dengan pemboleh ubah KIMI_CODE_DANGEROUS_COMMAND_GUARD=false. Pembangun menyarankan agar anda berbuat demikian hanya di tempat arahan berbahaya sudah dipintas secara luaran.

Cara menetapkan larangan kekal dalam Kimi Code

Apabila ejen mahu mengubah sesuatu, Kimi Code memaparkan panel kelulusan:

  • Luluskan: gunakan kekunci anak panah dan Enter, atau tekan terus 1, 2 atau 3;
  • Tolak: Esc, Ctrl-C atau Ctrl-D;
  • Luluskan untuk sesi ini: panggilan yang sama jenisnya akan diluluskan sehingga sesi berakhir;
  • Peraturan kekal: peraturan tetap untuk membenarkan atau menolak tindakan dalam fail tetapan.

Peraturan kekal ditulis dalam fail tetapan ~/.kimi-code/config.toml sebagai blok [[permission.rules]]. Kimi Code menyemaknya mengikut turutan dan menggunakan padanan pertama, jadi letakkan larangan sebelum kebenaran. Setiap peraturan mempunyai decision: allow (benarkan serta-merta), deny (tolak serta-merta) atau ask (tanya setiap kali).

Larangan untuk rm -rf dan pertanyaan sebelum sebarang arahan terminal yang lain:

[[permission.rules]]
decision = "deny"
pattern = "Bash(rm -rf*)"

[[permission.rules]]
decision = "ask"
pattern = "Bash"

Bagi arahan terminal, corak diletakkan dalam kurungan: Bash(command-pattern); bagi membaca fail, gunakan Read(path-pattern). Alat MCP, AgentSwarm dan alat anda sendiri hanya boleh dilarang dengan nama penuhnya.

Jika anda tidak mahir dari segi teknikal dan tidak mahu membuka fail tetapan, tampalkan sahaja arahan di bawah ke dalam ejen: ejen akan mencari perkara yang perlu disekat sendiri. Minta ejen memberitahu anda terlebih dahulu sejauh mana tindakan ini akan melambatkan kerja anda. Jika anda biasa bekerja tanpa pengesahan, sesetengah perkara tidak akan berfungsi selepas larangan ditambah. Inilah arahan saya:

Analisis projek saya dan beritahu sama ada anda mempunyai akses kepada pelayan produksi, pangkalan data staging dan kunci produksi. Jika ada, konfigurasikan perlindungan terhadap arahan berbahaya: larang pemadaman seluruh folder, arahan yang menulis semula sejarah perubahan secara tidak boleh balik, dan arahan terus kepada pangkalan data produksi. Tunjukkan dahulu pelan dalam format “sebelum - selepas” dan beritahu saya dengan jujur sejauh mana tindakan ini akan melambatkan kerja saya.

Saya menerangkan cara mengkonfigurasi perkara yang sama dalam Claude Code dalam artikel berasingan. Lihat juga cara mod Auto dalam Claude Code menyemak tindakan ejen.

Mod yang patut dipilih

  • Anda mahu melihat setiap langkah yang diambil oleh ejen: Always Ask, mod lalai. Anda mengesahkan semuanya kecuali pembacaan.
  • Projek peribadi atau prototaip tanpa pelanggan sebenar: mulakan dengan Always Ask atau Ask When Needed. Pertimbangkan Never Ask hanya untuk salinan terasing yang boleh dibuang, dengan kebenaran terhad dan tanpa data atau kunci bernilai; ia tidak menjadi selamat hanya kerana projek tiada pelanggan.
  • Projek dengan pelanggan sebenar dan akses kepada pelayan: jangan aktifkan Never Ask. Tetapkan larangan deny dalam config.toml dan berikan ejen akses baca sahaja kepada pangkalan data.

Dan buat sandaran pangkalan data pada komputer yang berasingan daripada projek. Peraturan keselamatan yang lain dihimpunkan dalam artikel berasingan.

Padankan mod pengesahan dengan kebenaran akses projek anda dan periksa tempat larangan diperlukan.

Sumber

  • Kimi Code: Interaksi dan input — 3 mod kebenaran, /yolo, /auto, perlindungan terhadap arahan berbahaya dalam setiap mod, panel kelulusan dan mod Plan.
  • Kimi Code: Fail konfigurasi — [[permission.rules]], turutan semakan peraturan, dangerous_command_guard, KIMI_CODE_DANGEROUS_COMMAND_GUARD dan laluan ke config.toml.
  • Kimi Code: Log perubahan — versi 0.40.0, 0.41.0, 0.43.0 dan 2.0.1: perlindungan terhadap arahan berbahaya dan penamaan semula mod.

Kenali Ailoot.

Butiran lanjut

Soalan lazim: Kimi Code Never Ask: mod dan arahan berbahaya

Adakah Never Ask selamat hanya kerana projek saya tiada pelanggan?

Tidak. Ejen masih boleh merosakkan fail peribadi atau mendedahkan kunci. Gunakan kebenaran terhad, salinan sementara terasing atau bekas, serta sandaran sebelum mempertimbangkan mod tanpa pengesahan.

Adakah peraturan deny untuk rm -rf menggantikan pengasingan?

Tidak. Ia menyekat panggilan alat yang sepadan, bukan setiap cara setara mengubah fail. Simpan data bernilai dan kelayakan pengeluaran di luar akses ejen, serta gunakan identiti pangkalan data berasingan dengan kebenaran yang diperlukan oleh tugasan sahaja.

Semua artikel