Blog

Kimi Code Never Ask: módok és veszélyes parancsok

Markdown

Never Ask módban a Kimi Code kérdés nélkül futtatja az rm -rf és a shutdown parancsot. Miben különbözik a 3 mód, és hogyan tilthat meg egy veszélyes parancsot a config.toml fájlban?

A teljes cikk elolvasása

A Kimi Code Never Ask módja (/auto) mindent automatikusan jóváhagy: kérdés nélkül végrehajtja az rm -rf, a shutdown és a reboot parancsot is. Az ügynök csak a másik 2 módban, az Always Ask és az Ask When Needed használatakor kérdez rá ezekre a parancsokra.

Én magam is a „mindent engedélyez” beállítással dolgozom a Claude Code-ban; különben csak ott ülnénk és kattintgatnánk: igen, igen, igen. Viszont minden 10. alkalommal az ügynök a saját feje után megy.

Még egy személyes prototípus is értékes fájlokat és hitelesítő adatokat fedhet fel. Elkülönített másolatot vagy konténert használj korlátozott jogosultságokkal és ellenőrzött biztonsági mentéssel; ügyfélrendszereknél az ügynök külön adatbázis-azonosságot is kapjon, csak a szükséges hozzáféréssel. Így még ha tényleg törölni akarná is az adatbázist, nem tudná.

Nézzük meg, mit csinálnak az egyes Kimi Code-módok, hol működik a védelem, és hogyan állítható be tiltás. Vágjunk bele.

A szolgáltatás használatáról az Ailoot dokumentációjában olvashatsz.

Fő tanulság

A Kimi Code-nak 3 módja van. Az Always Ask az alapértelmezett: az olvasás automatikusan történik, minden más műveletet pedig külön-külön jóvá kell hagynod. Az Ask When Needed (/yolo) magától jóváhagyja a szokásos szerkesztéseket, de rákérdez, mielőtt kulcsokat tartalmazó fájlokhoz férne hozzá, veszélyes parancsokat futtatna vagy kilépne a tervezési módból. A Never Ask (/auto) egyáltalán nem kérdez, és ebben a módban a veszélyes parancsok elleni védelem nem működik. Állandó tiltást a deny szabállyal állíthatsz be a ~/.kimi-code/config.toml fájlban, éles adatbázis mellett pedig jobb nem bekapcsolni a Never Ask módot.

Miben különbözik a Kimi Code 3 módja?

Ha már telepítetted a Kimi Code-ot, láttad a jóváhagyási panelt: az ügynök szerkeszteni akar egy fájlt vagy futtatni egy parancsot, és a „igen” válaszodra vár. A módokat korábban Manual, YOLO és Auto néven hívták, ezért használják még mindig a régi parancsokat: /yolo és /auto.

Always Ask. Ez az alapértelmezett mód. Az ügynök kérdezés nélkül olvas fájlokat, de minden szerkesztést és parancsot külön jóvá kell hagynod. Ez a leglassabb mód.

Ask When Needed. A /yolo paranccsal kapcsolható be. Magától jóváhagyja a szokásos szerkesztéseket és parancsokat, de rákérdez, mielőtt hozzáférne a .env fájlhoz (amely a projekt jelszavait és kulcsait tartalmazza) vagy a szerver SSH-kulcsaihoz, illetve mielőtt olyan veszélyes parancsokat futtatna, mint a shutdown (a számítógép leállítása) és az rm -rf (egy teljes mappa törlése a kuka megkerülésével), továbbá a tervezési módból való kilépés előtt is kérdez. Az ügynök maga is feltehet neked kérdést.

Never Ask. A /auto paranccsal kapcsolható be. Minden jóváhagyás automatikusan megtörténik, beleértve az érzékeny fájlokhoz való hozzáférést és a tervezési módból való kilépést is. Az ügynök nem kérdez tőled, hanem mindent maga dönt el.

A Kimi Code három engedélyezési módját bemutató táblázat: Always Ask, Ask When Needed, Never Ask
3 engedélyezési mód a Kimi Code CLI-ben.

A tervezési mód külön kapcsolható be a Shift-Tab billentyűvel vagy a /plan paranccsal: az ügynök először tervet ír, és megvárja a jóváhagyásodat, csak utána nyúl a fájlokhoz.

Amikor én magam megerősítés nélkül dolgozom

A Claude Code-ban nálam alapértelmezett a „mindent engedélyez” beállítás; minden új csevegésben be van kapcsolva. Nélküle túl lassú a hangulatkódolás. A hangulatkódoló eleve nagyon keveset ért, aztán még folyamatosan gombokat is kell nyomogatnia: igen, igen, igen, nem, nem, nem.

