
Hermes Agent baru saja memperbaiki bug P1 di jalur context compression. Masalahnya cukup serius untuk workflow panjang: setelah percakapan diringkas, agent dapat menganggap pesan sintetis sebagai tugas aktif, kehilangan intent asli pengguna, atau gagal menyimpan resume point secara aman ketika proses terputus.
Fix sudah masuk ke branch main pada 19 Juli 2026. Namun stable release terbaru masih Hermes Agent 0.18.2, dirilis 8 Juli 2026. Jadi pengguna stable belum otomatis mendapatkan perbaikan ini.
Status per 19 Juli 2026: perbaikan sudah ada di
main, tetapi belum tersedia dalam release/tag stable baru. Ini bukan security advisory dan tidak ada advisory publik baru di repository Hermes Agent saat audit dilakukan.
Apa yang sebenarnya rusak?
Context compression dipakai ketika percakapan agent sudah panjang. Hermes merangkum konteks lama agar agent tetap bisa melanjutkan pekerjaan tanpa mengirim seluruh riwayat ke model pada setiap turn.
Masalahnya, tidak semua pesan dengan role user benar-benar berasal dari manusia. Runtime juga dapat membuat pesan sintetis untuk menyimpan todo, recovery notice, laporan background process, atau scaffolding lain.
Bug P1 di PR #66637 menunjukkan compressor dapat keliru memperlakukan pesan sintetis atau prose hasil summarizer sebagai tugas aktif. Akibatnya, hasil compression tidak lagi berpijak pada instruksi manusia terakhir yang asli.
Dampaknya bukan sekadar ringkasan yang kurang rapi. Pada agent yang mengerjakan task panjang, konteks yang salah dapat membuat agent:
- melanjutkan pekerjaan dari tujuan yang keliru;
- kehilangan detail tugas setelah compression;
- resume dari state lama setelah proses terputus;
- membuat dua jalur state dari parent yang sama saat compression berjalan bersamaan;
- bermasalah pada model dengan template chat yang mewajibkan urutan role ketat.
Kenapa bug ini material untuk operasional?
Agent yang hanya dipakai untuk tanya-jawab pendek mungkin tidak pernah menyentuh jalur ini. Risikonya naik pada workflow yang memiliki banyak tool call, background process, todo snapshot, atau sesi yang berjalan lama.
Contoh paling mudah: pengguna meminta agent mengaudit repository, memperbaiki bug, menjalankan test, lalu membuat handoff. Setelah konteks membesar, runtime melakukan compression. Jika compressor mengambil todo sintetis atau ringkasan lama sebagai anchor, agent dapat tetap terlihat aktif tetapi melanjutkan pekerjaan berdasarkan versi tugas yang tidak lagi benar.
Ini tipe kegagalan yang berbahaya karena tidak selalu menghasilkan crash. Agent bisa tetap menjawab dengan lancar, sementara arah kerjanya sudah bergeser.
Perbaikan yang sudah masuk ke branch main
Maintainer menutup PR draft #66637 setelah mengambil dan memperkeras perubahan terkait langsung ke main. Rangkaian commit resminya mencakup beberapa guard penting.
1. Memisahkan pesan manusia dari scaffolding runtime
Hermes sekarang memakai predicate khusus untuk membedakan instruksi manusia asli dari pesan sintetis. Todo snapshot, recovery notice, truncation notice, background-process report, dan compaction summary tidak boleh lagi dianggap sebagai human anchor.
2. Menyimpan snapshot tugas terakhir secara deterministik
Hasil compression di-ground ke tugas manusia terakhir yang benar-benar terdeteksi. Tujuannya agar prose dari summarizer tidak diam-diam mengganti pekerjaan aktif.
3. Membuat handoff compression lebih durable
State hasil rotasi disimpan secara atomik. Parent yang sudah dirotasi juga tidak diproses ulang. Ini mengurangi risiko resume point hilang saat proses headless terputus atau dua compression mencoba memutar parent yang sama.
4. Menjaga urutan role tetap valid
Follow-up commit c03c247 memperbaiki kasus ketika human anchor yang dipulihkan dapat ditempatkan bersebelahan dengan pesan user sintetis. Pada model dengan strict chat template, dua role user berurutan bisa ditolak.
Perbaikan baru memilih slot yang aman atau menggabungkan anchor dengan scaffolding tanpa menghilangkan intent manusia.
5. Mencegah section summary ikut rusak saat compression berulang
Commit yang sama memperbaiki newline pada bagian Historical Task Snapshot. Tanpa batas kosong yang benar, heading berikutnya dapat menempel ke satu baris, lalu section setelahnya hilang ketika compression berikutnya berjalan.
Apakah Hermes Agent 0.18.2 terdampak?
Stable 0.18.2 dirilis pada 8 Juli 2026, sedangkan fix utama masuk ke main pada 19 Juli. Berdasarkan urutan waktu dan tag resmi, 0.18.2 belum memuat rangkaian perbaikan ini.
Namun belum ada release note resmi yang menyebut versi target fix. Jangan menganggap nomor versi berikutnya pasti 0.18.3 atau 0.19.0 sebelum tag baru benar-benar diterbitkan.
Kesimpulan yang aman:
- pengguna stable 0.18.2 sebaiknya menganggap fix belum tersedia;
- pengguna yang mengikuti
mainsudah dapat melihat perubahan, tetapimainbukan pengganti release stable untuk produksi; - upgrade sebaiknya menunggu tag resmi dan release notes yang memasukkan commit terkait.
Apa yang perlu dilakukan operator sekarang?
Jika workflow Anda pendek
Tidak perlu panik atau mengganti instalasi secara mendadak. Pantau release resmi dan hindari menjalankan upgrade dari branch development hanya untuk mengejar satu fix.
Jika Anda menjalankan task panjang
Kurangi risiko sampai stable baru tersedia:
- Pecah task besar menjadi beberapa sesi dengan acceptance criteria yang jelas.
- Simpan keputusan penting, target, file terdampak, dan next action di artifact eksternal seperti task file atau issue.
- Setelah compression atau resume, minta agent menyebutkan kembali objective aktif sebelum melanjutkan mutation penting.
- Jangan mengandalkan chat history sebagai satu-satunya source of truth untuk handoff.
- Review hasil setelah sesi panjang, terutama bila agent memakai banyak tool call atau background worker.
Jika Anda memakai build dari main
Uji di staging lebih dulu. Fokuskan test pada:
- percakapan panjang yang memicu compression beberapa kali;
- resume setelah proses dihentikan;
- todo snapshot dan background-process message;
- concurrent fork atau subagent;
- model dengan strict role alternation.
Commit di main membawa banyak perubahan lain di luar fix ini. Mengambil branch terbaru langsung ke produksi berarti menerima seluruh perubahan tersebut, bukan hanya patch compression.
Ada bug compression lain yang masih terbuka
Fix P1 ini tidak berarti seluruh area compression sudah bersih. Issue #58745 masih membahas loop compression setiap turn ketika auxiliary model punya context window lebih kecil. Dalam laporan terkait, pola ini dapat membakar token sangat besar walau sistem tetap berjalan.
Issue #63706 juga melaporkan estimasi compression pada Mixture-of-Agents belum menghitung reference guidance yang ditambahkan ke prompt aggregator. Hasilnya, prompt aktual bisa jauh lebih besar daripada estimasi preflight.
Dua issue tersebut berbeda dari bug kehilangan human anchor. Statusnya masih terbuka dan belum boleh dianggap selesai hanya karena fix #66637 sudah masuk.
Keputusan operasional
Hermes Agent tetap berkembang cepat, tetapi operator production perlu memisahkan tiga status: issue ditemukan, fix masuk main, dan fix masuk stable release. Untuk bug ini, kita baru berada di tahap kedua.
Jangan upgrade production dari main hanya karena fix terlihat penting. Tunggu tag stable baru, cek release notes atau commit range-nya, lalu uji compression dan resume di staging.
Sementara itu, simpan task state penting di luar chat dan lakukan re-confirm objective setelah sesi panjang. Itu guard paling murah untuk mencegah agent terlihat sibuk mengerjakan tujuan yang sebenarnya sudah bergeser.
Sumber primer
- PR #66637: preserve human intent and durable handoffs
- Commit c03c247: hardening anchor restoration dan historical task snapshot
- Hermes Agent 0.18.2 stable release
- Issue #58745: every-turn compression loop
- Issue #63706: MoA compression undercounts aggregator prompt
- GitHub Security Advisories Hermes Agent


