Skip to content

Review 3 Skill Coding Agent di Hermes Agent: Claude Code vs OpenCode vs OpenHands

Adityo Guni Waluyo

Hermes Agent bisa mendelegasikan pekerjaan koding ke agent CLI eksternal lewat sistem skill-nya. Ada tiga skill coding agent yang paling menonjol:…

Ringkasan

Hermes Agent bisa mendelegasikan tugas koding ke tiga agent CLI dengan keunggulan berbeda: claude-code unggul di kontrol biaya dan tool per-run, opencode fleksibel ganti provider per-run, dan openhands menjalankan agent secara otonom di sandbox Docker. Pola amannya konsisten: prompt lengkap dikirim via file, kerja diarahkan ke workdir terpisah. Hermes tetap memverifikasi diff dan melakukan commit sendiri, bukan percaya klaim agent.

Hermes Agent bisa mendelegasikan pekerjaan koding ke agent CLI eksternal lewat sistem skill-nya. Ada tiga skill coding agent yang paling menonjol: claude-code, opencode, dan openhands. Artikel ini merangkum hasil pengujian ketiganya di satu instalasi Hermes yang sama — termasuk cara pemakaian yang praktis dan best practice orkestrasinya.

Konteks: bagaimana Hermes mendelegasikan koding

Hermes Agent adalah asisten AI yang berjalan di terminal dengan akses penuh ke shell, file system, dan jaringan. Salah satu pola kerjanya adalah delegasi: alih-alih menulis semua kode sendiri, Hermes menyiapkan prompt yang lengkap, mengirimkannya ke agent CLI eksternal (seperti Claude Code), lalu memverifikasi hasilnya sebelum di-commit.

Skill di Hermes adalah file markdown berisi prosedur teruji — semacam memori prosedural. Ketika tugas cocok dengan deskripsi skill, Hermes memuat skill tersebut dan mengikuti langkah-langkahnya. Untuk coding agent, skill berisi: cara instalasi, pola pemanggilan non-interaktif, penanganan dialog konfirmasi, parsing output, sampai jebakan yang udah pernah terjadi di lapangan.

Menariknya, ketiga agent ini bukan saling menggantikan. Mereka punya filosofi berbeda: Claude Code Claude Code menekankan kontrol per-aksi, OpenCode menekankan fleksibilitas provider, OpenHands menekankan otonomi penuh di dalam sandbox.

1. Skill claude-code — workhorse dengan kontrol paling halus

Apa itu: Claude Code adalah agentic coding tool dari Anthropic yang membaca codebase, mengedit file, dan menjalankan perintah, tersedia di terminal, IDE, desktop app, dan browser. Untuk pengguna pihak ketiga, CLI-nya juga mendukung provider non-Anthropic, yang berarti bisa diarahkan ke proxy OpenAI-compatible lokal.

Integrasi di Hermes: Skill claude-code (v2.2.1) adalah yang paling matang di bundel official. Dua mode orkestrasi:

  • Print mode, claude -p "tugas" --allowedTools "Read,Edit" --max-turns 10: one-shot, non-interaktif, langsung keluar setelah selesai. Ini mode utama untuk automasi karena melewati semua dialog konfirmasi.
  • Interactive mode via tmux, untuk pekerjaan multi-putaran, skill membimbing orkestrasi TUI lewat tmux send-keys dan capture-pane, termasuk urutan menekan tombol untuk dialog workspace trust dan permission.

Yang nggak dimiliki dua skill lain: kontrol biaya dan ruang lingkup per-run, --max-turns membatasi jumlah loop agent, --max-budget-usd membatasi belanja dolar per eksekusi, --effort mengatur kedalaman penalaran, dan --allowedTools/--disallowedTools membatasi tool yang boleh dipakai. Output --output-format json mengembalikan total_cost_usd, num_turns, dan session_id untuk resume.

Best practice di Hermes:

1. Satu tugas = satu perintah print mode dengan --max-turns (mulai dari 5–10) dan --allowedTools seperlunya.

2. Prompt panjang ditulis ke file, lalu dikirim sebagai input, jangan promp serampangan.

3. Agent jangan pernah commit/push; Hermes yang membaca git diff, memverifikasi, lalu commit dengan identitas yang benar.

