OpenClaw & AI Operasional

Bug Hermes Agent 0.19.1 Bisa Menghapus Satu Kategori Skill

Jawaban singkat: hal utama tentang Bug Hermes Agent 0.19.1 Bisa Menghapus Satu Kategori Skill adalah ini: Bug P1 Hermes Agent 0.19.1 dapat menghapus satu folder kategori skill saat terjadi bentrok nama. Pelajari dampak, mitigasi, dan status patch upstream.

Bug P1 Hermes Agent 0.19.1 dapat menghapus seluruh folder kategori saat nama skill baru bentrok. Ini penyebab, dampak, mitigasi, dan status patch upstream.

Bug Hermes Agent 0.19.1 Bisa Menghapus Satu Kategori Skill

Hermes Agent 0.19.1 punya bug data loss pada perintah instalasi skill. Jika nama skill baru sama dengan nama folder kategori yang sudah berisi banyak skill, jalur instalasi dapat menghapus seluruh folder kategori itu tanpa warning, konfirmasi khusus, atau backup. Setelah itu Hermes hanya menaruh skill baru di lokasi yang sama.

Ini bukan edge case teoritis. Laporan upstream yang terbit 1 Agustus 2026 mencatat 16 skill lain hilang saat sebuah skill bernama research dipasang ke direktori yang sebelumnya dipakai sebagai kategori research/. Source tag stabil v2026.7.30 masih memperlihatkan operasi penghapusan tersebut, dan source main per 2 Agustus 2026 juga belum memiliki guard yang mencegah benturan kategori.

Status per 2 Agustus 2026: versi stabil terbaru masih Hermes Agent 0.19.1 / v2026.7.30. Bug dilacak sebagai issue #75983 dengan label P1. Beberapa pull request perbaikan sudah terbuka, tetapi belum merge. Mitigasi di bawah ini berlaku sampai fix benar-benar masuk release stabil.

Kapan folder skill bisa terhapus

Skenarionya sederhana. Misalnya struktur skill Anda seperti ini:

~/.hermes/skills/
└── research/
 ├── competitor-analysis/
 │ └── SKILL.md
 ├── market-research/
 │ └── SKILL.md
 └── source-verification/
 └── SKILL.md

Folder research/ di sini adalah kategori. Ia tidak punya SKILL.md di level teratas, tetapi menampung beberapa skill di bawahnya.

Masalah muncul ketika operator menjalankan instalasi URL dengan nama yang sama:

hermes skills install https://example.org/research/SKILL.md --name research --yes

Tanpa kategori eksplisit, target instalasinya menjadi ~/.hermes/skills/research. Karena target sudah ada, implementasi pada tag 0.19.1 menjalankan shutil.rmtree(install_dir), lalu memindahkan skill baru ke lokasi tersebut.

Hasil akhirnya bukan kategori yang mendapat satu skill tambahan. Seluruh isi kategori lama dihapus, lalu diganti satu skill bernama research.

Kenapa konfirmasi normal tidak melindungi data

Hermes memang punya pemeriksaan sebelum reinstall, tetapi pemeriksaan itu berpatokan pada hub lock file. Ia bisa mengenali skill yang sebelumnya tercatat sebagai instalasi hub. Folder kategori manual atau kumpulan skill yang tidak tercatat sebagai satu skill bernama sama dapat lolos dari pemeriksaan tersebut.

Jalur penempatan akhir lalu hanya melihat bahwa target directory sudah ada. Pada v0.19.1, kondisi itu cukup untuk menjalankan recursive delete. Implementasinya belum membedakan dua objek yang seharusnya diperlakukan berbeda:

  • satu direktori milik skill lama yang memang akan diganti;
  • satu direktori kategori yang berisi banyak skill lain.

Flag --yes juga bukan pengaman. Ia justru membuat instalasi non-interaktif, sementara operasi penghapusan target tetap berjalan. Karena tidak ada backup bawaan pada jalur ini, pemulihan bergantung pada Git, snapshot, backup eksternal, atau salinan lain yang kebetulan tersedia.

Dampaknya lebih besar dari satu command gagal

Kerusakan utama adalah kehilangan file skill. Efek lanjutannya bisa baru terlihat setelah restart atau turn berikutnya:

  • tool atau prosedur yang sebelumnya tersedia mendadak hilang;
  • workflow terjadwal gagal karena skill tidak lagi ditemukan;
  • agent memberi jawaban berbeda karena instruksi operasional terhapus;
  • lock file dan kondisi filesystem tidak lagi menggambarkan susunan yang diasumsikan operator;
  • recovery sulit jika skill lokal belum pernah di-commit atau dibackup.

