
Anh Tuan
Data Science Expert

Khi trợ lý AI của bạn duyệt web thay bạn, CAPTCHAs là chướng ngại vật số một. Các trang được bảo vệ chặn trợ lý, các biểu mẫu từ chối gửi, và các nhiệm vụ dừng lại chờ can thiệp của con người.
Hermes Agent của Nous Research là một trợ lý AI tự cải thiện, chạy ở bất kỳ đâu — từ VPS giá 5 đô la đến cụm GPU — và tiếp cận bạn trên mọi kênh bạn đã sử dụng: Telegram, Discord, Slack, WhatsApp, Signal, và email. Nó cũng có thể điều khiển trình duyệt để truy cập trang, nhấp nút, điền biểu mẫu, và trích xuất dữ liệu thay bạn. Tuy nhiên, giống như bất kỳ trợ lý nào điều khiển trình duyệt, nó bị chặn bởi CAPTCHAs.
CapSolver thay đổi hoàn toàn điều này. Bằng cách tải tiện ích mở rộng CapSolver Chrome vào trình duyệt Hermes gắn kết, CAPTCHAs được giải tự động và không thấy ở nền. Không cần mã. Không cần gọi API từ phía bạn. Không cần các bài tập kỹ thuật.
Điều tuyệt nhất là bạn không cần nhắc đến CAPTCHAs với trợ lý. Bạn chỉ cần bảo nó chờ một lúc trước khi gửi — và đến lúc nó nhấp vào "Gửi", CAPTCHA đã được giải rồi.
Hermes Agent là một trợ lý AI tự động mã nguồn mở được xây dựng bởi Nous Research. Nó được thiết kế xung quanh ba nguyên tắc: bộ nhớ kéo dài (nó nhớ bạn và các dự án của bạn qua các phiên), tự động tạo kỹ năng (nó học các quy trình từ trải nghiệm và lặp lại chúng lần sau), và tính linh hoạt về cơ sở hạ tầng (chạy nó trên VPS nhỏ, container Docker, sandbox serverless, hoặc máy tính GPU của riêng bạn).