4. Untuk proxy non-Anthropic: jangan pernah menyalakan flag tool-search milik Hermes di settings Claude Code, tool jadi deferred dan backend tertentu berhenti memancarkan tool call (tugas "selesai" secara teks tapi nol efek samping).

2. Skill opencode, fleksibilitas provider per-run

Apa itu: OpenCode adalah AI coding agent open source yang tersedia sebagai antarmuka terminal, desktop app, atau ekstensi IDE. Keunggulan utamanya: bisa memakai provider LLM apa pun cukup dengan mengonfigurasi API key-nya.

Integrasi di Hermes: Skill opencode (v1.2.0) adalah integrasi yang paling rapi secara arsitektur. Kekuatannya ada di orkestrasi sesi interaktif: Hermes menjalankan TUI-nya sebagai proses background dengan PTY, mengirim prompt via process(submit), memantau via process(poll), dan mengakhiri dengan Ctrl+C, tanpa perlu tmux manual seperti Claude Code.

Untuk tugas terbatas, opencode run "tugas" bekerja non-interaktif tanpa PTY. Flag --model provider/model mengganti model per-run tanpa rekonfigurasi, -f melampirkan file konteks, dan --auto menyetujui otomatis permission yang nggak eksplisit ditolak. Bonus: perintah opencode pr 42 bawaan untuk review PR, dan opencode stats untuk laporan pemakaian token.

Kelemahannya dibanding Claude Code: nggak ada padanan --max-budget-usd (kontrol biaya hanya laporan belakangan, bukan pembatas), nggak ada pembatasan tool per-run yang selincah --allowedTools, dan output JSON-nya berupa event stream mentah tanpa struktur hasil terkunci skema.

Best practice di Hermes:

1. Tugas bounded → opencode run; iterasi panjang → TUI background + process().

2. Jangan pernah keluar sesi TUI dengan /exit, itu membuka dialog selector; gunakan Ctrl+C.

3. Satu sesi = satu workdir; jangan bagikan workdir antar sesi paralel.

4. Cek which -a opencode bila perilaku berbeda antar terminal, bisa salah biner.

3. Skill openhands, otonom penuh di dalam kurungan Docker

Apa itu: OpenHands (dahulu OpenDevin) adalah platform agent koding open source berlisensi MIT. Proyeknya kini berkembang menjadi "Agent Canvas": control center self-hosted yang bisa menjalankan OpenHands, Claude Code, Codex, Gemini, atau agent apa pun yang kompatibel ACP (Agent-Client Protocol) lintas backend lokal, Docker, VM, dan cloud.

Integrasi di Hermes: Skill openhands (v0.1.0, tersedia di optional-skills) membungkus mode headless-nya: openhands --headless --json --override-with-envs --exit-without-confirmation -t "tugas". Perbedaannya dengan dua skill lain mendasar: headless langsung menyetujui semua aksi tanpa gerbang permission . Otonomi per-aksinya penuh. Pagarnya bukan permission, melainkan isolasi: agent bekerja di dalam sandbox Docker, jadi edit file, install dependensi, dan perintah shell terjadi di container, bukan di mesin host.

Model dikonfigurasi via env LLM_MODEL, LLM_API_KEY, LLM_BASE_URL dengan slug LiteLLM (contoh: openai/gpt-4o-mini, openrouter/anthropic/claude-sonnet-4.5), dan flag --override-with-envs wajib, karena tanpanya CLI mengabaikan env dan hang di layar setup pertama. Output JSONL memancarkan setiap aksi dan observasi sebagai event terpisah yang bisa diaudit atau di-replay.

Versi CLI 1.16.0 di PyPI mengunci Python persis ==3.12.*, instalasinya berat (±200 paket), dan direkomendasikan lewat uv tool install openhands agar terisolasi dari environment project.

Best practice di Hermes:

1. Selalu set workdir terminal ke folder khusus/throwaway yang sudah git init, itulah rumah agent.

2. Tugas ditulis lengkap ke file, dikirim via -f task.md.

3. Runtime Docker untuk eksplorasi; runtime lokal hanya untuk repo yang sudah aman.

4. Hermes tetap yang memverifikasi diff dan commit, agent nggak menyentuh git remote.