Command instalasi tetap dapat berakhir dengan pesan sukses untuk skill baru. Karena itu, operator mungkin tidak langsung sadar bahwa skill lain sudah ikut terhapus.

Mitigasi aman untuk Hermes Agent 0.19.1

1. Backup seluruh skills directory sebelum instalasi

Untuk instalasi berbasis URL atau skill pihak ketiga, snapshot direktori skill lebih dulu:

cp -a ~/.hermes/skills ~/.hermes/skills-backup-$(date +%Y%m%d-%H%M%S)

Lebih baik lagi, simpan skill buatan sendiri di repository private. Backup satu kali tidak cukup jika proses instalasi skill rutin dilakukan.

2. Periksa benturan nama pada filesystem

Sebelum memakai --name, cek apakah nama tersebut sudah menjadi file atau direktori di level target:

name="research"
find ~/.hermes/skills -maxdepth 1 -mindepth 1 -printf '%f\n' | grep -Fx -- "$name"

Kalau hasilnya ada, jangan lanjut hanya karena skill tersebut tidak terlihat sebagai item hub-installed. Periksa isi direktori secara langsung.

3. Gunakan category yang eksplisit dan tidak bentrok

Workaround upstream menyarankan --category agar skill masuk ke subdirektori yang jelas:

hermes skills install https://example.org/research/SKILL.md \
 --name research \
 --category third-party

Ini mengubah target menjadi kategori yang Anda pilih, tetapi target final tetap perlu dicek. Jangan gunakan nama kategori atau kombinasi path yang sudah dipakai oleh asset lain tanpa backup.

4. Hindari --yes saat target belum diaudit

Mode non-interaktif cocok untuk automation yang sudah punya preflight check. Ia tidak cocok dijadikan pengganti audit target directory. Untuk pipeline otomatis, buat gate yang menolak instalasi bila target sudah ada dan bukan direktori skill tunggal yang memang boleh diganti.

5. Verifikasi sesudah instalasi

Setelah command selesai, bandingkan jumlah dan daftar skill dengan snapshot sebelum instalasi:

find ~/.hermes/skills -name SKILL.md -type f | sort
hermes skills list

Jangan hanya mengecek apakah skill baru muncul. Pastikan skill lama juga masih ada.

Kalau kategori sudah terhapus

Hentikan instalasi skill berikutnya agar kondisi filesystem tidak makin berubah. Lalu lakukan recovery dari sumber yang paling dapat dipercaya:

  1. restore repository atau backup direktori skill;
  2. bandingkan hasil restore dengan susunan skill yang tersisa;
  3. periksa cron, workflow, dan config yang merujuk skill lama;
  4. jalankan hermes skills list setelah file dipulihkan;
  5. uji satu workflow penting sebelum gateway kembali dipakai normal.

Jika tidak ada backup, cek repository asal setiap skill dan riwayat shell untuk merekonstruksi daftar yang hilang. Jangan langsung menginstal ulang secara massal ke direktori yang sama sebelum benturan nama dipetakan.

Patch upstream belum boleh dianggap tersedia

Saat artikel ini ditulis, beberapa pull request mengusulkan guard sebelum rmtree. Pola umumnya adalah menolak penghapusan bila target terlihat seperti category bucket, misalnya tidak punya SKILL.md sendiri tetapi berisi skill di subdirektori.

Proposal tersebut masuk akal, tetapi semuanya masih open. Source main yang diaudit masih memiliki penghapusan tanpa guard. Artinya:

  • jangan menganggap issue berlabel atau PR terbuka sama dengan fix yang sudah rilis;
  • jangan menyalin patch acak ke produksi tanpa test;
  • cek release note dan source tag baru sebelum mencabut mitigasi;
  • tetap pertahankan backup, karena guard kategori tidak menggantikan version control.

Keputusan operasional

Jangan gunakan hermes skills install secara buta pada Hermes Agent 0.19.1, terutama dengan --name dan --yes. Perintahnya tetap bisa dipakai setelah backup dan pemeriksaan collision, tetapi risikonya terlalu besar untuk automation tanpa guard.

Bila sistem Anda sering memasang skill dari URL, pin workflow instalasi ke tiga langkah wajib: snapshot, preflight target path, lalu post-install inventory. Tunggu perbaikan merge dan masuk release stabil sebelum menjadikan instalasi skill unattended sebagai default lagi.

Referensi resmi

Lanjut membaca

Artikel yang masih relevan