Ebben a módban viszont az ügynök bármi meggondolatlanságot megtehet, akár egy adatbázist is letörölhet. Utána azt mondja majd, hogy „bocsánat, elnézést”, de néha már nem lehet helyrehozni, amit tett. Ezért ez a mód a vakmerőknek való, és te viseled érte a felelősséget.

Nálam ezek a szabályok. Személyes projekteknél, kísérleteknél és prototípusoknál megerősítés nélküli módot csak értékes fájlok és éles hitelesítő adatok nélküli, elkülönített másolatban vagy konténerben használj, korlátozott jogosultságokkal és biztonsági mentéssel. Az ügyfelek hiánya nem védi meg a személyes fájlokat és kulcsokat, az elkülönítést pedig ellenőrizni kell. Ha viszont ugyanabban a projektben kapcsolod be ezt a módot, amely egy éles szerverhez is hozzáfér, 1 prompt is elég ahhoz, hogy az ügynök éjszaka törölje az ottani adatbázist, és módosításokat telepítsen az éles webhelyre.

Miért nem véd meg a szavakkal megfogalmazott tiltás?

Sokan azt írják az ügynök utasításaiba, hogy „ne nyúlj az adatbázishoz”. Ne számíts arra, hogy ez megvéd. Azt mondod neki: haver, ide ne menj be. De ő akkor is bemegy, és akkor veszi el, amire szüksége van, amikor szüksége van rá. Különösen a kínai Kimi: bármilyen tiltást megszeg, amit beállítasz. Az amerikai modelleket sokkal jobban tanították arra, hogy ne tegyenek ilyet.

Én továbbra is használom a Kimit a munkámban. A Kimi K3 nagyon figyelmes; projektek kiszivárgott kulcsainak ellenőrzésére és információgyűjtésre használom. Egyszer pár nap alatt kimerítettem az összes keretét. A Kimi nem rakoncátlankodik, és mindent megtesz, amit kérsz. Ezért van szükség elkülönítésre, amikor vele dolgozol. Itt írtam le, hogyan teszteltem a saját feladataimon.

2 módon kell elkülönítened:

  1. Parancsok tiltólistája a beállításokban. Az illeszkedő eszközhívásokat blokkolja; egyetlen parancsalak mintája nem teljes határ más eszközök vagy egyenértékű műveletek ellen. Operációsrendszer-, konténer- és adatbázis-jogosultságok mellett használd.
  2. Csak olvasási jogosultság az adatbázishoz. Az éles adatbázison az ügynöknek külön felhasználója van, csak olvasási jogosultsággal. Így még Never Ask módban sem tudja törölni az adatbázist.

Hol működik a veszélyes parancsok elleni védelem?

A Kimi Code beépített védelme a veszélyes parancsok ellen alapértelmezés szerint be van kapcsolva. Az Always Ask és az Ask When Needed módban megerősítést kér a shutdown, reboot (újraindítás) vagy rm -rf előtt. Never Ask módban ezek a parancsok megszakítás nélkül lefutnak.

2 kivétel van:

  • az rm -rf kérdezés nélkül lefut, ha csak az ideiglenes /tmp vagy /temp mappák tartalmát törli (a 0.43.0-s verzió óta);
  • Ask When Needed módban a Kimi Code nem kérdez rá azokra a terminálparancsokra, amelyeket előre nem tud elemezni (a 2.0.1-es verzió óta).

A 0.40.0-s verzióban az Auto mód blokkolta a veszélyes parancsokat; ezt a blokkolást a 0.41.0-s verzióban eltávolították.

Előtte/most: a Kimi Code autonóm módja korábban blokkolta a veszélyes parancsokat, de már nem teszi
0.40.0: az Auto blokkolta a veszélyes parancsokat. 0.41.0: a blokkolást eltávolították.

A védelmet a dangerous_command_guard = false beállítással kapcsolhatod ki a ~/.kimi-code/config.toml beállításfájl [permission] szakaszában, vagy a KIMI_CODE_DANGEROUS_COMMAND_GUARD=false változóval. A fejlesztők azt javasolják, hogy ezt csak olyan környezetben tedd meg, ahol a veszélyes parancsokat már külső rendszer fogja meg.

Állandó tiltás beállítása a Kimi Code-ban

Amikor az ügynök módosítani akar valamit, a Kimi Code jóváhagyási panelt jelenít meg:

  • Jóváhagyás: használd a nyílbillentyűket és az Enter billentyűt, vagy nyomd meg közvetlenül az 1, 2 vagy 3 billentyűt;
  • Elutasítás: Esc, Ctrl-C vagy Ctrl-D;
  • Jóváhagyás erre a munkamenetre: az ilyen típusú hívás a munkamenet végéig jóváhagyást kap;
  • Állandó szabályok: állandó engedélyező vagy tiltó szabály a beállításfájlban.