5. Bersihkan ~/.openhands/conversations/ secara berkala bila sering menjalankan batch.

Perbandingan langsung

Perbandingan 1: claude-code, opencode, openhands

  • Mode non-interaktif: claude -p vs opencode run vs --headless -t/-f
  • Kontrol biaya per-run: ✅ --max-budget-usd, --max-turns, --effort vs ❌ (hanya stats pasca-run) vs ❌
  • Pembatasan tool per-run: ✅ --allowedTools vs Terbatas (--agent) vs ❌ (auto-approve)
  • Isolasi sandbox: ❌ (jalan langsung) vs ❌ (jalan langsung) vs ✅ Docker
  • Output terstruktur: JSON + JSON schema vs JSONL event vs JSONL event kaya
  • Multi-provider: Via proxy Anthropic-compatible vs ✅ per-run --model vs ✅ via LiteLLM
  • Ganti model per-run: ❌ (per setting) vs ✅ vs ✅
  • Sesi interaktif dari Hermes: tmux send-keys vs process(submit/poll) native vs Headless saja (TUI bukan untuk automasi)
  • Status di instalasi uji: Terpasang, teruji produksi vs Skill terpasang, belum dipakai vs Optional, perlu instal CLI

Best practice orkestrasi yang berlaku untuk ketiganya

Pola aman yang sama, apa pun agentnya:

1. Enhance dulu, delegasi kemudian. Pahami maksud tugas; kalau ambigu, bertanya, jangan mengirim prompt tebakan. Prompt yang dikirim ke agent harus lengkap: konteks, tujuan, batasan, dan definisi selesai.

2. Prompt via file, bukan argumen panjang. Konsisten dan bisa di-review ulang sebelum eksekusi.

3. Kurungkan ruang kerja. Workdir khusus + git init. Dengan OpenHands tambahkan sandbox Docker; dengan Claude Code/OpenCode tambahkan whitelist tool.

4. Git tetap di tangan orkestrator. Agent mengerjakan file; verifikasi diff dan commit/push dilakukan Hermes dengan identitas repo yang benar.

5. Verifikasi hasil, bukan percaya klaim. Jalankan test, cek output, untuk UI jalankan dan lihat secara visual. Baru commit.

6. Batasi ledakan biaya. Di Claude Code pakai --max-turns/--max-budget-usd; di OpenCode/OpenHands batasi lewat prompt yang tegas dan tugas yang bounded.

7. Laporkan biaya. JSON output Claude Code memuat total_cost_usd; biasakan menyertakan angka itu di laporan.

Pilih berdasarkan pekerjaan, bukan popularitas

  • Kerja harian dengan kontrol ketat dan biaya terukur: claude-code. Paling matang, kontrol biaya per-run paling ketat, dan terbukti di produksi.
  • Butuh ganti-ganti model per tugas atau sesi interaktif panjang: opencode. Orkestrasi PTY-nya paling bersih.
  • Tugas eksploratif yang butuh lingkungan buang-buangan: openhands. Satu-satunya yang mengkurung agent di Docker; otonomi penuh justru aman karena kursinya yang ketat.

Ketiganya kompatibel dengan filosofi yang sama di sisi Hermes: agent boleh bebas memutuskan langkah, tetapi kurungan, verifikasi, dan kontrol versi tetap di tangan manusia lewat orkestratornya.

Sumber

1. Claude Code Overview, Anthropic Docs, definisi Claude Code; dukungan third-party provider di CLI/VS Code/JetBrains.

2. OpenCode Docs, Intro, "OpenCode is an open source AI coding agent"; provider apa pun via API key.

3. OpenCode Docs, CLI, run, flag --model provider/model, --auto.

4. OpenHands Docs, CLI Command Reference, --headless, --json, --override-with-envs, --always-approve.

5. OpenHands README (GitHub main), Agent Canvas, dukungan agent ACP lintas backend.

6. OpenHands LICENSE (GitHub main), The MIT License.

7. OpenHands di PyPI, versi 1.16.0; requires_python ==3.12.*.

Klaim internal tentang Hermes Agent (versi skill, status terpasang, pola orkestrasi) bersumber dari observasi langsung instalasi penulis, bukan dari sumber daring.

Artikel terkait