
Emma Foster
Machine Learning Engineer

Ketika agen AI Anda menjelajahi web untuk Anda, CAPTCHA adalah penghalang utama. Halaman yang dilindungi memblokir agen, formulir menolak untuk mengirimkan, dan tugas terhenti menunggu intervensi manusia.
Hermes Agent oleh Nous Research adalah agen AI yang terus meningkatkan diri yang berjalan di mana saja — dari VPS $5 hingga klaster GPU — dan mencapai Anda di setiap saluran yang sudah Anda gunakan: Telegram, Discord, Slack, WhatsApp, Signal, dan email. Ia juga dapat menggerakkan browser untuk menelusuri halaman, mengklik tombol, mengisi formulir, dan mengekstrak data atas nama Anda. Tapi seperti agen yang menggerakkan browser lainnya, ia terjebak pada CAPTCHA.
CapSolver mengubah ini secara total. Dengan memuat ekstensi CapSolver Chrome ke dalam browser yang dihubungkan oleh Hermes, CAPTCHA diselesaikan secara otomatis dan tidak terlihat di latar belakang. Tidak ada kode. Tidak ada panggilan API dari sisi Anda. Tidak ada latihan engineering prompt.
Bagian terbaiknya? Anda bahkan tidak perlu menyebutkan CAPTCHA kepada agen. Anda hanya perlu memberinya instruksi untuk menunggu sejenak sebelum mengirimkan — dan ketika ia mengklik Kirim, CAPTCHA sudah terselesaikan.
Hermes Agent adalah agen AI otonom sumber terbuka yang dibuat oleh Nous Research. Ia dirancang berdasarkan tiga prinsip: memori yang tetap (ia mengingat Anda dan proyek Anda di antara sesi), pembuatan keterampilan otonom (ia belajar prosedur dari pengalaman dan memainkannya kembali pada kesempatan berikutnya), dan fleksibilitas infrastruktur (jalankan di VPS kecil, kontainer Docker, sandbox serverless, atau komputer GPU Anda sendiri).

