
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 dikirim, dan tugas terhenti menunggu intervensi manusia.
Hermes Agent oleh Nous Research adalah agen AI yang terus meningkatkan diri yang dapat 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 menavigasi halaman, mengklik tombol, mengisi formulir, dan mengekstrak data atas nama Anda. Namun, seperti agen lain yang menggerakkan browser, 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 pihak Anda. Tidak ada latihan rekayasa prompt.
Bagian terbaiknya? Anda bahkan tidak perlu menyebutkan CAPTCHA kepada agen. Anda cukup memintanya untuk menunggu sejenak sebelum mengirim — 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 di lain waktu), dan fleksibilitas infrastruktur (jalankan di VPS kecil, kontainer Docker, sandbox tanpa server, atau komputer GPU Anda sendiri).

hermes modelHermes dapat menggerakkan browser Chromium untuk melakukan pekerjaan nyata — menavigasi, membaca DOM, mengklik, mengetik, mengambil screenshot, menggali data. Lapisan alat browser-nya unik dalam satu cara khusus: alih-alih memaksa Anda ke satu backend, Hermes mendukung lima penyedia browser yang dapat dipertukarkan:
| Penyedia | Jenis | Ekstensi? |
|---|---|---|
| Browserbase | Awan | ✗ |
| Browser Use | Awan | ✗ |
| Firecrawl | Awan | ✗ |
| Camoufox | Lokal (Firefox stealth) | ✗ |
| CDP attach | Lokal (Chromium apa pun) | ✓ |
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 adalah model yang berbeda dari alat seperti OpenClaw (yang menjalankan Chromium sendiri dan menerima array browser.extensions) atau Crawlee (di mana Anda mengontrol bendera peluncuran Playwright). Dengan Hermes, Anda membawa Chrome Anda 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 yang 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 |
Jalankan 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 |
Kesadaran kunci: Ekstensi CapSolver berjalan di dalam browser yang terhubung. Hermes terhubung ke browser itu melalui CDP dan menggerakkannya secara normal. Ketika agen mengunjungi 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 meminta 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 ini hanya diabaikan.
Ini memengaruhi Google Chrome dan Microsoft Edge. Anda harus menggunakan salah satu alternatif berikut:
| Browser | Pemuatan Ekstensi | Disarankan? |
|---|---|---|
| Google Chrome 137+ | Tidak didukung | Tidak |
| Microsoft Edge | Tidak didukung | Tidak |
| Chrome untuk Pengujian | Didukung | Ya |
| Chromium (standalon) | Didukung | Ya |
| Chromium yang dibundel 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 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 OS 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 bahwa ia terhubung ke port CDP tersebut alih-alih menjalankan 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.
Tip tentang jalur: Gunakan jalur absolut, terurai (bukan
~) saat Anda melewati--load-extension=...ke Chrome nanti. Beberapa versi Chrome MV3 memiliki kasus tepi di mana layanan pekerja ekstensi gagal mendaftar melalui symlink di direktori user-data khusus. Jika Anda menyinkronkan ekstensi dari lokasi lain, gunakanreadlink -funtuk mengurai jalur nyata dan gunakan itu.
Buka file konfigurasi ekstensi di ~/.hermes/capsolver-extension/assets/config.js dan ganti nilai apiKey dengan yang Anda miliki:
export const defaultConfig = {
apiKey: 'CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // ← kunci Anda di sini
useCapsolver: true,
enabledForRecaptcha: true,
enabledForRecaptchaV3: true,
// ... sisa konfigurasi
};
Anda dapat mendapatkan kunci API Anda dari dashboard CapSolver.
Ini adalah langkah kunci. Kita menjalankan Chrome sekali, secara terpisah dari Hermes, dengan tiga bendera krusial:
--remote-debugging-port=9222 — mengekspose 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 di dalam Hermes juga "hanya bekerja" tanpa bendera 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, misalnya ~/.cache/ms-playwright/chromium-1200/chrome-linux64/chrome.
Server tanpa tampilan: Jika Anda menjalankannya di server Linux tanpa layar fisik (VPS, EC2, dll.), lihat bagian Best Practices di bawah untuk pengaturan
Xvfb. Subsistem ekstensi Chrome membutuhkan konteks layar.
Untuk setiap setup yang hidup lebih dari satu uji coba, bungkus peluncuran dalam skrip kecil sehingga Anda dapat 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
# Menjalankan Chrome-for-Testing dengan ekstensi CapSolver yang sudah dimuat
# dan CDP yang terpapar 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 tanpa tampilan — 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, awasi skrip dengan manajer proses apa pun yang Anda suka. 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 secara 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, alih-alih memulai yang sendiri.
Reversibilitas: Ini adalah satu-satunya perubahan pada Hermes itu sendiri. Untuk memulihkan, hapus baris
cdp_url. Hermes kembali ke penyedia browser default apa pun yang ia gunakan (Browserbase, Browser Use, dll.) tanpa efek samping lainnya.
Jika Hermes sudah berjalan, restart agar mengambil cdp_url baru:
# Jalan langsung (foreground atau di bawah supervisor Anda):
hermes gateway run
# Atau restart melalui manajer proses apa pun yang Anda awasi —
# satu-satunya persyaratan adalah bahwa lingkungan/konfigurasi baru mengambil efek.
Hermes dilengkapi dengan perintah diagnostik bawaan yang memeriksa setiap bagian integrasi dalam satu kali jalan:
hermes doctor
Anda mencari sinyal ini:
◆ Ketersediaan Alat
✓ browser-cdp ← CDP attach aktif
✓ browser
...
◆ Konektivitas API
Memeriksa API OpenRouter... ✓ API OpenRouter
Jika browser-cdp muncul di Ketersediaan Alat, Hermes telah mendeteksi titik akhir CDP Anda dan integrasi terhubung dengan benar. Jika tidak muncul, Hermes secara diam-diam menonaktifkan alat (tidak ada kesalahan) — itulah diagnostik yang perlu Anda pantau.
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 sedang berjalan:
{
"Browser": "Chrome/<versi Anda>",
"Protocol-Version": "1.3",
"webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/..."
}
Tentang visibilitas service worker CapSolver: Service worker Chrome MV3 berada dalam keadaan tidur aktif 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 saja sebelum mengirim formulir.
Agen tidak perlu tahu 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 langkah 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 agar 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 "Verifikasi Sukses... Hooray!" adalah pesan konfirmasi milik 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.):
Buka 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 agennya, terhubung ke Chrome yang sama, mengisi formulir, memberi waktu ekstensi untuk menyelesaikan CAPTCHA di halaman masuk, mengklik Masuk, dan menjawab dengan apa pun yang ditampilkan halaman setelah masuk — tanpa Anda 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 |
| 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 Uji Coba │ │
│ │ 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 yang 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 dikontrol pengguna dapat dihubungkan.
Perbandingan ini sangat menguntungkan: Hermes tetap portabel ke cloud secara default, tetapi saat Anda ingin kekuatan khusus di browser (CapSolver, pemblokir iklan Anda sendiri, alat MV3 kustom, cookie persisten, apa pun yang Anda inginkan), Anda menjalankan Chrome sendiri dan mengarahkan Hermes kepadanya. Satu baris konfigurasi. Total kontrol.
--load-extension Secara SebenarnyaKetika Chrome dimulai dengan --load-extension=/path/to/extension, itu menangani 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 normal, menunggu waktu yang Anda beri, dan mengirimnya. Halaman hanya saja memiliki token yang valid.
Catatan lingkungan: Hindari
--disable-background-networkingdalam flag Chrome Anda. Ini memblokir XHR/fetch ekstensi worker layanan CapSolver — sehingga ekstensi tidak pernah bisa mengakses API CapSolver. Resep di Langkah 3 secara sengaja mengabaikan hal ini.
~/.hermes/config.yamlPerubahan yang diperlukan hanya 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 agar Hermes bisa terhubung) |
--remote-debugging-address=127.0.0.1 |
Mengikat CDP hanya ke loopback (keamanan — jangan pernah mengekspose 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 |
Lewati wizard setup Chrome |
--no-sandbox |
Menonaktifkan sandbox Chrome. Dokumen Chromium menyebutnya sebagai "hanya untuk pengujian", tetapi ini adalah solusi standar untuk lingkungan headless Linux/Docker di mana user namespace / SYS_ADMIN capability tidak tersedia untuk mengatur sandbox dengan benar. |
--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 restart 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 yang 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 typo atau penempatan salah kunci di config.yaml, bukan Chrome yang tidak terjangkau.
Perbaikan:
# 1. Pastikan kunci benar-benar 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 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 pengiriman gagal.
Penyebab: Anda menggunakan Chrome bermerk 137+, yang secara diam-diam mengabaikan --load-extension.
Perbaikan: Ganti dengan Chrome untuk Uji Coba atau Chromium. Verifikasi biner Anda:
/path/to/your/chrome --version
# Chrome untuk Uji Coba: "Chromium 143.0.7499.4"
# Chrome bermerk: "Google Chrome 143.0.7499.109" ← tidak akan berjalan
Kemungkinan penyebab:
--disable-background-networking di argumen Chrome Anda (membunuh panggilan API ekstensi)Gejala: Tindakan browser pertama setelah restart Hermes timeout, tetapi tindakan berikutnya berjalan dengan baik.
Penyebab: Handshake CDP cold-start terkadang melebihi timeout alat Hermes default. 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 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. Mulai ulang chrome-debug (melalui manajer proses Anda, atau jalankan skrip kembali)
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 tidur aktif secara agresif, dan pada versi Chrome terbaru, endpoint /json/list mungkin tidak menampilkan mereka sama sekali — bahkan saat mereka sedang menangani peristiwa.
Perbaikan: Ini bukan indikasi masalah. Jangan mengandalkan /json/list untuk memastikan 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 yang hilang di daftar target 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"
Natural phrasing bekerja lebih baik dengan agen dan cenderung lebih ramah dengan model yang sudah disesuaikan keamanannya — penggunaan kata-kata yang bersifat adversarial di sekitar CAPTCHA telah teramati menyebabkan penolakan pada beberapa model kelas GLM.
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 cara ini, browser agen sepenuhnya terisolasi dari penjelajahan pribadi Anda.
--remote-debugging-address=127.0.0.1 adalah wajib dalam produksi. Protokol Pengembangan Chrome memberikan kontrol penuh terhadap browser kepada siapa pun yang bisa mengakses port. Jangan pernah memperlihatkan port 9222 ke jaringan publik.
Xvfb di Server Tanpa LayarChrome extensions membutuhkan 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
# Jalankan 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, saat Chrome crash, atau saat server direstart. Bungkus peluncuran dengan chrome-debug.sh (Langkah 3) dan awasi dengan manajer 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.
Karena model tidak pernah melihat CAPTCHA — ekstensi menyelesaikannya secara tidak terlihat — Anda tidak perlu model terdepan untuk pekerjaan yang banyak CAPTCHA. Model yang murah dan mampu alat sudah cukup (misalnya, setel provider: openrouter dan default: z-ai/glm-4.6 di config.yaml). Semua kecerdasan ada di ekstensi; model hanya perlu menjelajah, mengetik, dan mengklik.
Infrastruktur CapSolver yang sama yang memungkinkan integrasi Hermes sudah menangani tantangan reCAPTCHA v2/v3, Cloudflare Turnstile, dan AWS WAF di jalur otomasi produksi — ini bukan solusi sementara yang dikumpulkan untuk tutorial ini, tetapi lapisan penyelesaian yang sudah digunakan tim untuk scraping dan otomasi QA skala besar.
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 tingkat atas akan 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.
Ini yang dimaksud dengan 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 menyebutkan CAPTCHA atau CapSolver dalam pesan Anda. Ekstensi bekerja secara tidak terlihat 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. 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, sehingga Anda tidak bisa memuat ekstensi arbitrer 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 sampai 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.
Yang tidak berfungsi:
--load-extensionYa — Camoufox adalah salah satu dari lima penyedia browser bawaan Hermes, dan merupakan pilihan stealth-Firefox yang sangat baik untuk tugas yang tidak melibatkan ekstensi Chrome. Kekurangannya adalah Camoufox berbasis Firefox, dan ekstensi CapSolver dibangun dalam format MV3 Chrome — jadi keduanya tidak bisa berjalan bersama dalam satu sesi.
Berita baiknya: dengan Hermes Anda tidak perlu memilih secara permanen. Pengaturan 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. Setup biasanya menjalankan keduanya:
# Baris aktif: ubah 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 server) dan perubahan akan berlaku dalam beberapa detik. Hermes yang sama, saluran yang sama, keterampilan yang sama — browser berbeda untuk setiap beban kerja.
/browser connect Hermes berfungsi dengan setup ini?Ya. Perintah slash /browser connect bawaan Hermes (di TUI interaktif hermes) menargetkan direktori user-data default yang sama yang kami gunakan (~/.hermes/chrome-debug) dan port yang sama (9222). Setelah Anda mengatur sidecar chrome-debug, Anda dapat menggunakan /browser connect secara interaktif dari dalam Hermes, atau meninggalkan browser.cdp_url di config.yaml untuk koneksi permanen — keduanya bekerja terhadap Chrome yang sama.
Integrasi sepenuhnya bebas saluran. Setelah browser.cdp_url diatur di config.yaml, setiap tindakan browser — baik dari hermes -z di CLI, TUI interaktif hermes, atau pesan dari Telegram, Discord, Slack, WhatsApp, Signal, atau email — akan melewati Chrome yang dilengkapi CapSolver. Ekstensi menyelesaikan CAPTCHA secara identik dalam semua kasus.
Gunakan halaman demo sebagai uji coba cepat saja. Dalam FAQ resmi reCAPTCHA Google, mereka menyarankan membuat kunci situs khusus untuk pengujian otomatis alih-alih bergantung pada halaman demo publik dalam pipeline produksi.
Ekstensi Chrome CapSolver menyelesaikan otomatis reCAPTCHA v2 (checkbox dan tidak terlihat), reCAPTCHA v3, Cloudflare, AWS WAF CAPTCHA, dan widget yang umum digunakan lainnya. Skrip konten mendeteksi jenis CAPTCHA di halaman dan menyelesaikannya sesuai — 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 akan membutuhkan kunci API untuk penyedia model AI pilihan Anda (OpenRouter direkomendasikan — Hermes mendukung lebih dari 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 menambahkan buffer tambahan memastikan keandalan. Jika ragu, gunakan 60 detik.
Ya. Anda akan membutuhkan Xvfb (X Virtual Framebuffer) untuk layar karena ekstensi Chrome membutuhkan konteks layar. 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, pertahankan --no-sandbox dalam argumen Chrome karena sebagian besar kernel server tidak memberikan kemampuan yang dibutuhkan sandbox Chrome.
Secara teknis ya, tetapi Anda harus mengelola kontes tab/sesi sendiri. Untuk sebagian besar 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 masing-masing.
Ya. Hermes Skills adalah memori prosedural — urutan langkah-langkah yang telah dipelajari agen. Keterampilan yang melibatkan situs web 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.
Ulasan Composio berbasis bukti yang mencakup sesi, lebih dari 1.000 toolkit, otentikasi yang dikelola, MCP, harga, keunggulan, keterbatasan, dan alternatif.

Pelajari cara mengintegrasikan CapSolver dengan Composio, Playwright, dan OpenAI Agents SDK untuk otomatisasi browser reCAPTCHA v2 dan CAPTCHA gambar yang diizinkan.