hermes model.Hermes có thể điều khiển trình duyệt Chromium để thực hiện công việc thực tế — điều hướng, đọc DOM, nhấp, gõ, chụp màn hình, quét. Lớp công cụ trình duyệt của nó khác biệt ở một điểm cụ thể: thay vì ép bạn vào một nền tảng duy nhất, Hermes hỗ trợ năm nhà cung cấp trình duyệt thay thế:
| Nhà cung cấp | Loại | Tiện ích mở rộng? |
|---|---|---|
| Browserbase | Trong đám mây | ✗ |
| Browser Use | Trong đám mây | ✗ |
| Firecrawl | Trong đám mây | ✗ |
| Camoufox | Local (Firefox stealth) | ✗ |
| CDP attach | Local (mọi Chromium) | ✓ |
Các nhà cung cấp đám mây không thể tải tiện ích mở rộng — bạn không kiểm soát trình duyệt từ xa. Camoufox dựa trên Firefox và không chạy tiện ích mở rộng Chrome MV3. Điểm tích hợp sạch sẽ là nhà cung cấp thứ năm: CDP attach, nơi Hermes kết nối với Chromium bạn đã khởi động riêng. Đó là nơi CapSolver phù hợp.
Đây là mô hình khác so với các công cụ như OpenClaw (khởi động Chromium riêng và chấp nhận mảng browser.extensions) hoặc Crawlee (nơi bạn kiểm soát cờ khởi động Playwright). Với Hermes, bạn mang theo Chrome của riêng mình với tiện ích mở rộng đã tải trước, và Hermes kết nối với nó qua giao thức DevTools.
CapSolver là dịch vụ giải CAPTCHA hàng đầu cung cấp giải pháp dựa trên AI để vượt qua các thách thức CAPTCHA hiện đại. Với hỗ trợ cho mọi loại CAPTCHA chính và thời gian phản hồi nhanh, CapSolver tích hợp liền mạch vào các quy trình tự động hóa — dù bạn đang điều khiển trình duyệt qua Playwright, gọi API trực tiếp, hay, như trong hướng dẫn này, chạy tiện ích mở rộng Chrome của nó bên trong phiên trình duyệt của trợ lý.
Hầu hết các tích hợp giải CAPTCHA yêu cầu bạn viết mã — tạo các cuộc gọi API, kiểm tra kết quả, chèn token vào các trường ẩn. Đó là cách hoạt động với các công cụ như Crawlee, Puppeteer, hoặc Playwright.
Hermes + CapSolver hoàn toàn khác biệt:
| Truyền thống (dựa trên mã) | Hermes (ngôn ngữ tự nhiên) |
|---|---|
Viết lớp CapSolverService |
Khởi động Chrome một lần với --load-extension=... |
Gọi createTask() / getTaskResult() |
Chỉ cần trò chuyện với trợ lý của bạn |
Chèn token qua page.$eval() |
Tiện ích mở rộng xử lý mọi thứ |
| Xử lý lỗi, thử lại, thời gian chờ trong mã | Nói với trợ lý "đợi 60 giây, sau đó gửi" |
| Mã khác nhau cho mỗi loại CAPTCHA | Hoạt động cho mọi loại tự động |
Ý tưởng chính: Tiện ích mở rộng CapSolver chạy trong trình duyệt gắn kết. Hermes kết nối với trình duyệt đó qua CDP và điều khiển nó bình thường. Khi trợ lý truy cập trang có CAPTCHA, tiện ích mở rộng — chạy trong cùng Chrome, hoàn toàn không thấy bởi trợ lý — phát hiện widget, gọi API CapSolver, và chèn token giải pháp vào trang. Đến lúc trợ lý nhấp vào "Gửi", biểu mẫu đã có token hợp lệ.
Bạn chỉ cần cho nó thời gian. Thay vì bảo trợ lý "giải CAPTCHA", bạn chỉ cần nói:
"Đến trang đó, đợi 60 giây, sau đó nhấp vào Gửi."
Đó là tất cả. Trợ lý không cần biết CapSolver tồn tại.
Trước khi thiết lập tích hợp, hãy đảm bảo bạn có:
Google Chrome 137+ (phát hành giữa năm 2025) đã ngầm loại bỏ hỗ trợ cho
--load-extensiontrong các phiên bản được thương mại hóa. Điều này có nghĩa là tiện ích mở rộng Chrome không thể được tải trong các phiên tự động hóa sử dụng Chrome tiêu chuẩn. Không có lỗi — cờ chỉ bị bỏ qua.
Điều này ảnh hưởng đến Google Chrome và Microsoft Edge. Bạn phải sử dụng một trong các tùy chọn sau:
| Trình duyệt | Tải tiện ích mở rộng | Được khuyến nghị? |
|---|---|---|
| Google Chrome 137+ | Không hỗ trợ | Không |
| Microsoft Edge | Không hỗ trợ | Không |
| Chrome cho kiểm thử | Hỗ trợ | Có |
| Chromium (độc lập) | Hỗ trợ | Có |
| Chromium tích hợp trong Playwright | Hỗ trợ | Có |
Cách cài đặt Chrome cho kiểm thử:
# Tùy chọn 1: Qua Playwright (được khuyến khích — Hermes đã sử dụng Playwright bên trong)
npx playwright install chromium
# Đường dẫn nhịp sẽ như:
# ~/.cache/ms-playwright/chromium-XXXX/chrome-linux64/chrome (Linux)
# ~/Library/Caches/ms-playwright/chromium-XXXX/chrome-mac/Chromium.app/Contents/MacOS/Chromium (macOS)
# Tùy chọn 2: Tải xuống trực tiếp Chrome cho kiểm thử
# Truy cập: https://googlechromelabs.github.io/chrome-for-testing/
# Tải phiên bản tương ứng với hệ điều hành của bạn
Sau khi cài đặt, ghi nhớ đường dẫn đầy đủ đến tệp nhịp — bạn sẽ cần nó trong bước tiếp theo.
Tích hợp có hai phần hoạt động cùng nhau:
9222).config.yaml của Hermes để nói với nó kết nối đến cổng CDP đó thay vì khởi động trình duyệt riêng.Đó là tất cả — không cần mã, không cần sửa đổi Hermes.
Tải tiện ích mở rộng CapSolver Chrome và giải nén nó vào một vị trí ổn định:
CapSolver.Browser.Extension-chrome-vX.X.X.zip mới nhấtmkdir -p ~/.hermes/capsolver-extension
unzip CapSolver.Browser.Extension-chrome-v*.zip -d ~/.hermes/capsolver-extension/
ls ~/.hermes/capsolver-extension/manifest.json
Bạn nên thấy manifest.json — điều này xác nhận tiện ích mở rộng ở đúng vị trí.
Lưu ý về đường dẫn: Sử dụng đường dẫn tuyệt đối, được giải quyết (không phải
~) khi bạn truyền--load-extension=...cho Chrome sau này. Một số phiên bản Chrome MV3 có các trường hợp đặc biệt nơi dịch vụ công cụ tiện ích mở rộng không thể đăng ký qua các liên kết tượng trưng dưới thư mục người dùng tùy chỉnh. Nếu bạn đang liên kết tượng trưng tiện ích mở rộng từ vị trí khác, hãy sử dụngreadlink -fđể giải quyết đường dẫn thực tế và sử dụng đường dẫn đó.
Mở tệp cấu hình của tiện ích mở rộng tại ~/.hermes/capsolver-extension/assets/config.js và thay giá trị apiKey bằng khóa của bạn:
export const defaultConfig = {
apiKey: 'CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // ← khóa của bạn ở đây
useCapsolver: true,
enabledForRecaptcha: true,
enabledForRecaptchaV3: true,
// ... phần còn lại của cấu hình
};
Bạn có thể lấy khóa API từ bảng điều khiển CapSolver.
Đây là bước quan trọng. Chúng ta khởi động Chrome một lần, riêng biệt với Hermes, với ba cờ quan trọng:
--remote-debugging-port=9222 — mở giao thức DevTools để Hermes có thể kết nối--load-extension=... — tải trước tiện ích mở rộng CapSolver--user-data-dir=... — sử dụng một tài khoản riêng để không xung đột với Chrome cá nhân của bạnHermes có quy ước nội bộ cho thư mục người dùng: ~/.hermes/chrome-debug. Sử dụng đường dẫn này có nghĩa là lệnh /browser connect trong Hermes cũng "hoạt động" mà không cần cờ bổ sung.
/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
Thay /path/to/chrome-for-testing/chrome bằng đường dẫn thực tế của bạn, ví dụ: ~/.cache/ms-playwright/chromium-1200/chrome-linux64/chrome.
Máy chủ không giao diện: Nếu bạn đang chạy trên máy chủ Linux không có màn hình vật lý (VPS, EC2, v.v.), xem phần Các phương pháp tốt nhất bên dưới để cài đặt
Xvfb. Hệ thống tiện ích mở rộng Chrome yêu cầu môi trường màn hình.
Đối với bất kỳ cài đặt nào sống lâu hơn một lần kiểm tra, bao bọc khởi động trong một tập lệnh nhỏ để bạn có thể duy trì Chrome chạy nền, khởi động lại nó một cách sạch sẽ, và giám sát nó với bất kỳ quản lý tiến trình nào bạn đã sử dụng (systemd, supervisor, runit, OpenRC, Docker, v.v.).
Lưu tập lệnh này dưới tên ~/.hermes/chrome-debug.sh và cấp quyền thực thi:
#!/usr/bin/env bash
# ~/.hermes/chrome-debug.sh
# Khởi động Chrome-for-Testing với tiện ích mở rộng CapSolver đã tải trước
# và CDP được mở trên 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 # cho Linux không giao diện — xem phần Các phương pháp tốt nhất
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
Cách khởi động kéo dài đơn giản nhất là:
nohup ~/.hermes/chrome-debug.sh > /tmp/chrome-debug.log 2>&1 &
Đối với sản xuất, giám sát tập lệnh với bất kỳ quản lý tiến trình nào bạn thích. Một đơn vị systemd đơn giản tại ~/.config/systemd/user/chrome-debug.service:
[Unit]
Description=Chrome được trang bị CapSolver cho Hermes Agent
After=network.target
[Service]
ExecStart=%h/.hermes/chrome-debug.sh
Restart=always
RestartSec=5
[Install]
WantedBy=default.target
Sau đó:
systemctl --user daemon-reload
systemctl --user enable --now chrome-debug
Bất kỳ cài đặt tương đương nào (chương trình supervisord, dịch vụ runit, container Docker, v.v.) đều hoạt động như nhau — tích hợp chỉ quan tâm đến việc ai đó duy trì chrome-debug.sh chạy.
Chỉnh sửa tệp cấu hình Hermes tại ~/.hermes/config.yaml. Tìm phần browser: (thường chỉ có inactivity_timeout) và thêm cdp_url:
browser:
inactivity_timeout: 120
cdp_url: http://127.0.0.1:9222
Chỉ dòng này nói với công cụ browser_cdp của Hermes để định tuyến mọi thao tác trình duyệt qua phiên Chrome mà bạn khởi động ở Bước 3, thay vì khởi động riêng.
Tính đảo ngược: Đây là thay đổi duy nhất đối với Hermes. Để quay lại, xóa dòng
cdp_url. Hermes quay lại bất kỳ nhà cung cấp trình duyệt nào nó đang sử dụng (Browserbase, Browser Use, v.v.) mà không có tác động phụ nào khác.
Nếu Hermes đang chạy, khởi động lại nó để nó nhận cdp_url mới:
# Chạy trực tiếp (dạng nền hoặc dưới quản lý của bạn):
hermes gateway run
# Hoặc khởi động lại qua bất kỳ quản lý tiến trình nào bạn đang sử dụng để giám sát Hermes —
# yêu cầu duy nhất là cấu hình và môi trường mới được áp dụng.
Hermes đi kèm với một lệnh chẩn đoán tích hợp kiểm tra toàn bộ tích hợp trong một lần:
hermes doctor
Bạn đang tìm các tín hiệu sau:
◆ Khả năng công cụ
✓ browser-cdp ← CDP attach đang hoạt động
✓ browser
...
◆ Kết nối API
Kiểm tra API OpenRouter... ✓ OpenRouter API
Nếu browser-cdp xuất hiện dưới Khả năng công cụ, Hermes đã phát hiện điểm kết nối CDP của bạn và tích hợp đã hoạt động đúng. Nếu không có, Hermes vô hiệu hóa công cụ đó một cách im lặng (không lỗi) — đó là tín hiệu để theo dõi.
Bạn cũng có thể xác minh Chrome có thể truy cập được trực tiếp:
curl -s http://127.0.0.1:9222/json/version
Một phản hồi như sau xác nhận CDP đang hoạt động:
{
"Browser": "Chrome/<phiên bản của bạn>",
"Protocol-Version": "1.3",
"webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/..."
}
Về tính khả kiến của dịch vụ worker CapSolver: Worker dịch vụ Chrome MV3 ngủ đông một cách quyết liệt, và trên các phiên bản Chrome gần đây,
/json/listcó thể bỏ qua chúng hoàn toàn ngay cả khi chúng đang chạy. Việc thiếu vắng trong/json/listkhông phải là dấu hiệu chẩn đoán — xác minh CapSolver đang hoạt động bằng cách tải trang reCAPTCHA thực tế qua agent và quan sát kết quả widget trong trang, không phải bằng cách kiểm tra danh sách mục tiêu.
Đây là phần quan trọng nhất. Sau khi cài đặt xong, sử dụng CapSolver với Hermes là rất đơn giản.
Không đề cập đến CAPTCHA hoặc CapSolver cho agent. Chỉ cần cho nó thời gian trước khi gửi biểu mẫu.
Agent không cần biết về CAPTCHA. Mở rộng xử lý mọi thứ ở nền. Tất cả những gì bạn cần làm là thêm một thời gian chờ vào hướng dẫn của bạn để mở rộng có thời gian giải quyết thử thách trước khi biểu mẫu được gửi.
Chế độ một lần của Hermes (hermes -z "...") lý tưởng cho kiểm tra tích hợp. Chạy lệnh này từ bất kỳ terminal nào mà hermes CLI có sẵn:
hermes -z 'Mở https://www.google.com/recaptcha/api2/demo. Chờ 60 giây để trang tải hoàn toàn. Sau đó nhấp vào nút có nhãn "Gửi!" hoặc có id "recaptcha-demo-submit". Sau khi nhấp, chờ 5 giây và cho tôi biết nội dung văn bản hiển thị trên trang.'
Những gì xảy ra ở phía sau:
g-recaptcha-responseChuỗi "Verification Success... Hooray!" là thông báo xác nhận của Google — chỉ xuất hiện khi token reCAPTCHA hợp lệ được gửi cùng biểu mẫu.
Gửi lệnh này từ bất kỳ kênh nào kết nối với cổng Hermes (Telegram, Discord, Slack, v.v.):
Đi đến https://example.com/login, điền trường email bằng
"me@example.com" và trường mật khẩu bằng "mypassword123",
sau đó chờ 30 giây và nhấp nút Đăng nhập.
Cho tôi biết trang nào được tải sau khi đăng nhập.
Hermes sẽ định tuyến yêu cầu đến agent của nó, gắn kết với cùng Chrome, điền biểu mẫu, cho mở rộng thời gian để giải CAPTCHA trên trang đăng nhập, nhấp Đăng nhập, và trả lời với nội dung trang sau đăng nhập — tất cả mà bạn không bao giờ đề cập đến CAPTCHA.
Mở https://example.com/contact và điền biểu mẫu liên hệ:
- Tên: "John Doe"
- Email: "john@example.com"
- Tin nhắn: "Xin chào, tôi có một câu hỏi về dịch vụ của bạn."
Chờ 45 giây, sau đó nhấp Gửi Tin nhắn.
Thông báo xác nhận nào xuất hiện trên trang?
| Loại CAPTCHA | Thời gian giải thường lệ | Thời gian chờ khuyến nghị |
|---|---|---|
| reCAPTCHA v2 (hộp kiểm) | 5–15 giây | 30–60 giây |
| reCAPTCHA v2 (ẩn) | 5–15 giây | 30 giây |
| reCAPTCHA v3 | 3–10 giây | 20–30 giây |
| AWS WAF CAPTCHA | 5–15 giây | 30 giây |
Lời khuyên: Khi không chắc, sử dụng 60 giây. Tốt hơn là chờ lâu hơn một chút so với việc gửi quá sớm. Thời gian chờ bổ sung gần như miễn phí — hóa đơn CapSolver của bạn tính theo lần giải, không phải theo giây.
Dưới đây là các cách diễn đạt đã được chứng minh bạn có thể sử dụng qua bất kỳ kênh nào của Hermes:
Tránh các cách diễn đạt này — chúng có thể làm cho agent bị nhầm lẫn và đã được quan sát thấy gây từ chối trên một số mô hình an toàn (đặc biệt là họ GLM):
Đối với những người tò mò về kỹ thuật, đây là kiến trúc:
Tin nhắn của bạn Cổng Hermes
──────────────────────────────────────────────────────────
"đi đến trang, ──► Agent Hermes nhận tin nhắn
chờ 60s, gửi" │
▼
browser_cdp / công cụ trình duyệt
│ (gắn kết qua WebSocket
│ đến ws://127.0.0.1:9222)
▼
┌────────────────────────────────────┐
│ chrome-debug Chromium (nền)│
│ │
│ ┌───────────────────────────────┐ │
│ │ Mở rộng CapSolver MV3 │ │
│ │ (được tải qua --load-extension; │ │
│ │ yêu cầu Chrome để kiểm tra │ │
│ │ hoặc Chromium — Chrome thương mại 137+ bỏ qua cờ này) │ │
│ │ │ │
│ │ 1. script nội dung phát hiện CAPTCHA │
│ │ 2. worker dịch vụ gọi API CapSolver │
│ │ 3. token nhận được │ │
│ │ 4. token được chèn vào trường biểu mẫu │ │
│ └───────────────────────────────┘ │
└────────────────────────────────────┘
│
▼
Agent Hermes chờ 60 giây...
│
▼
browser_cdp: nhấp Submit
│
▼
Biểu mẫu được gửi VỚI token hợp lệ
│
▼
Trang xác nhận sau khi gửi
Lớp công cụ trình duyệt của Hermes được xây dựng xung quanh năm nhà cung cấp thay thế được (Browserbase, Browser Use, Firecrawl, Camoufox, Chromium không đầu cuối). Ba trong số đó là đám mây — bạn không kiểm soát nhị phân trình duyệt, do đó không có nơi để đặt cờ --load-extension. Một (Camoufox) là dựa trên Firefox. Năm — gắn kết CDP — là điểm duy nhất nơi Chromium do người dùng kiểm soát có thể được tích hợp.
Điều trao đổi là rất tốt: Hermes vẫn giữ được khả năng di chuyển đám mây theo mặc định, nhưng ngay khi bạn muốn có quyền lực trình duyệt (CapSolver, bộ chặn quảng cáo của riêng bạn, công cụ MV3 tùy chỉnh, cookie bền vững, bạn tên nó), bạn khởi động Chrome riêng và chỉ định Hermes đến đó. Một dòng cấu hình. Kiểm soát hoàn toàn.
--load-extension thực sự làm gìKhi Chrome khởi động với --load-extension=/path/to/extension, nó coi thư mục đó là một mở rộng chưa đóng gói — cơ chế giống như Chrome sử dụng trong chế độ phát triển. Mở rộng được đăng ký chính xác như nếu bạn cài đặt nó từ Chrome Web Store. Không có sự khác biệt về sandbox, không có truy cập API bị suy giảm — nó là một mở rộng có quyền đầy đủ.
Sau đó, mở rộng CapSolver tiếp quản:
assets/config.js, gửi chi tiết thử thách và kiểm tra tokenAgent Hermes hoàn toàn không liên quan — nó thấy một trang bình thường, chờ thời gian bạn đã nói, và gửi. Trang chỉ đơn giản là có token hợp lệ.
Ghi chú môi trường: Tránh sử dụng
--disable-background-networkingtrong cờ Chrome của bạn. Nó chặn các yêu cầu XHR/fetch ra ngoài của worker dịch vụ CapSolver — do đó mở rộng không thể truy cập API CapSolver. Công thức trong Bước 3 cố ý bỏ qua nó.
~/.hermes/config.yamlThay đổi duy nhất là thêm cdp_url dưới khối browser::
browser:
inactivity_timeout: 120
cdp_url: http://127.0.0.1:9222
--load-extensionTất cả các cờ bạn nên truyền cho Chrome:
| Cờ | Mục đích |
|---|---|
--remote-debugging-port=9222 |
Mở cổng CDP trên TCP port 9222 (bắt buộc để Hermes gắn kết) |
--remote-debugging-address=127.0.0.1 |
Gắn CDP với loopback chỉ (an ninh — chưa bao giờ mở CDP công khai) |
--user-data-dir=$HOME/.hermes/chrome-debug |
Hồ sơ riêng biệt không xung đột với Chrome cá nhân của bạn |
--load-extension=/abs/path/to/capsolver-extension |
Mở rộng thực tế cần tải |
--disable-extensions-except=/abs/path/to/capsolver-extension |
Tận dụng — chỉ tải mở rộng này |
--no-first-run --no-default-browser-check |
Bỏ qua trình hướng dẫn cài đặt Chrome |
--no-sandbox |
Tắt sandbox của Chrome. Tài liệu Chromium ghi chú đây là "dành cho mục đích kiểm tra", nhưng đây là cách khắc phục tiêu chuẩn cho môi trường Linux/Docker không đầu cuối nơi người dùng không có quyền cấp thiết để thiết lập sandbox đúng cách. |
--disable-dev-shm-usage |
Tránh vấn đề /dev/shm trong các container |
assets/config.jsCấu hình tối thiểu trong ~/.hermes/capsolver-extension/assets/config.js:
export const defaultConfig = {
apiKey: 'CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
useCapsolver: true,
enabledForRecaptcha: true,
enabledForRecaptchaV3: true,
// ... xem tài liệu CapSolver để xem toàn bộ các tùy chọn
};
hermes doctor không liệt kê browser-cdp trong Khả năng công cụTriệu chứng: Sau khi khởi động lại Hermes, công cụ browser-cdp bị thiếu trong đầu ra hermes doctor.
Nguyên nhân: Hermes chỉ đăng ký browser-cdp khi có endpoint CDP được cấu hình — browser.cdp_url được thiết lập trong config.yaml, biến môi trường BROWSER_CDP_URL, hoặc phiên kết nối /browser connect đang hoạt động. Kiểm tra là sự hiện diện của cấu hình, không phải khả năng truy cập (xem tools/browser_cdp_tool.py:_browser_cdp_check). Nguyên nhân phổ biến nhất cho việc thiếu công cụ browser-cdp là lỗi chính tả hoặc khóa bị lồng nhầm trong config.yaml, không phải Chrome không thể truy cập.
Giải pháp:
# 1. Xác minh khóa được lồng đúng dưới "browser:" (không ở cấp độ đầu)
grep -A2 '^browser:' ~/.hermes/config.yaml
# đầu ra mong muốn:
# browser:
# ...
# cdp_url: http://127.0.0.1:9222
# 2. Sau đó xác minh Chrome đang chạy tại endpoint đó
curl -s http://127.0.0.1:9222/json/version
# 3. Nếu Chrome bị treo, kiểm tra nhật ký chrome-debug:
tail -n 30 /tmp/chrome-debug.log # hoặc: journalctl --user -u chrome-debug -n 30
Triệu chứng: Chrome khởi động sạch sẽ nhưng CAPTCHA không bao giờ được giải — mọi lần gửi đều thất bại.
Nguyên nhân: Bạn đang sử dụng Chrome thương mại 137+, nó bỏ qua --load-extension một cách im lặng.
Giải pháp: Chuyển sang Chrome for Testing hoặc Chromium. Xác minh nhị phân của bạn:
/path/to/your/chrome --version
# Chrome for Testing: "Chromium 143.0.7499.4"
# Chrome thương mại: "Google Chrome 143.0.7499.109" ← không hoạt động
Nguyên nhân có thể:
--disable-background-networking trong các tham số Chrome (nó sẽ giết các cuộc gọi API ra ngoài của mở rộng)Triệu chứng: Hành động trình duyệt đầu tiên sau khi khởi động Hermes bị thời gian chờ, nhưng các hành động tiếp theo hoạt động bình thường.
Nguyên nhân: Thủ tục bắt tay CDP khởi động lạnh có thể thỉnh thoảng vượt quá thời gian chờ công cụ mặc định của Hermes. Các hành động tiếp theo sử dụng WebSocket đã nóng và nhanh hơn.
Giải pháp: Thử lại lệnh một lần. Nếu vẫn tiếp diễn, tăng browser.inactivity_timeout trong config.yaml.
Triệu chứng: Sau khi chuyển từ một phiên bản Chrome sang phiên bản khác, Chrome bị treo với lỗi cache đĩa.
Nguyên nhân: Thư mục người dùng được tạo bởi phiên bản Chrome khác và giờ không tương thích.
Giải pháp:
# 1. Dừng quá trình chrome-debug hiện tại (bằng cách nào bạn giám sát nó)
pkill -f "remote-debugging-port=9222"
# 2. Xóa hồ sơ lỗi thời
rm -rf ~/.hermes/chrome-debug
# 3. Khởi động lại chrome-debug (thông qua quản lý tiến trình của bạn, hoặc khởi động lại script)
nohup ~/.hermes/chrome-debug.sh > /tmp/chrome-debug.log 2>&1 &
/json/listTriệu chứng: curl http://127.0.0.1:9222/json/list chỉ trả về các mục page, không có service_worker.
Nguyên nhân: Worker dịch vụ Chrome MV3 ngủ đông một cách quyết liệt, và trên các phiên bản Chrome gần đây, endpoint /json/list có thể không hiển thị chúng — ngay cả khi chúng đang xử lý sự kiện.
Giải pháp: Điều này không phải là dấu hiệu chẩn đoán. Không dựa vào /json/list để xác minh CapSolver được tải. Thay vào đó, điều hướng agent đến trang có reCAPTCHA thực tế (ví dụ: https://www.google.com/recaptcha/api2/demo) và quan sát xem việc gửi biểu mẫu có thành công không. Việc gửi thành công là bằng chứng mở rộng được tải và giải thử thách; việc thiếu mục trong danh sách đích không phải là tín hiệu thất bại.
Thời gian chờ dài luôn an toàn hơn. CAPTCHA thường được giải trong 5–20 giây, nhưng độ trễ mạng, thử thách phức tạp hoặc thử lại có thể làm tăng thời gian. 30–60 giây là khoảng thời gian lý tưởng.
Thay vì:
"Đi đến URL, chờ giải CAPTCHA, sau đó gửi"
Sử dụng:
"Đi đến URL, chờ khoảng một phút, sau đó gửi biểu mẫu"
Việc sử dụng ngôn ngữ tự nhiên hiệu quả hơn với agent và thường tương thích tốt hơn với các mô hình được tối ưu hóa về an toàn — việc sử dụng ngôn ngữ đối kháng xung quanh CAPTCHA đã được ghi nhận là gây ra sự từ chối trên một số mô hình GLM.
Mỗi lần giải CAPTCHA sẽ tốn điểm số. Kiểm tra số dư của bạn tại capsolver.com/dashboard thường xuyên để tránh gián đoạn.
Không bao giờ chỉ định --user-data-dir đến hồ sơ Chrome thực tế. Sử dụng ~/.hermes/chrome-debug (mặc định cũng được Hermes tích hợp /browser connect nhắm đến). Như vậy, trình duyệt của agent sẽ được tách biệt hoàn toàn khỏi việc lướt web cá nhân của bạn.
--remote-debugging-address=127.0.0.1 là không phải tùy chọn trong môi trường sản xuất. Giao thức DevTools Chrome cung cấp quyền kiểm soát hoàn toàn trình duyệt cho bất kỳ ai có thể truy cập cổng. Không bao giờ công khai cổng 9222 với mạng công khai.
Xvfb Trên Máy Chủ Không Giao DiệnMở rộng Chrome yêu cầu môi trường hiển thị, ngay cả khi bạn không muốn xem trình duyệt. Trên máy chủ Linux không có màn hình vật lý, hãy chạy một màn hình ảo:
# Cài đặt Xvfb (Ubuntu/Debian)
sudo apt-get install xvfb
# Bắt đầu màn hình ảo
Xvfb :99 -screen 0 1920x1080x24 &
# Chỉ định Chrome sử dụng nó (tệp khởi chạy chrome-debug.sh ở trên cũng xuất DISPLAY=:99)
export DISPLAY=:99
Nếu bạn đang sử dụng tệp khởi chạy chrome-debug.sh từ Bước 3, dòng export DISPLAY=:99 ở đầu đã xử lý điều này — chỉ cần đảm bảo Xvfb :99 đang chạy trên máy chủ.
Một lệnh chrome & mở sẽ bị kết thúc khi shell cha thoát, khi Chrome gặp sự cố, hoặc khi máy tính khởi động lại. Bao bọc lệnh khởi chạy trong chrome-debug.sh (Bước 3) và giám sát nó bằng bất kỳ công cụ nào bạn đang sử dụng cho phần còn lại của hệ thống — systemd, supervisord, runit, Docker, v.v. Tích hợp này không phụ thuộc vào công cụ giám sát; chọn công cụ đã chạy trên máy chủ.
Vì mô hình không bao giờ nhìn thấy CAPTCHA — mở rộng giải nó một cách vô hình — bạn không cần mô hình tiên phong cho công việc liên quan nhiều đến CAPTCHA. Một mô hình giá rẻ và có khả năng công cụ là đủ (ví dụ, đặt provider: openrouter và default: z-ai/glm-4.6 trong config.yaml). Tất cả các khả năng thông minh đều nằm trong mở rộng; mô hình chỉ cần điều hướng, nhập và nhấp.
Sự tích hợp Hermes + CapSolver đại diện cho một cách tiếp cận hoàn toàn mới trong việc giải CAPTCHA trong quy trình agent. Thay vì viết mã để phát hiện CAPTCHA, gọi API và chèn token, bạn chỉ cần:
--load-extension=/abs/path/to/capsolver-extension và --remote-debugging-port=9222cdp_url vào khối browser: trong ~/.hermes/config.yaml:
browser:
cdp_url: http://127.0.0.1:9222
cdp_url ở cấp độ cao sẽ bị bỏ qua một cách im lặng)Mở rộng Chrome CapSolver xử lý phần còn lại — phát hiện CAPTCHA, giải nó thông qua API CapSolver và chèn token vào trang. Agent của bạn không bao giờ cần biết về CAPTCHA.
Đây là cách giải CAPTCHA khi bạn có một agent AI tự động: vô hình, tự động và không cần mã hóa.
Sẵn sàng bắt đầu chưa? Đăng ký CapSolver và sử dụng mã khuyến mãi
hermeđể nhận thêm số dư cho lần nạp đầu tiên!

Không. Thật ra, bạn nên tránh đề cập đến CAPTCHA hoặc CapSolver trong các thông điệp của mình. Mở rộng hoạt động một cách vô hình ở nền. Chỉ cần thêm thời gian chờ trong hướng dẫn của bạn (ví dụ: "chờ 60 giây, sau đó gửi") để mở rộng có thời gian giải CAPTCHA trên trang.
Google Chrome 137+ (phát hành giữa năm 2025) đã xóa bỏ hỗ trợ cho cờ dòng lệnh --load-extension trong các phiên bản thương hiệu. Điều này có nghĩa là mở rộng Chrome không thể được tải trong các phiên bản tự động hóa. Bạn cần Chrome for Testing hoặc Chromium độc lập, vẫn hỗ trợ cờ này.
Không — các nhà cung cấp đám mây chạy trình duyệt trên cơ sở hạ tầng của người khác, vì vậy bạn không thể tải các mở rộng tùy ý vào phiên bản. Mẫu gắn kết CDP trong hướng dẫn này là cách duy nhất để kết hợp Hermes với mở rộng Chrome. (Khi browser.cdp_url được đặt trong config.yaml, Hermes định tuyến lưu lượng trình duyệt qua Chrome cục bộ và các nhà cung cấp đám mây sẽ im lặng cho đến khi bạn xóa dòng.)
Có — bất kỳ trình duyệt dựa trên Chromium nào vẫn hỗ trợ --load-extension đều hoạt động. Bạn có thể sử dụng:
npx playwright install)Cách tích hợp giống nhau: chỉ định --remote-debugging-port=9222 --load-extension=/path/to/capsolver-extension đến bất kỳ tệp nhị phân nào bạn thích.
Điều không hoạt động:
--load-extension một cách im lặngCó — Camoufox là một trong năm nhà cung cấp trình duyệt tích hợp của Hermes, và là lựa chọn tuyệt vời để ẩn Firefox cho các nhiệm vụ không liên quan đến mở rộng Chrome. Vấn đề là Camoufox dựa trên Firefox, và mở rộng CapSolver được xây dựng ở định dạng Chrome MV3 — vì vậy hai thứ này không thể chạy cùng nhau trong một phiên.
Tin tốt: Với Hermes bạn không cần phải chọn vĩnh viễn. Dòng browser.cdp_url trong ~/.hermes/config.yaml là một công tắc — chỉ định nó đến Chrome được trang bị CapSolver khi bạn cần giải CAPTCHA, chỉ định đến Camoufox khi bạn cần ẩn Firefox. Một cấu hình thông thường duy trì cả hai chạy:
# Dòng hoạt động: chuyển đổi giữa các hồ sơ bằng cách ghi chú/ghi chú lại
browser:
cdp_url: http://127.0.0.1:9222 # Chrome CapSolver (hướng dẫn này)
# cdp_url: http://127.0.0.1:9333 # điểm cuối Camoufox
Sau đó khởi động lại Hermes (hermes gateway run, hoặc kích hoạt khởi động lại thông qua công cụ giám sát gateway trên máy của bạn) và việc chuyển đổi sẽ diễn ra trong vài giây. Cùng một Hermes, cùng các kênh, cùng kỹ năng — trình duyệt khác nhau cho từng công việc.
/browser connect của Hermes có hoạt động với cấu hình này không?Có. Lệnh /browser connect tích hợp của Hermes (trong giao diện TUI tương tác hermes) nhắm đến cùng thư mục dữ liệu người dùng mặc định mà chúng tôi đã sử dụng (~/.hermes/chrome-debug) và cùng cổng (9222). Sau khi thiết lập sidecar chrome-debug, bạn có thể sử dụng /browser connect từ bên trong Hermes tương tác, hoặc để browser.cdp_url trong config.yaml để gắn kết vĩnh viễn — cả hai đều hoạt động với cùng Chrome.
Tích hợp này hoàn toàn không phụ thuộc vào kênh. Khi browser.cdp_url được đặt trong config.yaml, mọi hành động trình duyệt — dù đến từ hermes -z trên CLI, giao diện TUI tương tác hermes, hoặc tin nhắn từ Telegram, Discord, Slack, WhatsApp, Signal, hoặc email — đều được định tuyến qua Chrome được trang bị CapSolver. Mở rộng giải CAPTCHA giống nhau trong mọi trường hợp.
Sử dụng trang demo như một bài kiểm tra nhanh chỉ. Trong FAQ chính thức của reCAPTCHA Google, họ khuyến khích tạo các khóa trang thử nghiệm riêng cho các bài kiểm tra tự động thay vì phụ thuộc vào trang demo công khai trong các luồng sản xuất.
Mở rộng Chrome CapSolver tự động giải reCAPTCHA v2 (hộp kiểm và vô hình), reCAPTCHA v3, hCaptcha, FunCaptcha, AWS WAF CAPTCHA, và các widget phổ biến khác. Script nội dung phát hiện loại CAPTCHA trên trang và giải nó tương ứng — không cần cấu hình theo loại. (Lưu ý: Cloudflare Turnstile và Cloudflare 5-second Challenge không được giải bởi mở rộng trình duyệt; chúng chỉ có sẵn qua API CapSolver và nằm ngoài phạm vi hướng dẫn này.)
CapSolver cung cấp giá cả cạnh tranh dựa trên loại CAPTCHA và khối lượng. Truy cập capsolver.com để xem giá hiện tại.
Hermes Agent là phần mềm mã nguồn mở (github.com/NousResearch/hermes-agent) và miễn phí để chạy trên phần cứng của bạn. Bạn sẽ cần khóa API cho nhà cung cấp mô hình AI bạn chọn (OpenRouter được khuyến khích — Hermes hỗ trợ 200+ mô hình qua nó) và, để giải CAPTCHA, một tài khoản CapSolver với số dư.
Đối với đa số CAPTCHA, 30–60 giây là đủ. Thời gian giải thực tế thường là 5–20 giây, nhưng thêm thời gian dự phòng đảm bảo độ tin cậy. Nếu không chắc, hãy sử dụng 60 giây.
Có. Bạn sẽ cần Xvfb (X Virtual Framebuffer) cho màn hình vì mở rộng Chrome yêu cầu môi trường hiển thị. Chạy Xvfb :99 -screen 0 1920x1080x24 & trên máy chủ và đảm bảo DISPLAY=:99 được xuất trong tệp khởi chạy chrome-debug.sh (tệp khởi chạy ở Bước 3 đã làm điều này). Cũng nên giữ --no-sandbox trong các tham số Chrome vì đa số kernel máy chủ không cấp quyền mà Chrome sandbox yêu cầu.
Về mặt kỹ thuật là có, nhưng bạn sẽ phải quản lý xung đột tab/phiên bản tự thân. Đối với đa số công việc, một Hermes ↔ một chrome-debug là cách thiết lập sạch sẽ nhất. Nếu bạn cần song song thực sự, chạy nhiều sidecar chrome-debug trên các cổng khác nhau (9222, 9223, …) và chỉ định mỗi Hermes đến riêng mình.
Có. Hermes Skills là trí nhớ quy trình — chuỗi các bước mà agent đã học. Một kỹ năng liên quan đến truy cập trang web có CAPTCHA sẽ tự động được hưởng lợi từ tích hợp CapSolver giống như một tin nhắn ad-hoc, vì chính công cụ trình duyệt được tăng cường. Không cần thay đổi ở phía kỹ năng.
So sánh các khung phần mềm đại diện AI tốt nhất cho tự động hóa web, giải CAPTCHA, tuân thủ và quy trình làm việc của đại diện sẵn sàng sản xuất vào năm 2026.

So sánh các thư viện quét trang web Java tốt nhất, bao gồm jsoup, Selenium, Playwright cho Java, HtmlUnit, Apache Nutch và các tùy chọn API.

Học cách giải quyết các thách thức AWS WAF và CAPTCHA mà không cần trình duyệt. Sử dụng API của CapSolver để tạo token và bypass mã trạng thái 405.