hermes modelHermes dapat menggerakkan browser Chromium untuk melakukan pekerjaan nyata — menelusuri, membaca DOM, mengklik, mengetik, mengambil screenshot, dan menggali data. Lapisan alat browser Hermes unik dalam satu cara khusus: alih-alih memaksa Anda ke satu backend, Hermes mendukung lima penyedia browser yang bisa dipertukarkan:
| Penyedia | Jenis | Ekstensi? |
|---|---|---|
| Browserbase | Cloud | ✗ |
| Browser Use | Cloud | ✗ |
| Firecrawl | Cloud | ✗ |
| Camoufox | Lokal (Firefox stealth) | ✗ |
| CDP attach | Lokal (semua Chromium) | ✓ |
Penyedia cloud tidak dapat memuat ekstensi — Anda tidak mengontrol browser jarak jauh. Camoufox berbasis Firefox dan tidak dapat menjalankan ekstensi Chrome MV3. Titik integrasi yang bersih adalah yang kelima: CDP attach, di mana Hermes terhubung ke Chromium Anda yang telah Anda jalankan secara terpisah. Itulah tempat CapSolver masuk.
Ini model yang berbeda dibanding alat seperti OpenClaw (yang memulai Chromium sendiri dan menerima array browser.extensions) atau Crawlee (di mana Anda mengontrol bendera launch Playwright). Dengan Hermes, Anda bawa Chromium sendiri dengan ekstensi yang sudah dimuat, dan Hermes terhubung ke itu melalui protokol DevTools.
CapSolver adalah layanan penyelesaian CAPTCHA terkemuka yang menyediakan solusi berbasis AI untuk mengatasi tantangan CAPTCHA modern. Dengan dukungan untuk setiap jenis CAPTCHA utama dan respons cepat, CapSolver terintegrasi secara mulus ke dalam alur kerja otomatis — baik Anda menggerakkan browser melalui Playwright, memanggil API-nya secara langsung, atau, seperti dalam panduan ini, menjalankan ekstensi Chrome-nya di dalam sesi browser agen.
Kebanyakan integrasi penyelesaian CAPTCHA membutuhkan Anda menulis kode — membuat panggilan API, memantau hasil, menyisipkan token ke bidang formulir tersembunyi. Itu cara kerjanya dengan alat seperti Crawlee, Puppeteer, atau Playwright.
Hermes + CapSolver berbeda secara fundamental:
| Tradisional (Berdasarkan kode) | Hermes (Bahasa Alami) |
|---|---|
Tulis kelas CapSolverService |
Mulai Chrome sekali dengan --load-extension=... |
Panggil createTask() / getTaskResult() |
Cukup berbicara dengan agen Anda |
Sisipkan token melalui page.$eval() |
Ekstensi menangani semuanya |
| Tangani kesalahan, ulang, timeout dalam kode | Katakan ke agen untuk "tunggu 60 detik, lalu kirim" |
| Kode berbeda untuk setiap jenis CAPTCHA | Berfungsi untuk semua jenis secara otomatis |
Insight kunci: Ekstensi CapSolver berjalan di dalam browser yang terhubung. Hermes terhubung ke browser itu melalui CDP dan menggerakkannya secara normal. Ketika agen menelusuri halaman dengan CAPTCHA, ekstensi — berjalan di Chrome yang sama, sama sekali tidak terlihat bagi agen — mendeteksi widget, memanggil API CapSolver, dan menyisipkan token solusi ke halaman. Ketika agen mengklik Kirim, formulir sudah memiliki token yang valid.
Anda hanya perlu memberinya waktu. Alih-alih memberi tahu agen untuk "selesaikan CAPTCHA", Anda cukup berkata:
"Pergi ke halaman itu, tunggu 60 detik, lalu klik Kirim."
Itu saja. Agen tidak perlu tahu bahwa CapSolver ada.
Sebelum mengatur integrasi, pastikan Anda memiliki:
Google Chrome 137+ (dirilis pertengahan 2025) secara diam-diam menghapus dukungan untuk
--load-extensiondalam build yang diberi merek. Ini berarti ekstensi Chrome tidak dapat dimuat dalam sesi otomatis menggunakan Google Chrome standar. Tidak ada kesalahan — flag itu hanya diabaikan.
Ini memengaruhi Google Chrome dan Microsoft Edge. Anda harus menggunakan salah satu alternatif berikut:
| Browser | Pemuatan Ekstensi | Direkomendasikan? |
|---|---|---|
| Google Chrome 137+ | Tidak didukung | Tidak |
| Microsoft Edge | Tidak didukung | Tidak |
| Chrome untuk Pengujian | Didukung | Ya |
| Chromium (statis) | Didukung | Ya |
| Chromium yang dikemas oleh Playwright | Didukung | Ya |
Cara menginstal Chrome untuk Pengujian:
# Opsi 1: Melalui Playwright (direkomendasikan — Hermes sudah menggunakan Playwright secara internal)
npx playwright install chromium
# Biner akan berada di jalur seperti:
# ~/.cache/ms-playwright/chromium-XXXX/chrome-linux64/chrome (Linux)
# ~/Library/Caches/ms-playwright/chromium-XXXX/chrome-mac/Chromium.app/Contents/MacOS/Chromium (macOS)
# Opsi 2: Melalui unduhan langsung Chrome untuk Pengujian
# Kunjungi: https://googlechromelabs.github.io/chrome-for-testing/
# Unduh versi yang sesuai dengan sistem operasi Anda
Setelah instalasi, catat jalur lengkap ke biner — Anda akan membutuhkannya di langkah berikutnya.
Integrasi ini memiliki dua bagian yang bekerja bersama:
9222).config.yaml Hermes untuk memberitahu agen itu menghubung ke port CDP tersebut alih-alih memulai browser sendiri.Itu saja — tidak ada kode, tidak ada perbaikan Hermes.
Unduh ekstensi Chrome CapSolver dan ekstrak ke lokasi yang stabil:
CapSolver.Browser.Extension-chrome-vX.X.X.zip terbarumkdir -p ~/.hermes/capsolver-extension
unzip CapSolver.Browser.Extension-chrome-v*.zip -d ~/.hermes/capsolver-extension/
ls ~/.hermes/capsolver-extension/manifest.json
Anda harus melihat manifest.json — ini memastikan ekstensi berada di tempat yang benar.
Tips jalur: Gunakan jalur mutlak, terurai (bukan
~) ketika Anda memberikan--load-extension=...ke Chrome nanti. Beberapa build Chrome MV3 memiliki kasus tepi di mana layanan kerja ekstensi gagal terdaftar melalui symlink di direktori user-data khusus. Jika Anda menyimbolkan ekstensi dari lokasi lain, gunakanreadlink -funtuk menguraikan jalur sebenarnya dan gunakan itu.
Buka file konfigurasi ekstensi di ~/.hermes/capsolver-extension/assets/config.js dan ganti nilai apiKey dengan kunci Anda sendiri:
export const defaultConfig = {
apiKey: 'CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // ← masukkan kunci Anda di sini
useCapsolver: true,
enabledForRecaptcha: true,
enabledForRecaptchaV3: true,
// ... sisa konfigurasi
};
Anda dapat mendapatkan kunci API dari dashboard CapSolver.
Ini adalah langkah kunci. Kita menjalankan Chrome sekali, secara terpisah dari Hermes, dengan tiga flag krusial:
--remote-debugging-port=9222 — mengekspos protokol DevTools sehingga Hermes dapat terhubung--load-extension=... — memuat ekstensi CapSolver sebelumnya--user-data-dir=... — menggunakan profil khusus agar tidak bertabrakan dengan Chrome pribadi AndaHermes memiliki konvensi bawaan untuk direktori user-data: ~/.hermes/chrome-debug. Menggunakan jalur ini berarti perintah /browser connect dalam aplikasi Hermes juga "bekerja" tanpa tambahan bendera.
/path/to/chrome-for-testing/chrome \
--remote-debugging-port=9222 \
--remote-debugging-address=127.0.0.1 \
--user-data-dir="$HOME/.hermes/chrome-debug" \
--load-extension="$HOME/.hermes/capsolver-extension" \
--disable-extensions-except="$HOME/.hermes/capsolver-extension" \
--no-first-run \
--no-default-browser-check \
--no-sandbox
Ganti /path/to/chrome-for-testing/chrome dengan biner yang sebenarnya, contohnya ~/.cache/ms-playwright/chromium-1200/chrome-linux64/chrome.
Server headless: Jika Anda menjalankannya di server Linux tanpa layar fisik (VPS, EC2, dll.), lihat bagian Best Practices di bawah untuk pengaturan
Xvfb. Sistem ekstensi Chrome membutuhkan konteks layar.
Untuk setiap pengaturan yang bertahan lebih dari satu pengujian, bungkus perintahnya dalam skrip shell kecil agar Anda bisa menjalankan Chrome di latar belakang, memulai ulang dengan bersih, dan mengawasi dengan manajer proses apa pun yang sudah Anda gunakan (systemd, supervisor, runit, OpenRC, Docker, dll.).
Simpan ini sebagai ~/.hermes/chrome-debug.sh dan beri izin eksekusi:
#!/usr/bin/env bash
# ~/.hermes/chrome-debug.sh
# Memulai Chrome-for-Testing dengan ekstensi CapSolver yang sudah dimuat
# dan CDP yang terbuka di 127.0.0.1:9222.
CHROME_BIN="$HOME/.cache/ms-playwright/chromium-1200/chrome-linux64/chrome"
EXT_DIR="$HOME/.hermes/capsolver-extension"
USER_DATA_DIR="$HOME/.hermes/chrome-debug"
export DISPLAY=:99 # untuk Linux headless — lihat Best Practices
exec "$CHROME_BIN" \
--remote-debugging-port=9222 \
--remote-debugging-address=127.0.0.1 \
--user-data-dir="$USER_DATA_DIR" \
--load-extension="$EXT_DIR" \
--disable-extensions-except="$EXT_DIR" \
--no-first-run \
--no-default-browser-check \
--no-sandbox \
--disable-dev-shm-usage \
--disable-features=Translate
Cara paling sederhana untuk menjalankan secara tetap adalah:
nohup ~/.hermes/chrome-debug.sh > /tmp/chrome-debug.log 2>&1 &
Untuk produksi, awasi skrip dengan manajer proses yang Anda sukai. Unit systemd minimal di ~/.config/systemd/user/chrome-debug.service:
[Unit]
Description=Chrome yang dilengkapi CapSolver untuk Hermes Agent
After=network.target
[Service]
ExecStart=%h/.hermes/chrome-debug.sh
Restart=always
RestartSec=5
[Install]
WantedBy=default.target
Kemudian:
systemctl --user daemon-reload
systemctl --user enable --now chrome-debug
Pengaturan yang setara (program supervisord, layanan runit, kontainer Docker, dll.) berjalan identik — integrasi hanya peduli bahwa sesuatu menjaga chrome-debug.sh berjalan.
Edit konfigurasi Hermes Anda di ~/.hermes/config.yaml. Cari bagian browser: (biasanya hanya memiliki inactivity_timeout) dan tambahkan cdp_url:
browser:
inactivity_timeout: 120
cdp_url: http://127.0.0.1:9222
Baris tunggal ini memberi tahu alat browser_cdp Hermes untuk mengarahkan semua operasi browser melalui instance Chrome yang telah Anda jalankan di Langkah 3, bukan memulai browser sendiri.
Reversibilitas: Ini adalah satu-satunya perubahan pada Hermes. Untuk memulihkan, hapus baris
cdp_url. Hermes kembali ke penyedia browser defaultnya (Browserbase, Browser Use, dll.) tanpa efek samping lainnya.
Jika Hermes sudah berjalan, restart agar mengambil cdp_url baru:
# Berjalan langsung (foreground atau di bawah supervisor Anda):
hermes gateway run
# Atau restart melalui manajer proses apa pun yang Anda gunakan untuk mengawasi Hermes —
# satu-satunya persyaratan adalah bahwa lingkungan/konfigurasi baru berlaku.
Hermes menyertakan perintah diagnostik bawaan yang memeriksa semua bagian integrasi dalam satu langkah:
hermes doctor
Anda mencari sinyal-sinyal ini:
◆ Ketersediaan Alat
✓ browser-cdp ← CDP attach sedang aktif
✓ browser
...
◆ Konektivitas API
Memeriksa API OpenRouter... ✓ API OpenRouter
Jika browser-cdp muncul di bawah Ketersediaan Alat, Hermes telah mendeteksi titik akhir CDP Anda dan integrasi telah terhubung dengan benar. Jika tidak muncul, Hermes secara diam-diam menonaktifkan alat tersebut (tidak ada kesalahan) — itu adalah diagnostik yang perlu Anda perhatikan.
Anda juga dapat memverifikasi bahwa Chrome dapat diakses secara langsung:
curl -s http://127.0.0.1:9222/json/version
Sebuah respons seperti berikut mengonfirmasi bahwa CDP aktif:
{
"Browser": "Chrome/<versi Anda>",
"Protocol-Version": "1.3",
"webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/..."
}
Mengenai visibilitas service worker CapSolver: service worker Chrome MV3 berhenti aktif secara agresif, dan pada versi Chrome terbaru, /json/list mungkin tidak menampilkan mereka sama sekali bahkan saat mereka sedang berjalan. Ketidakhadiran di /json/list bukan indikasi diagnostik — konfirmasi bahwa CapSolver berjalan dengan membuka halaman reCAPTCHA nyata melalui agen dan mengamati hasil widget di halaman, bukan dengan memeriksa daftar target.
Ini adalah bagian yang paling penting. Setelah setup selesai, menggunakan CapSolver dengan Hermes adalah sangat sederhana.
Jangan menyebut CAPTCHA atau CapSolver kepada agen. Beri waktu saja sebelum mengirim formulir.
Agen tidak perlu mengetahui tentang CAPTCHA. Ekstensi menangani semuanya di latar belakang. Yang perlu Anda lakukan hanyalah menyertakan waktu tunggu dalam instruksi Anda sehingga ekstensi memiliki waktu untuk menyelesaikan tantangan sebelum formulir dikirim.
Mode satu kali Hermes (hermes -z "...") ideal untuk menguji integrasi. Jalankan ini dari terminal mana pun di mana CLI hermes tersedia:
hermes -z 'Buka https://www.google.com/recaptcha/api2/demo. Tunggu 60 detik untuk halaman selesai dirender. Lalu klik tombol yang bertuliskan "Kirim!" atau dengan id "recaptcha-demo-submit". Setelah mengklik, tunggu 5 detik dan beri tahu saya teks yang terlihat di halaman.'
Apa yang terjadi di balik layar:
g-recaptcha-responseString "Verifikasi Berhasil... Hooray!" adalah pesan konfirmasi dari Google — hanya muncul ketika token reCAPTCHA yang valid dikirim bersama formulir.
Kirim ini dari saluran mana pun yang terhubung ke gateway Hermes (Telegram, Discord, Slack, dll.):
Pergi ke https://example.com/login, isi bidang email dengan
"me@example.com" dan bidang kata sandi dengan "mypassword123",
kemudian tunggu 30 detik dan klik tombol Masuk.
Beritahu saya halaman apa yang muncul setelah masuk.
Hermes akan mengarahkan permintaan ke agennya, terhubung ke Chrome yang sama, mengisi formulir, memberi waktu ekstensi untuk menyelesaikan CAPTCHA di halaman login, mengklik Masuk, dan menjawab dengan apa pun yang ditampilkan halaman setelah login — tanpa pernah menyebutkan CAPTCHA.
Buka https://example.com/contact dan isi formulir kontak:
- Nama: "John Doe"
- Email: "john@example.com"
- Pesan: "Halo, saya punya pertanyaan tentang layanan Anda."
Tunggu 45 detik, lalu klik Kirim Pesan.
Apa konfirmasi yang muncul di halaman?
| Jenis CAPTCHA | Waktu Penyelesaian Rata-rata | Waktu Tunggu yang Direkomendasikan |
|---|---|---|
| reCAPTCHA v2 (checkbox) | 5–15 detik | 30–60 detik |
| reCAPTCHA v2 (tidak terlihat) | 5–15 detik | 30 detik |
| reCAPTCHA v3 | 3–10 detik | 20–30 detik |
| CAPTCHA AWS WAF | 5–15 detik | 30 detik |
Tips: Ketika ragu, gunakan 60 detik. Lebih baik menunggu sedikit lebih lama daripada mengirim terlalu dini. Waktu tambahan ini hampir gratis — tagihan CapSolver Anda per penyelesaian, bukan per detik.
Berikut adalah frasa yang telah terbukti dapat digunakan di semua saluran Hermes:
Hindari frasa ini — dapat membingungkan agen dan telah teramati menyebabkan penolakan pada beberapa model yang diatur keamanannya (terutama keluarga GLM):
Untuk yang tertarik secara teknis, berikut adalah arsitektur:
Pesan Anda Gateway Hermes
──────────────────────────────────────────────────────────
"pergi ke halaman, ──► Agen Hermes menerima pesan
tunggu 60s, kirim" │
▼
browser_cdp / alat browser
│ (terhubung melalui WebSocket
│ ke ws://127.0.0.1:9222)
▼
┌────────────────────────────────────┐
│ chrome-debug Chromium (latar belakang)│
│ │
│ ┌───────────────────────────────┐ │
│ │ Ekstensi CapSolver MV3 │ │
│ │ (dimuat via --load-extension; │ │
│ │ memerlukan Chrome untuk Pengujian │ │
│ │ atau Chromium — Chrome berbranding │ │
│ │ 137+ mengabaikan flag ini) │ │
│ │ │ │
│ │ 1. skrip konten mendeteksi CAPTCHA │
│ │ 2. worker layanan memanggil API CapSolver │
│ │ 3. token diterima │ │
│ │ 4. token dimasukkan ke bidang formulir │ │
│ └───────────────────────────────┘ │
└────────────────────────────────────┘
│
▼
Agen Hermes menunggu 60 detik...
│
▼
browser_cdp: klik Submit
│
▼
Form dikirim DENGAN token yang valid
│
▼
Halaman konfirmasi setelah mengirim
Lapisan alat browser Hermes dibangun di sekitar lima penyedia yang dapat dipertukarkan (Browserbase, Browser Use, Firecrawl, Camoufox, Chromium tanpa tampilan). Tiga dari penyedia ini adalah cloud — Anda tidak mengontrol biner browser, jadi tidak ada tempat untuk menempatkan flag --load-extension. Satu (Camoufox) berbasis Firefox. Kelima — keterhubungan CDP — adalah satu-satunya titik di mana Chromium yang dikontrol pengguna dapat dihubungkan.
Perbandingan ini sangat baik: Hermes tetap portabel ke cloud secara default, tetapi saat Anda ingin kekuatan super di sisi browser (CapSolver, pemblokir iklan Anda sendiri, alat MV3 kustom, cookie yang tetap, apa pun yang Anda butuhkan), Anda menjalankan Chrome sendiri dan mengarahkan Hermes kepadanya. Satu baris konfigurasi. Total kontrol.
--load-extension Secara SebenarnyaKetika Chrome dimulai dengan --load-extension=/path/to/ekstensi, direktori tersebut dianggap sebagai ekstensi yang tidak dikemas — mekanisme yang sama yang digunakan Chrome dalam mode pengembang. Manifest ekstensi, skrip konten, dan worker layanan semuanya didaftarkan persis seperti jika Anda menginstalnya dari Chrome Web Store. Tidak ada perbedaan sandboxing, tidak ada akses API yang terbatas — ini adalah ekstensi yang sepenuhnya berwenang.
Ekstensi CapSolver kemudian mengambil alih sisa prosesnya:
assets/config.js, mengirim detail tantangan, dan memantau tokenAgen Hermes tidak terlibat sama sekali — ia melihat halaman biasa, menunggu waktu yang Anda berikan, dan mengirim. Halaman tersebut hanya kebetulan memiliki token yang valid.
Catatan lingkungan: Hindari
--disable-background-networkingdalam flag Chrome Anda. Ini menghentikan XHR/fetch keluar dari worker layanan CapSolver — jadi ekstensi tidak pernah bisa mengakses API CapSolver. Resep di Langkah 3 secara sengaja mengabaikannya.
~/.hermes/config.yamlPerubahan yang hanya diperlukan adalah menambahkan cdp_url di bawah blok browser::
browser:
inactivity_timeout: 120
cdp_url: http://127.0.0.1:9222
--load-extensionKumpulan lengkap flag yang harus Anda berikan ke Chrome:
| Flag | Tujuan |
|---|---|
--remote-debugging-port=9222 |
Mengekspos CDP pada port TCP 9222 (diperlukan agar Hermes terhubung) |
--remote-debugging-address=127.0.0.1 |
Mengikat CDP hanya ke loopback (keamanan — jangan pernah mengekspos CDP secara publik) |
--user-data-dir=$HOME/.hermes/chrome-debug |
Profil khusus yang tidak akan bertabrakan dengan Chrome pribadi Anda |
--load-extension=/abs/path/to/capsolver-extension |
Ekstensi yang sebenarnya untuk dimuat |
--disable-extensions-except=/abs/path/to/capsolver-extension |
Tambahan — hanya muat ekstensi ini |
--no-first-run --no-default-browser-check |
Melewati wizard pengaturan Chrome |
--no-sandbox |
Menonaktifkan sandbox Chrome. Dokumen Chromium menandai ini sebagai "hanya untuk pengujian", tetapi ini adalah solusi standar untuk lingkungan Linux/Docker tanpa tautan pengguna / kemampuan SYS_ADMIN untuk mengatur sandbox dengan benar. |
--disable-dev-shm-usage |
Hindari masalah /dev/shm dalam container |
assets/config.jsKonfigurasi minimum di ~/.hermes/capsolver-extension/assets/config.js:
export const defaultConfig = {
apiKey: 'CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
useCapsolver: true,
enabledForRecaptcha: true,
enabledForRecaptchaV3: true,
// ... lihat dokumentasi CapSolver untuk daftar lengkap toggle
};
hermes doctor tidak menampilkan browser-cdp di Ketersediaan AlatGejala: Setelah merestart Hermes, alat browser-cdp hilang dari output hermes doctor.
Penyebab: Hermes hanya mendaftarkan browser-cdp ketika endpoint CDP dikonfigurasi — baik itu browser.cdp_url yang diatur di config.yaml, variabel lingkungan BROWSER_CDP_URL, atau sesi /browser connect yang aktif. Pemeriksaan ini adalah keberadaan konfigurasi, bukan ketersediaan (lihat tools/browser_cdp_tool.py:_browser_cdp_check). Penyebab paling umum alat browser-cdp yang hilang adalah kesalahan pengetikan atau penempatan yang salah pada kunci di config.yaml, bukan Chrome yang tidak bisa diakses.
Perbaikan:
# 1. Pastikan kunci secara benar berada di bawah "browser:" (bukan di level atas)
grep -A2 '^browser:' ~/.hermes/config.yaml
# output yang diharapkan:
# browser:
# ...
# cdp_url: http://127.0.0.1:9222
# 2. Pastikan Chrome benar-benar aktif di endpoint tersebut
curl -s http://127.0.0.1:9222/json/version
# 3. Jika Chrome mati, periksa log chrome-debug:
tail -n 30 /tmp/chrome-debug.log # atau: journalctl --user -u chrome-debug -n 30
Gejala: Chrome berjalan dengan bersih tetapi CAPTCHA tidak pernah diselesaikan — semua pengiriman gagal.
Penyebab: Anda menggunakan Chrome berbranding 137+, yang secara diam-diam mengabaikan --load-extension.
Perbaikan: Ganti dengan Chrome for Testing atau Chromium. Verifikasi biner Anda:
/path/to/chrome Anda --version
# Chrome for Testing: "Chromium 143.0.7499.4"
# Chrome berbranding: "Google Chrome 143.0.7499.109" ← tidak akan berjalan
Kemungkinan penyebab:
--disable-background-networking di argumen Chrome Anda (membunuh panggilan API ekstensi keluar)Gejala: Tindakan browser pertama setelah restart Hermes mengalami timeout, tetapi tindakan berikutnya berjalan baik.
Penyebab: Handshake CDP saat startup dingin terkadang melebihi timeout alat default Hermes. Tindakan berikutnya menggunakan WebSocket yang sudah panas dan cepat.
Perbaikan: Ulangi perintah sekali. Jika masih terjadi, tingkatkan browser.inactivity_timeout di config.yaml.
Gejala: Setelah beralih dari versi Chrome yang satu ke yang lain, Chrome crash dengan kesalahan cache disk.
Penyebab: Direktori user-data dibuat oleh versi Chrome yang berbeda dan sekarang tidak kompatibel.
Perbaikan:
# 1. Hentikan proses chrome-debug saat ini (bagaimana pun Anda mengawasi)
pkill -f "remote-debugging-port=9222"
# 2. Hapus profil yang tidak lagi valid
rm -rf ~/.hermes/chrome-debug
# 3. Restart chrome-debug (melalui manajer proses Anda, atau jalankan ulang skrip)
nohup ~/.hermes/chrome-debug.sh > /tmp/chrome-debug.log 2>&1 &
/json/listGejala: curl http://127.0.0.1:9222/json/list hanya mengembalikan entri page, tidak ada service_worker.
Penyebab: Worker layanan Chrome MV3 berhenti aktif secara agresif, dan pada versi Chrome terbaru, endpoint /json/list mungkin tidak menampilkan mereka sama sekali — bahkan saat mereka sedang menangani peristiwa secara aktif.
Perbaikan: Ini bukan indikasi diagnostik. Jangan mengandalkan /json/list untuk memverifikasi bahwa CapSolver dimuat. Sebaliknya, arahkan agen ke halaman yang dilindungi reCAPTCHA nyata (misalnya https://www.google.com/recaptcha/api2/demo) dan amati apakah pengiriman formulir berhasil. Pengiriman yang berhasil adalah bukti bahwa ekstensi dimuat dan menyelesaikan tantangan; ketidakhadiran entri daftar target bukanlah sinyal kegagalan.
Waktu tunggu yang lebih lama selalu lebih aman. CAPTCHA biasanya diselesaikan dalam 5–20 detik, tetapi latensi jaringan, tantangan kompleks, atau ulangan bisa menambah waktu. 30–60 detik adalah titik optimal.
Alih-alih:
"Navigasi ke URL, tunggu solver CAPTCHA, lalu kirim"
Gunakan:
"Pergi ke URL, tunggu sekitar satu menit, lalu kirim formulir"
Pengucapan alami bekerja lebih baik dengan agen dan cenderung lebih ramah dengan model yang telah disesuaikan keamanannya — pengucapan yang bersifat adversarial di sekitar CAPTCHA telah teramati menyebabkan penolakan pada beberapa model GLM-class.
Setiap penyelesaian CAPTCHA memakan kredit. Periksa saldo Anda di capsolver.com/dashboard secara teratur untuk menghindari gangguan.
Jangan pernah mengarahkan --user-data-dir ke profil Chrome asli Anda. Gunakan ~/.hermes/chrome-debug (yang juga dituju oleh /browser connect bawaan Hermes secara default). Dengan demikian, browser agen sepenuhnya terisolasi dari penjelajahan pribadi Anda.
--remote-debugging-address=127.0.0.1 adalah tidak opsional dalam produksi. Protokol DevTools Chrome memberikan kontrol penuh terhadap browser kepada siapa pun yang dapat mengakses port tersebut. Jangan pernah memperlihatkan port 9222 ke jaringan publik.
Xvfb di Server HeadlessChrome extensions memerlukan konteks tampilan, bahkan ketika Anda tidak ingin melihat browser. Di server Linux tanpa layar fisik, jalankan layar virtual:
# Instal Xvfb (Ubuntu/Debian)
sudo apt-get install xvfb
# Mulai layar virtual
Xvfb :99 -screen 0 1920x1080x24 &
# Beri tahu Chrome untuk menggunakannya (launcher chrome-debug.sh di atas sudah mengatur DISPLAY=:99)
export DISPLAY=:99
Jika Anda menggunakan launcher chrome-debug.sh dari Langkah 3, baris export DISPLAY=:99 di bagian atas sudah menangani ini — pastikan Xvfb :99 berjalan di host.
Perintah chrome & yang tidak terstruktur akan mati ketika shell induknya keluar, ketika Chrome crash, atau ketika server direboot. Bungkus pemanggilan dengan chrome-debug.sh (Langkah 3) dan pantau dengan manajer proses yang sudah Anda gunakan untuk bagian lain dari stack Anda — systemd, supervisord, runit, Docker, dll. Integrasi ini tidak bergantung pada manajer proses; pilih yang sudah berjalan di server Anda.
Karena model tidak pernah melihat CAPTCHA — ekstensi menyelesaikannya secara diam-diam — Anda tidak perlu menggunakan model terdepan untuk pekerjaan yang banyak CAPTCHA. Model yang murah dan memiliki kemampuan alat sudah cukup (misalnya, atur provider: openrouter dan default: z-ai/glm-4.6 di config.yaml). Semua kecerdasan ada di ekstensi; model hanya perlu menjelajah, mengetik, dan mengklik.
Integrasi Hermes + CapSolver mewakili pendekatan baru secara fundamental untuk menyelesaikan CAPTCHA dalam alur kerja agen. Daripada menulis kode untuk mendeteksi CAPTCHA, memanggil API, dan menyisipkan token, Anda hanya perlu:
--load-extension=/abs/path/to/capsolver-extension dan --remote-debugging-port=9222cdp_url ke blok browser: di ~/.hermes/config.yaml:
browser:
cdp_url: http://127.0.0.1:9222
cdp_url di level atas diabaikan secara diam-diam)Ekstensi Chrome CapSolver menangani sisanya — mendeteksi CAPTCHA, menyelesaikannya melalui API CapSolver, dan menyisipkan token ke halaman. Agen Anda tidak pernah perlu tahu tentang CAPTCHA sama sekali.
Inilah yang CAPTCHA solving terlihat ketika Anda memiliki agen AI otonom: tak terlihat, otomatis, dan tanpa kode.
Siap memulai? Daftar untuk CapSolver dan gunakan kode bonus
hermeuntuk bonus pada recharge pertama Anda!

Tidak. Sebaliknya, Anda sebaiknya menghindari menyebut CAPTCHA atau CapSolver dalam pesan Anda. Ekstensi bekerja secara diam-diam di latar belakang. Cukup tambahkan waktu tunggu dalam instruksi Anda (misalnya, "tunggu 60 detik, lalu kirim") untuk memberi ekstensi waktu menyelesaikan CAPTCHA apa pun di halaman.
Google Chrome 137+ (dirilis pertengahan 2025) menghapus dukungan untuk flag baris perintah --load-extension dalam build yang diberi merek. Ini berarti ekstensi Chrome tidak dapat dimuat dalam sesi otomatis. Anda membutuhkan Chrome for Testing atau Chromium terpisah, yang masih mendukung flag ini.
Tidak — penyedia cloud menjalankan browser di infrastruktur orang lain, jadi Anda tidak bisa memuat ekstensi arbitrer ke sesi. Pola CDP attach dalam panduan ini adalah satu-satunya cara untuk menggabungkan Hermes dengan ekstensi Chrome. (Sekali browser.cdp_url diatur di config.yaml, Hermes mengarahkan lalu lintas browser melalui Chrome lokal dan penyedia cloud diam hingga Anda menghapus baris tersebut.)
Ya — setiap browser berbasis Chromium yang masih mendukung --load-extension berfungsi. Anda dapat menggunakan:
npx playwright install)Resep integrasi sama: arahkan --remote-debugging-port=9222 --load-extension=/path/to/capsolver-extension ke biner yang Anda sukai.
Apa yang tidak berfungsi:
--load-extensionYa — Camoufox adalah salah satu dari lima penyedia browser bawaan Hermes, dan merupakan opsi Firefox yang sangat baik untuk tugas yang tidak melibatkan ekstensi Chrome. Kekurangannya adalah Camoufox berbasis Firefox, dan ekstensi browser CapSolver dibuat dalam format Chrome MV3 — jadi keduanya tidak bisa berjalan bersama dalam satu sesi.
Berita baiknya: dengan Hermes Anda tidak perlu memilih secara permanen. Baris browser.cdp_url dalam ~/.hermes/config.yaml adalah saklar tunggal — arahkan ke Chrome yang dilengkapi CapSolver ketika Anda membutuhkan penyelesaian CAPTCHA, dan arahkan ke Camoufox ketika Anda membutuhkan stealth Firefox. Setup biasanya menjalankan keduanya:
# Baris aktif: tukar profil dengan mengomentari/uncoment
browser:
cdp_url: http://127.0.0.1:9222 # Chrome CapSolver (panduan ini)
# cdp_url: http://127.0.0.1:9333 # endpoint Camoufox
Kemudian restart Hermes (hermes gateway run, atau aktifkan restart melalui manajer yang Anda gunakan di box Anda) dan perubahan akan berlaku dalam hitungan detik. Hermes yang sama, saluran yang sama, keterampilan yang sama — browser berbeda per beban kerja.
/browser connect Hermes berfungsi dengan setup ini?Ya. Perintah /browser connect bawaan Hermes (di TUI interaktif hermes) menargetkan direktori user-data yang sama yang kita gunakan (~/.hermes/chrome-debug) dan port yang sama (9222). Sekali Anda mengatur sidecar chrome-debug, Anda dapat menggunakan /browser connect secara interaktif dari dalam Hermes, atau Anda dapat meninggalkan browser.cdp_url di config.yaml untuk koneksi permanen — keduanya bekerja terhadap Chrome yang sama.
Integrasi ini sepenuhnya tidak bergantung pada saluran. Sekali browser.cdp_url diatur di config.yaml, setiap tindakan browser — baik datang dari hermes -z di CLI, TUI interaktif hermes, atau pesan dari Telegram, Discord, Slack, WhatsApp, Signal, atau email — akan melalui Chrome yang dilengkapi CapSolver Anda. Ekstensi menyelesaikan CAPTCHA secara identik dalam semua kasus.
Gunakan halaman demo sebagai uji coba cepat saja. Dalam FAQ reCAPTCHA Google, mereka menyarankan untuk membuat kunci situs khusus untuk pengujian otomatis daripada bergantung pada halaman demo publik dalam pipeline produksi.
Ekstensi Chrome CapSolver menyelesaikan reCAPTCHA v2 (checkbox dan invisible), reCAPTCHA v3, Cloudflare, AWS WAF CAPTCHA, dan widget lain yang umum digunakan. Skrip konten mendeteksi jenis CAPTCHA di halaman dan menyelesaikannya secara otomatis — tidak ada konfigurasi per-tipe di sisi Anda. (Catatan: Cloudflare Turnstile dan Cloudflare 5-second Challenge tidak diselesaikan oleh ekstensi browser; mereka hanya tersedia melalui API CapSolver dan di luar cakupan panduan ini.)
CapSolver menawarkan harga kompetitif berdasarkan jenis CAPTCHA dan volume. Kunjungi capsolver.com untuk harga terkini.
Hermes Agent adalah open-source (github.com/NousResearch/hermes-agent) dan gratis untuk dijalankan di perangkat keras Anda sendiri. Anda memerlukan kunci API untuk penyedia model AI pilihan Anda (OpenRouter direkomendasikan — Hermes mendukung lebih dari 200 model melalui penyedia ini) dan, untuk penyelesaian CAPTCHA, akun CapSolver dengan kredit.
Untuk kebanyakan CAPTCHA, 30–60 detik sudah cukup. Waktu penyelesaian biasanya 5–20 detik, tetapi menambah buffer tambahan memastikan keandalan. Jika ragu, gunakan 60 detik.
Ya. Anda memerlukan Xvfb (X Virtual Framebuffer) untuk tampilan karena ekstensi Chrome memerlukan konteks tampilan. Jalankan Xvfb :99 -screen 0 1920x1080x24 & di host dan pastikan DISPLAY=:99 diekspor di launcher chrome-debug.sh (launcher di Langkah 3 sudah melakukannya). Juga pastikan --no-sandbox ada dalam argumen Chrome karena sebagian besar kernel server tidak memberi kemampuan yang diperlukan Chrome untuk sandbox.
Secara teknis ya, tetapi Anda harus mengelola kontensi tab/sesi sendiri. Untuk kebanyakan beban kerja, satu Hermes ↔ satu chrome-debug adalah setup yang paling bersih. Jika Anda membutuhkan paralelisme sejati, jalankan beberapa sidecar chrome-debug di port berbeda (9222, 9223, ...) dan arahkan setiap Hermes ke yang sesuai.
Ya. Hermes Skills adalah memori prosedural — urutan langkah yang telah dipelajari agen. Keterampilan yang melibatkan situs yang dilindungi CAPTCHA akan secara otomatis memanfaatkan integrasi CapSolver seperti halnya pesan ad-hoc, karena alat browser itu sendiri yang ditingkatkan. Tidak ada perubahan di sisi keterampilan yang diperlukan.
Ketahui bagaimana Infrastruktur Otomatisasi AI yang didukung LLM mengubah pengenalan CAPTCHA, meningkatkan efisiensi proses bisnis dan mengurangi intervensi manual. Optimalkan operasi otomatis Anda dengan solusi verifikasi canggih.

Pelajari cara meningkatkan pengumpulan data untuk pelatihan LLM dengan menyelesaikan CAPTCHA dalam jumlah besar. Temukan strategi otomatis untuk membangun dataset berkualitas tinggi untuk model AI.