Az állandó szabályok a ~/.kimi-code/config.toml beállításfájl [[permission.rules]] blokkjába kerülnek. A Kimi Code sorrendben ellenőrzi őket, és az első egyezés lép érvénybe, ezért a tiltásokat az engedélyezések elé kell tenni. Minden szabályhoz tartozik egy decision: allow (azonnali engedélyezés), deny (azonnali tiltás) vagy ask (minden alkalommal kérdezzen).

Tiltás az rm -rf parancsra, és kérdés minden más terminálparancs előtt:

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

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

Terminálparancsoknál a minta zárójelbe kerül: Bash(command-pattern); fájlok olvasásánál Read(path-pattern). Az MCP-eszközöket, az AgentSwarm-ot és a saját eszközeidet csak a teljes nevükkel lehet tiltani.

Ha nem vagy műszaki beállítottságú, és nem akarod megnyitni a beállításfájlt, egyszerűen illeszd be az alábbi promptot az ügynöknek: az ügynök maga megkeresi, mit kell korlátozni. Előbb kérd meg, hogy mondja meg, mennyivel fog ez lelassítani. Ha hozzászoktál a megerősítés nélküli munkához, néhány dolog nem fog működni a tiltások hozzáadása után. Íme a promptom:

Elemezd a projektemet, és mondd meg, hozzáférsz-e az éles szerverhez, az előkészítő adatbázishoz és az éles kulcsokhoz. Ha igen, állíts be védelmet a veszélyes parancsok ellen: tiltsd meg teljes mappák törlését, a módosítási előzményeket visszafordíthatatlanul átíró parancsokat és az éles adatbázishoz közvetlenül küldött parancsokat. Először mutass egy tervet „előtte – utána” formátumban, és mondd meg őszintén, mennyivel fog ez lelassítani.

A külön cikkben arról is írtam, hogyan konfigurálható ugyanez a Claude Code-ban. Nézd meg azt is, hogyan ellenőrzi az Auto mód a Claude Code-ban az ügynök műveleteit.

Melyik módot válaszd?

  • Szeretnéd látni az ügynök minden lépését: Always Ask, az alapértelmezett mód. Az olvasás kivételével mindent jóváhagysz.
  • Személyes projekt vagy valódi ügyfelek nélküli prototípus: kezdd Always Ask vagy Ask When Needed móddal. A Never Ask csak elkülönített, eldobható másolatnál jöjjön szóba, korlátozott jogosultságokkal és értékes adatok vagy kulcsok nélkül; a projekt nem válik biztonságossá pusztán az ügyfelek hiányától.
  • Projekt valódi ügyfelekkel és szerverhozzáféréssel: ne kapcsold be a Never Ask módot. Állíts be deny tiltásokat a config.toml fájlban, és adj az ügynöknek csak olvasási jogosultságot az adatbázishoz.

Az adatbázisról egy, a projekttől különálló gépen is készíts biztonsági másolatot. A többi biztonsági szabályt egy külön cikkben gyűjtöttem össze.

A megerősítési módot igazítsd a projekt hozzáférési jogosultságaihoz, és ellenőrizd, hol van szükség tiltásokra.

Források

  • Kimi Code: Interaction and input — a 3 engedélyezési mód, a /yolo és a /auto, a veszélyes parancsok elleni védelem módonként, a jóváhagyási panel és a tervezési mód.
  • Kimi Code: Configuration files — a [[permission.rules]], a szabályok ellenőrzési sorrendje, a dangerous_command_guard, a KIMI_CODE_DANGEROUS_COMMAND_GUARD és a config.toml elérési útja.
  • Kimi Code: Changelog — a 0.40.0, 0.41.0, 0.43.0 és 2.0.1 verzió: a veszélyes parancsok elleni védelem és a módok átnevezése.

Ismerd meg az Ailootot.

További részletek

Kérdések és válaszok: Kimi Code Never Ask: módok és veszélyes parancsok

A Never Ask attól biztonságos, hogy a projektemnek nincsenek ügyfelei?

Nem. Az ügynök így is tönkretehet személyes fájlokat vagy felfedhet kulcsokat. Megerősítés nélküli mód előtt korlátozott jogosultságokat, elkülönített eldobható másolatot vagy konténert és biztonsági mentést használj.

Az rm -rf parancsra adott deny szabály helyettesíti az elkülönítést?

Nem. Az illeszkedő eszközhívásokat blokkolja, nem a fájlmódosítás minden egyenértékű módját. Az értékes adatokat és éles hitelesítő adatokat tartsd az ügynök hozzáférésén kívül, és csak a feladathoz szükséges jogosultságokkal rendelkező külön adatbázis-azonosságot használj.

Összes cikk