
Emma Foster
Machine Learning Engineer

Ketika agen AI Anda menjelajahi web untuk Anda, CAPTCHA adalah penghalang utama. Halaman yang dilindungi menghalangi agen, formulir menolak untuk dikirim, dan tugas terhenti menunggu intervensi manusia.
Hermes Agent oleh Nous Research adalah agen AI yang berkembang sendiri 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 mengendalikan browser untuk menjelajahi halaman, mengklik tombol, mengisi formulir, dan mengekstrak data atas nama Anda. Namun, seperti agen pengendali browser lainnya, ia terjebak pada CAPTCHA.
CapSolver mengubah ini secara total. Dengan memuat ekstensi Chrome CapSolver 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 manipulasi prompt yang rumit.
Bagian terbaiknya? Anda bahkan tidak perlu menyebutkan CAPTCHA kepada agen. Anda cukup memberi tahu ia untuk menunggu sejenak sebelum mengirim — dan ketika ia mengklik Submit, CAPTCHA sudah diselesaikan.
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 kali berikutnya), dan fleksibilitas infrastruktur (jalankan di VPS kecil, kontainer Docker, sandbox serverless, atau komputer GPU Anda sendiri).

hermes modelHermes dapat mengendalikan browser Chromium untuk melakukan pekerjaan nyata — menjelajahi, membaca DOM, mengklik, mengetik, mengambil tangkapan layar, 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 (setiap 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 dijalankan secara terpisah. Itulah tempat CapSolver masuk.
Ini adalah model yang berbeda dari alat seperti OpenClaw (yang menjalankan Chromium sendiri dan menerima array browser.extensions) atau Crawlee (di mana Anda mengontrol flag launch Playwright). Dengan Hermes, Anda membawa Chrome Anda sendiri dengan ekstensi yang sudah dimuat, dan Hermes terhubung ke dalamnya melalui protokol DevTools.
CapSolver adalah layanan penyelesaian CAPTCHA yang unggul yang menyediakan solusi berbasis AI untuk mengatasi tantangan CAPTCHA modern. Dengan dukungan untuk setiap jenis CAPTCHA utama dan waktu respons cepat, CapSolver terintegrasi secara mulus ke dalam alur kerja otomatis — baik Anda mengendalikan browser melalui Playwright, memanggil API-nya secara langsung, atau, seperti dalam panduan ini, menjalankan ekstensi Chrome CapSolver di dalam sesi browser agen Anda.
Kebanyakan integrasi penyelesaian CAPTCHA memerlukan 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 mendasar:
| Tradisional (Berdasarkan Kode) | Hermes (Bahasa Alami) |
|---|---|
Tulis kelas CapSolverService |
Jalankan Chrome sekali dengan --load-extension=... |
Panggil createTask() / getTaskResult() |
Cukup berbicara dengan agen Anda |
Sisipkan token melalui page.$eval() |
Ekstensi menangani semuanya |
| Kelola kesalahan, ulang, dan timeout dalam kode | Beri tahu agen untuk "tunggu 60 detik, lalu klik Submit" |
| Kode berbeda untuk setiap jenis CAPTCHA | Berfungsi untuk semua jenis secara otomatis |
Insight utama: Ekstensi Chrome CapSolver berjalan di dalam browser yang terhubung. Hermes terhubung ke browser tersebut melalui CDP dan mengendalikannya secara normal. Ketika agen mengunjungi halaman dengan CAPTCHA, ekstensi — berjalan di dalam Chrome yang sama, sama sekali tidak terlihat bagi agen — mendeteksi widget, memanggil API CapSolver, dan menyisipkan token solusi ke halaman. Ketika agen mengklik Submit, 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 Submit."
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 tersebut 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 (standalon) | Didukung | Ya |
| Chromium yang dibundel oleh Playwright | Didukung | Ya |
Cara menginstal Chrome untuk Pengujian:
# Opsi 1: Melalui Playwright (direkomendasikan — Hermes sudah menggunakan Playwright secara internal)
npx playwright install chromium
# Jalur biner akan berada di path 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 Chrome untuk Pengujian langsung
# 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 terdiri dari dua bagian yang bekerja bersama:
9222).config.yaml Hermes untuk memberitahu ia terhubung ke port CDP tersebut alih-alih menjalankan browser sendiri.Itu saja — tidak ada kode, tidak ada perubahan pada 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 absolut, yang telah diresolusi (bukan
~) ketika Anda memberi--load-extension=...ke Chrome nanti. Beberapa build Chrome MV3 memiliki kasus khusus di mana layanan ekstensi gagal terdaftar melalui symlink di direktori user yang khusus. Jika Anda menghubungkan ekstensi dari lokasi lain, gunakanreadlink -funtuk mengambil 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 penting:
--remote-debugging-port=9222 — mengekspos protokol DevTools sehingga Hermes dapat terhubung--load-extension=... — memuat ekstensi CapSolver sebelumnya--user-data-dir=... — menggunakan profil khusus sehingga 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 "berjalan dengan baik" tanpa flag tambahan.
/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 Anda yang sebenarnya, misalnya ~/.cache/ms-playwright/chromium-1200/chrome-linux64/chrome.
Server tanpa layar: Jika Anda menjalankannya di server Linux tanpa layar fisik (VPS, EC2, dll.), lihat bagian Best Practices di bawah untuk pengaturan
Xvfb. Sistem ekstensi Chrome memerlukan konteks tampilan.
Untuk setup yang bertahan lebih dari satu pengujian, bungkus launch dalam skrip shell kecil agar Anda bisa menjalankan Chrome di latar belakang, memulai ulang dengan bersih, dan memantau 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
# Menjalankan Chrome-for-Testing dengan ekstensi CapSolver yang sudah dimuat
# dan CDP yang terbuka pada 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 server tanpa layar — 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 berkelanjutan adalah:
nohup ~/.hermes/chrome-debug.sh > /tmp/chrome-debug.log 2>&1 &
Untuk produksi, pantau skrip tersebut 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
Setup apa pun yang setara (program supervisord, layanan runit, kontainer Docker, dll.) berfungsi sama — integrasi hanya memperhatikan 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 Anda jalankan di Langkah 3, alih-alih menjalankan browser sendiri.
Reversibilitas: Ini adalah satu-satunya perubahan pada Hermes. Untuk mengembalikan ke kondisi awal, 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 memantau Hermes —
# yang satu-satunya kebutuhan adalah bahwa lingkungan/konfigurasi baru berlaku.
Hermes dilengkapi dengan 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 endpoint CDP Anda dan integrasi sudah terhubung dengan benar. Jika tidak muncul, Hermes secara diam-diam menonaktifkan alat tersebut (tidak ada kesalahan) — itu adalah diagnostik yang perlu diperhatikan.
Anda juga dapat memverifikasi bahwa Chrome dapat diakses langsung:
curl -s http://127.0.0.1:9222/json/version
Respons seperti berikut memastikan CDP aktif:
{
"Browser": "Chrome/<versi Anda>",
"Protocol-Version": "1.3",
"webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/..."
}
Tentang visibilitas layanan worker CapSolver: Worker layanan Chrome MV3 berhenti bekerja secara agresif, dan pada versi Chrome terbaru,
/json/listmungkin tidak menampilkan mereka sama sekali bahkan saat mereka sedang berjalan. Ketidakhadiran di/json/listbukan indikasi masalah — konfirmasi bahwa CapSolver berjalan dengan membuka halaman reCAPTCHA nyata melalui agen dan mengamati hasil widget di halaman, bukan dengan memantau daftar target.
Ini adalah bagian paling penting. Setelah setup selesai, menggunakan CapSolver dengan Hermes adalah sangat sederhana.
Jangan menyebut CAPTCHA atau CapSolver kepada agen. Beri waktu sebelum mengirim formulir.
Agen tidak perlu tahu tentang CAPTCHA. Ekstensi menangani semua 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 dimuat. Lalu klik tombol yang berlabel "Kirim!" atau dengan id "recaptcha-demo-submit". Setelah mengklik, tunggu 5 detik dan beri tahu saya teks yang terlihat di halaman.' --yolo
Apa yang terjadi di balik layar:
g-recaptcha-responseString "Verification Success... Hooray!" adalah pesan konfirmasi milik Google — hanya muncul ketika token reCAPTCHA valid dikirim bersama formulir.
Kirim ini dari saluran apa pun yang terhubung ke gateway Hermes (Telegram, Discord, Slack, dll.):
Pergi ke https://example.com/login, isi kolom email dengan
"me@example.com" dan kolom kata sandi dengan "mypassword123",
lalu tunggu 30 detik dan klik tombol Masuk.
Beritahu saya halaman apa yang muncul setelah masuk.
Hermes akan mengarahkan permintaan ke agen, terhubung ke Chrome yang sama, mengisi formulir, memberi waktu ekstensi untuk menyelesaikan CAPTCHA di halaman login, mengklik Masuk, dan menjawab dengan apa pun yang tercantum di halaman setelah login — tanpa Anda pernah menyebut 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 Biasa | 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 |
| AWS WAF CAPTCHA | 5–15 detik | 30 detik |
Tips: Jika ragu, gunakan 60 detik. Lebih baik menunggu sedikit lebih lama daripada mengirim terlalu dini. Waktu tambahan hampir gratis — tagihan CapSolver Anda per penyelesaian, bukan per detik.
Berikut adalah frasa yang telah terbukti dapat digunakan di semua saluran Hermes:
Hindari frasa-frasa ini — mereka bisa 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 via 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 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 Kirim
│
▼
Form dikirim DENGAN token valid
│
▼
Halaman konfirmasi setelah mengirim
Lapisan alat browser Hermes dibangun di sekitar lima penyedia yang dapat dipertukarkan (Browserbase, Browser Use, Firecrawl, Camoufox, Chromium headless). Tiga dari mereka adalah cloud — Anda tidak mengontrol biner browser, jadi tidak ada tempat untuk menempatkan flag --load-extension. Satu (Camoufox) berbasis Firefox. Kelima — CDP attach — adalah satu-satunya titik di mana Chromium yang dikendalikan pengguna dapat dihubungkan.
Perbandingan ini sangat menguntungkan: Hermes tetap portabel ke cloud secara default, tetapi saat Anda ingin kekuatan browser (CapSolver, ad blocker Anda sendiri, alat MV3 kustom, cookie persisten, apa pun yang Anda inginkan), Anda jalankan Chrome sendiri dan arahkan Hermes kepadanya. Satu baris konfigurasi. Total kontrol.
--load-extensionKetika Chrome dimulai dengan --load-extension=/path/to/extension, itu menganggap direktori tersebut sebagai ekstensi yang tidak dikemas — mekanisme yang sama yang digunakan mode pengembang Chrome. Manifest ekstensi, skrip konten, dan worker layanan didaftarkan persis seperti jika Anda menginstalnya dari Chrome Web Store. Tidak ada perbedaan sandboxing, tidak ada akses API yang terbatas — itu adalah ekstensi yang sepenuhnya berwenang.
Ekstensi CapSolver kemudian mengambil alih sisa proses:
assets/config.js, mengirim detail tantangan, dan memantau tokenAgen Hermes sepenuhnya tidak terlibat — ia melihat halaman biasa, menunggu waktu yang Anda beri, dan mengirim. Halaman hanya saja memiliki token yang valid.
Catatan lingkungan: Hindari
--disable-background-networkingdalam flag Chrome Anda. Ini menghalangi worker layanan CapSolver mengakses XHR/fetch keluar — jadi ekstensi tidak pernah bisa mencapai API CapSolver. Resep di Langkah 3 secara sengaja mengabaikan ini.
~/.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 |
Menampilkan CDP pada port TCP 9222 (diperlukan untuk Hermes untuk 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 sebenarnya yang dimuat |
--disable-extensions-except=/abs/path/to/capsolver-extension |
Langkah tambahan — hanya muat ekstensi ini |
--no-first-run --no-default-browser-check |
Lewati wizard pengaturan Chrome |
--no-sandbox |
Menonaktifkan sandbox Chrome. Dokumen Chromium menyebut ini sebagai "hanya untuk pengujian", tetapi ini adalah solusi standar untuk lingkungan headless Linux/Docker di mana namespace pengguna / kemampuan SYS_ADMIN tidak tersedia untuk mengatur sandbox secara tepat. |
--disable-dev-shm-usage |
Hindari masalah /dev/shm di 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 opsi
};
hermes doctor tidak menampilkan browser-cdp di Bawah Ketersediaan AlatGejala: Setelah mengulang Hermes, alat browser-cdp hilang dari output hermes doctor.
Penyebab: Hermes hanya mendaftarkan browser-cdp ketika endpoint CDP dikonfigurasi — baik browser.cdp_url di config.yaml, variabel lingkungan BROWSER_CDP_URL, atau sesi /browser connect aktif. Pemeriksaan adalah keberadaan konfigurasi, bukan keterjangkauan (lihat tools/browser_cdp_tool.py:_browser_cdp_check). Penyebab paling umum alat browser-cdp yang hilang adalah kesalahan ketik atau kunci yang salah di config.yaml, bukan Chrome yang tidak terjangkau.
Perbaikan:
# 1. Pastikan kunci benar-benar di bawah "browser:" (bukan di tingkat atas)
grep -A2 '^browser:' ~/.hermes/config.yaml
# output yang diharapkan:
# browser:
# ...
# cdp_url: http://127.0.0.1:9222
# 2. Pastikan Chrome benar-benar berjalan 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 baik tetapi CAPTCHA tidak pernah diselesaikan — setiap submit gagal.
Penyebab: Anda menggunakan Chrome bermerk Google 137+, yang secara diam-diam mengabaikan --load-extension.
Perbaikan: Ganti dengan Chrome untuk Pengujian atau Chromium. Verifikasi biner Anda:
/path/to/your/chrome --version
# Chrome untuk Pengujian: "Chromium 143.0.7499.4"
# Chrome bermerk: "Google Chrome 143.0.7499.109" ← tidak akan bekerja
Kemungkinan penyebab:
--disable-background-networking di argumen Chrome Anda (membunuh panggilan API ekstensi keluar)Gejala: Tindakan browser pertama setelah restart Hermes timeout, tetapi tindakan berikutnya berjalan dengan baik.
Penyebab: Handshake CDP cold-start terkadang melebihi timeout alat default Hermes. Tindakan berikutnya menggunakan WebSocket yang sudah panas dan cepat.
Perbaikan: Ulangi perintah sekali. Jika masih berlangsung, tingkatkan browser.inactivity_timeout di config.yaml.
Gejala: Setelah beralih dari satu versi Chrome ke versi 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 mengawasinya)
pkill -f "remote-debugging-port=9222"
# 2. Hapus profil lama
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 bekerja 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 masalah. Jangan mengandalkan /json/list untuk memverifikasi bahwa CapSolver dimuat. Alih-alih, arahkan agen ke halaman reCAPTCHA nyata (misalnya https://www.google.com/recaptcha/api2/demo) dan amati apakah pengiriman formulir berhasil. Pengiriman yang berhasil adalah bukti ekstensi dimuat dan menyelesaikan tantangan; entri daftar target yang hilang bukanlah sinyal kegagalan.
Lebih banyak waktu tunggu 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"
Frasa alami bekerja lebih baik dengan agen dan cenderung lebih ramah dengan model yang telah disesuaikan keamanannya — penggunaan kata-kata adversarial di sekitar CAPTCHA telah teramati menyebabkan penolakan pada beberapa model kelas GLM.
Setiap penyelesaian CAPTCHA memakan kredit. Periksa saldo Anda secara teratur di capsolver.com/dashboard untuk menghindari gangguan.
Jangan arahkan --user-data-dir ke profil Chrome nyata 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 wajib diaktifkan dalam produksi. Protokol DevTools Chrome memberi kontrol penuh terhadap browser kepada siapa pun yang bisa mengakses port tersebut. Jangan pernah memperlihatkan port 9222 ke jaringan publik.
Xvfb di Server Tanpa LayarEkstensi Chrome memerlukan konteks tampilan, bahkan jika Anda tidak ingin melihat browser. Di server Linux tanpa layar fisik, jalankan layar virtual:
# Instal Xvfb (Ubuntu/Debian)
sudo apt-get install xvfb
# Jalankan layar virtual
Xvfb :99 -screen 0 1920x1080x24 &
# Beri tahu Chrome untuk menggunakannya (launcher chrome-debug.sh di atas sudah menyetel 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 berhenti, saat Chrome crash, atau saat mesin reboot. Bungkus peluncuran dengan chrome-debug.sh (Langkah 3) dan pantau dengan manajer yang sudah Anda gunakan untuk bagian lain dari stack Anda — systemd, supervisord, runit, Docker, dll. Integrasi ini tidak bergantung pada manajer tertentu; pilih yang sudah ada di mesin.
Karena model tidak pernah melihat CAPTCHA — ekstensi menyelesaikannya secara tidak terlihat — Anda tidak perlu model terdepan untuk pekerjaan yang banyak CAPTCHA. Model yang murah namun mampu alat sudah cukup (misalnya, atur provider: openrouter dan default: z-ai/glm-4.6 di config.yaml). Seluruh kecerdasan ada di ekstensi; model hanya perlu menjelajah, mengetik, dan mengklik.
Integrasi Hermes + CapSolver mewakili pendekatan baru secara fundamental dalam menyelesaikan CAPTCHA di alur kerja agen. Alih-alih 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 tingkat atas akan diabaikan secara diam-diam)Ekstensi Chrome CapSolver menangani sisa proses — mendeteksi CAPTCHA, menyelesaikannya melalui API CapSolver, dan menyisipkan token ke halaman. Agen Anda tidak pernah perlu tahu tentang CAPTCHA sama sekali.
Ini adalah cara menyelesaikan CAPTCHA ketika Anda memiliki agen AI otonom: tidak terlihat, otomatis, dan tanpa kode.
Siap memulai? Daftar di 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 di halaman.
Google Chrome 137+ (dirilis pertengahan 2025) menghapus dukungan untuk flag baris perintah --load-extension dalam build yang diberi merek. Artinya, ekstensi Chrome tidak bisa dimuat dalam sesi otomatis. Anda membutuhkan Chrome for Testing atau Chromium standalone, yang masih mendukung flag ini.
Tidak — penyedia cloud menjalankan browser di infrastruktur orang lain, jadi Anda tidak bisa memuat ekstensi arbitrary ke sesi. Pola CDP attach dalam panduan ini adalah satu-satunya cara menggabungkan Hermes dengan ekstensi Chrome. (Setelah 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 bisa menggunakan:
npx playwright install)Resep integrasi sama: arahkan --remote-debugging-port=9222 --load-extension=/path/to/capsolver-extension ke biner pilihan Anda.
Yang tidak berfungsi:
--load-extensionYa — Camoufox adalah salah satu dari lima penyedia browser bawaan Hermes, dan merupakan opsi stealth Firefox yang sangat baik untuk tugas yang tidak melibatkan ekstensi Chrome. Kekurangannya adalah Camoufox berbasis Firefox, dan ekstensi 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 di ~/.hermes/config.yaml adalah saklar tunggal — arahkan ke Chrome yang dilengkapi CapSolver saat Anda membutuhkan penyelesaian CAPTCHA, arahkan ke Camoufox saat Anda membutuhkan stealth Firefox. Pengaturan biasanya menjalankan keduanya secara bersamaan:
# Baris aktif: ganti 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 # Titik akhir Camoufox
Kemudian restart Hermes (hermes gateway run, atau aktifkan restart melalui manajer yang mengawasi gateway di mesin Anda) dan perubahan akan berlaku dalam hitungan detik. Hermes yang sama, saluran yang sama, keterampilan yang sama — browser berbeda untuk beban kerja berbeda.
/browser connect Hermes bekerja dengan pengaturan ini?Ya. Perintah /browser connect bawaan Hermes (di TUI interaktif hermes) menargetkan direktori user-data yang sama yang kami gunakan (~/.hermes/chrome-debug) dan port yang sama (9222). Setelah mengatur sidecar chrome-debug, Anda bisa menggunakan /browser connect secara interaktif di dalam Hermes, atau meninggalkan browser.cdp_url di config.yaml untuk koneksi permanen — keduanya bekerja terhadap Chrome yang sama.
Integrasi ini sepenuhnya bebas saluran. Setelah browser.cdp_url diatur di config.yaml, setiap tindakan browser — baik yang berasal 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 resmi Google, mereka menyarankan membuat kunci situs khusus untuk pengujian otomatis alih-alih bergantung pada halaman demo publik di pipeline produksi.
Ekstensi Chrome CapSolver menyelesaikan reCAPTCHA v2 (checkbox dan tidak terlihat), reCAPTCHA v3, hCaptcha, FunCaptcha, AWS WAF CAPTCHA, dan widget yang umum digunakan lainnya. Skrip konten mendeteksi jenis CAPTCHA di halaman dan menyelesaikannya sesuai — tidak ada konfigurasi per-tipe dari sisi Anda. (Catatan: Cloudflare Turnstile dan Cloudflare 5-second Challenge tidak diselesaikan oleh ekstensi browser; 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 membutuhkan kunci API untuk penyedia model AI pilihan Anda (OpenRouter disarankan — Hermes mendukung 200+ model melalui itu) dan, untuk menyelesaikan CAPTCHA, akun CapSolver dengan kredit.
Untuk kebanyakan CAPTCHA, 30–60 detik sudah cukup. Waktu penyelesaian sebenarnya biasanya 5–20 detik, tetapi menambah buffer tambahan memastikan keandalan. Jika ragu, gunakan 60 detik.
Ya. Anda membutuhkan Xvfb (X Virtual Framebuffer) untuk layar karena ekstensi Chrome memerlukan konteks tampilan. Jalankan Xvfb :99 -screen 0 1920x1080x24 & di host dan pastikan DISPLAY=:99 diimpor di launcher chrome-debug.sh (launcher di Langkah 3 sudah melakukannya). Juga pertahankan --no-sandbox di argumen Chrome karena kebanyakan kernel server tidak memberi izin yang diperlukan sandbox Chrome.
Secara teknis ya, tetapi Anda harus mengelola konflik tab/sesi sendiri. Untuk kebanyakan beban kerja, satu Hermes ↔ satu chrome-debug adalah pengaturan yang paling bersih. Jika membutuhkan paralelisasi nyata, 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 web yang dilindungi CAPTCHA akan secara otomatis memanfaatkan integrasi CapSolver sama seperti pesan ad-hoc, karena alat browser yang diubah adalah intinya. Tidak diperlukan perubahan di sisi keterampilan.
Bandingkan kerangka kerja agen AI terbaik untuk otomatisasi web, penyelesaian CAPTCHA, kepatuhan, dan alur kerja agen yang siap produksi pada tahun 2026.

Membandingkan pustaka pengambilan data web Java terbaik, termasuk jsoup, Selenium, Playwright untuk Java, HtmlUnit, Apache Nutch, dan pilihan API.

Pelajari cara menyelesaikan tantangan AWS WAF dan CAPTCHA tanpa menggunakan browser. Gunakan API CapSolver untuk menghasilkan token dan mengelak kode status 405.
