Sản phẩmTích hợpTài nguyênTài liệuGiá cả
Bắt đầu ngay

© 2026 CapSolver. All rights reserved.

Liên hệ chúng tôi

Slack: lola@capsolver.com

Sản phẩm

  • reCAPTCHA v2
  • reCAPTCHA v3
  • Cloudflare Turnstile
  • Cloudflare Challenge
  • AWS WAF
  • Tiện ích trình duyệt
  • Thêm nhiều loại CAPTCHA

Tích hợp

  • Selenium
  • Playwright
  • Puppeteer
  • n8n
  • Đối tác
  • Xem tất cả tích hợp

Tài nguyên

  • Chương trình giới thiệu
  • Tài liệu
  • Tham chiếu API
  • Blog
  • Câu hỏi thường gặp
  • Thuật ngữ
  • Trạng thái

Pháp lý

  • Điều khoản dịch vụ
  • Chính sách bảo mật
  • Chính sách hoàn tiền
  • Không bán thông tin cá nhân của tôi
//Cách giải CAPTCHA trong tự động hóa trình duyệt bằng Hermes Agent và CapSolver
May06, 2026

Cách giải CAPTCHA trong tự động hóa trình duyệt bằng Hermes Agent và CapSolver

Anh Tuan

Anh Tuan

Data Science Expert

Quy trình tự động hóa trình duyệt Hermes tích hợp với CapSolver để giải CAPTCHA tự động

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à gì?

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).

Tính năng chính

  • Cổng đa kênh: Giao tiếp với trợ lý của bạn qua Telegram, Discord, Slack, WhatsApp, Signal, email, hoặc giao diện terminal riêng.
  • Mô hình tự mang theo: OpenRouter (200+ mô hình), Nous Portal, NVIDIA NIM, Z.AI, endpoint của riêng bạn — chuyển đổi bằng hermes model.
  • Bộ nhớ qua phiên: Tìm kiếm phiên FTS5 + tóm tắt của LLM giúp trợ lý nhớ những gì bạn đã nói tuần trước.
  • Hệ thống kỹ năng: Bộ nhớ quy trình mà trợ lý tự xây dựng, tương thích với tiêu chuẩn agentskills.io.
  • Bảy nền tảng terminal: Local, Docker, SSH, Singularity, Modal, Daytona, Vercel Sandbox.
  • Công cụ trình duyệt tích hợp: Điều khiển Chromium thực tế thông qua Playwright + Chrome DevTools Protocol.

Công cụ Trình duyệt

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à gì?

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ý.

Tại sao tích hợp này khác biệt?

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.


Yêu cầu trước

Trước khi thiết lập tích hợp, hãy đảm bảo bạn có:

  1. Hermes Agent đã cài đặt và cổng kết nối đang chạy (hướng dẫn cài đặt)
  2. Tài khoản CapSolver với khóa API (đăng ký tại đây)
  3. Chromium hoặc Chrome để kiểm thử (xem lưu ý quan trọng dưới đây)

Lưu ý quan trọng: Bạn cần Chromium, không phải Google Chrome

Google Chrome 137+ (phát hành giữa năm 2025) đã ngầm loại bỏ hỗ trợ cho --load-extension trong 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ử:

bash Copy
# 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)
bash Copy
# 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.


Hướng dẫn cài đặt từng bước

Tích hợp có hai phần hoạt động cùng nhau:

  1. Một tiến trình Chrome riêng mà bạn khởi động với tiện ích mở rộng CapSolver đã tải trước và CDP được mở trên cổng đã biết (chúng ta sẽ sử dụng 9222).
  2. Thay đổi nhỏ trong tệp 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.

Bước 1: Tải xuống Tiện ích mở rộng Chrome của CapSolver

Tải tiện ích mở rộng CapSolver Chrome và giải nén nó vào một vị trí ổn định:

  1. Truy cập các phiên bản tiện ích mở rộng CapSolver trên GitHub
  2. Tải xuống CapSolver.Browser.Extension-chrome-vX.X.X.zip mới nhất
  3. Giải nén zip:
bash Copy
mkdir -p ~/.hermes/capsolver-extension
unzip CapSolver.Browser.Extension-chrome-v*.zip -d ~/.hermes/capsolver-extension/
  1. Xác minh việc giải nén:
bash Copy
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ụng readlink -f để giải quyết đường dẫn thực tế và sử dụng đường dẫn đó.

Bước 2: Thiết lập Khóa API CapSolver của bạ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:

js Copy
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.

Bước 3: Khởi động Chrome với Tiện ích mở rộng và CDP được bật

Đâ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ạn

Hermes 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.

Tùy chọn A: Khởi động thủ công một lần (tốt cho kiểm tra nhanh)

bash Copy
/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.

Tùy chọn B: Quy trình nền kéo dài (được khuyến khích cho sản xuất)

Đố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:

bash Copy
#!/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à:

bash Copy
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:

ini Copy
[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 đó:

bash Copy
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.

Bước 4: Cho Hermes kết nối qua CDP

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:

yaml Copy
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.

Bước 5: Khởi động lại Hermes

Nếu Hermes đang chạy, khởi động lại nó để nó nhận cdp_url mới:

bash Copy
# 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.

Bước 6: Xác minh Cài đặt

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:

bash Copy
hermes doctor

Bạn đang tìm các tín hiệu sau:

Copy
◆ 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:

bash Copy
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:

json Copy
{
"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/list có 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/list khô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.


Cách sử dụng

Đâ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.

Quy tắc vàng

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.

Ví dụ 1: Kiểm tra một lần

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:

bash Copy
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:

  1. Hermes gắn kết với Chrome của bạn qua CDP
  2. Agent điều hướng đến trang demo reCAPTCHA của Google
  3. Script nội dung của CapSolver (đang chạy bên trong Chrome) phát hiện widget reCAPTCHA
  4. Worker dịch vụ của mở rộng gọi API CapSolver và giải thử thách (thường trong 5–15 giây)
  5. Token được chèn vào trường biểu mẫu ẩn g-recaptcha-response
  6. Sau 60 giây, agent nhấp Submit
  7. Máy chủ Google xác minh token và trả về trang kết quả
  8. Agent đọc văn bản sau khi gửi: "Verification Success... Hooray!"

Chuỗ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.

Ví dụ 2: Từ một kênh nhắn tin

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.):

Copy
Đ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.

Ví dụ 3: Gửi biểu mẫu liên hệ có reCAPTCHA

Copy
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?

Thời gian chờ khuyến nghị

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.

Mẫu ngôn ngữ tự nhiên hoạt động

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:

  • "Đi đến [URL], chờ 60 giây, sau đó gửi biểu mẫu"
  • "Điều hướng đến [URL], điền [trường], chờ 30 giây, sau đó nhấp [nút]"
  • "Mở [URL] và sau khoảng một phút, nhấp Gửi và cho tôi biết kết quả"
  • "Truy cập [URL], chờ một chút để trang tải hoàn toàn, sau đó gửi"

Những gì KHÔNG nên nói

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):

  • "Chờ CAPTCHA được giải" (agent không biết về CAPTCHA)
  • "Sử dụng CapSolver để giải xác minh" (agent không kiểm soát mở rộng)
  • "Nhấp vào hộp kiểm reCAPTCHA" (mở rộng xử lý điều đó — nhấp có thể gây cản trở)
  • "Bỏ qua kiểm tra bảo mật" (nghe như có ý định đối kháng — một số mô hình sẽ từ chối)

Cách hoạt động bên trong

Đối với những người tò mò về kỹ thuật, đây là kiến trúc:

Copy
  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

Tại sao gắn kết CDP thay vì "Chỉ truyền một danh sách mở rộng"?

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:

  1. Script nội dung (được chèn vào mọi trang) theo dõi các widget CAPTCHA đã biết — reCAPTCHA, hCaptcha, FunCaptcha, AWS WAF, v.v.
  2. Khi phát hiện widget, script nội dung gửi tin nhắn đến worker dịch vụ
  3. Worker dịch vụ xác thực với API CapSolver bằng khóa từ assets/config.js, gửi chi tiết thử thách và kiểm tra token
  4. Khi nhận được token, nó được chèn vào trường phản hồi ẩn của trang qua script nội dung
  5. Khi agent nhấp Submit, biểu mẫu đã mang theo token đã được giải

Agent 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-networking trong 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ó.


Tham chiếu cấu hình đầy đủ

Bên Hermes: ~/.hermes/config.yaml

Thay đổi duy nhất là thêm cdp_url dưới khối browser::

yaml Copy
browser:
  inactivity_timeout: 120
  cdp_url: http://127.0.0.1:9222

Bên Chrome: Các cờ --load-extension

Tấ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

Bên CapSolver: assets/config.js

Cấu hình tối thiểu trong ~/.hermes/capsolver-extension/assets/config.js:

js Copy
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
};

Xử lý sự cố

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:

bash Copy
# 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

Mở rộng không tải (vấn đề Chrome thương mại)

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:

bash Copy
/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

CAPTCHA không được giải (biểu mẫu thất bại)

Nguyên nhân có thể:

  1. Thời gian chờ không đủ — Tăng lên 60 giây
  2. Khóa API CapSolver không hợp lệ — Kiểm tra bảng điều khiển CapSolver của bạn
  3. Số dư không đủ — Nạp tiền tài khoản CapSolver của bạn
  4. Mạng nền bị tắt — Đảm bảo không có cờ --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)
  5. Chrome thương mại — xem trên

Thời gian chờ trình duyệt khi hành động đầu tiên sau khi khởi độ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.

Chrome bị treo sau khi chuyển đổi nhị phân

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:

bash Copy
# 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 &

Worker dịch vụ CapSolver không xuất hiện trong /json/list

Triệ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.


Nguyên tắc tốt nhất

1. Luôn sử dụng thời gian chờ dà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.

2. Giữ tin nhắn tự nhiên

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.

3. Theo dõi Số dư CapSolver

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.

4. Sử dụng Thư mục Dữ liệu Người dùng Độc lập

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.

5. Liên kết CDP Chỉ Với Loopback

--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.

6. Sử dụng Xvfb Trên Máy Chủ Không Giao Diện

Mở 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:

bash Copy
# 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ủ.

7. Giám sát Chrome Với Quản lý Quy trình Trong Sản Xuất

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ủ.

8. Kết hợp Với Mô Hình Giá Rẻ

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.


Kết luận

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:

  1. Khởi động Chrome một lần với --load-extension=/abs/path/to/capsolver-extension và --remote-debugging-port=9222
  2. Thêm cdp_url vào khối browser: trong ~/.hermes/config.yaml:
    yaml Copy
    browser:
      cdp_url: http://127.0.0.1:9222
    (lưu ý khóa lồng — cdp_url ở cấp độ cao sẽ bị bỏ qua một cách im lặng)
  3. Giao tiếp với agent một cách tự nhiên — chỉ cần thêm thời gian chờ trước khi gửi biểu mẫu
  4. Đọc kết quả trang sau khi gửi biểu mẫu sau khi biểu mẫu được gửi

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!


FAQ

Tôi có cần thông báo cho agent về CapSolver không?

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.

Tại sao tôi không thể sử dụng Google Chrome thông thường?

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.

Tôi có thể sử dụng các nhà cung cấp trình duyệt đám mây của Hermes (Browserbase, Browser Use) thay thế không?

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.)

Tôi có thể sử dụng các trình duyệt khác ngoài Chrome for Testing khô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:

  • Chrome for Testing (được khuyến khích — hướng dẫn này sử dụng)
  • Chromium (phiên bản độc lập)
  • Chromium được tích hợp trong Playwright (đã có trên máy nếu bạn từng chạy npx playwright install)
  • Brave, Vivaldi, Opera — tất cả đều dựa trên Chromium, đều chấp nhận cờ
  • Chrome Google cũ ≤ 136 — nhưng cờ đã bị xóa trong 137+, vì vậy đừng cố định ở phiên bản lỗi thời

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:

  • Chrome Google thương hiệu 137+ — bỏ qua --load-extension một cách im lặng
  • Microsoft Edge — cùng việc xóa bỏ này
  • Trình duyệt dựa trên Firefox (Firefox, LibreWolf, Camoufox) — mở rộng CapSolver ở định dạng Chrome MV3, không phải WebExtensions của Firefox
  • Các nhà cung cấp trình duyệt đám mây của Hermes (Browserbase, Browser Use, Firecrawl) — bạn không kiểm soát được nhị phân từ xa, vì vậy không thể tải mở rộng tùy chỉnh

Camoufox thì sao? Hermes hỗ trợ nó.

Có — 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:

yaml Copy
# 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.

Lệnh /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.

Việc sử dụng Hermes qua các kênh nhắn tin thì sao?

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.

Tôi có nên sử dụng trang demo của Google trong các bài kiểm tra tự động không?

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 CapSolver hỗ trợ loại CAPTCHA nào?

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.)

Chi phí của CapSolver là bao nhiêu?

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 có miễn phí không?

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ư.

Tôi nên nói với agent chờ bao lâu?

Đố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.

Tôi có thể sử dụng điều này trên máy chủ không giao diện không?

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.

Tôi có thể chạy nhiều phiên Hermes chỉ định đến cùng một chrome-debug không?

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.

Điều này có hoạt động với Hermes Skills không?

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.

Xem thêm

May 07, 2026

Các khung công cụ AI tốt nhất dành cho tự động hóa web và giải CAPTCHA

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.

Anh Tuan
Anh Tuan
May 07, 2026

Những thư viện Java tốt nhất để trích xuất dữ liệu web đáng tin cậy

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.

Anh Tuan
Anh Tuan

Nội dung

May 06, 2026

Cách vượt qua Thách thức AWS WAF mà không cần trình duyệt: Hướng dẫn kỹ thuật

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.

Anh Tuan
Anh Tuan
Apr 30, 2026

Thu thập dữ liệu web trên Linux: Công cụ, Cài đặt và Hướng dẫn thực hành

Cài đặt truy xuất dữ liệu web trên Linux với Python, máy chủ trung gian và xử lý CAPTCHA. Hướng dẫn thực hành cho nhà phát triển bao gồm Scrapy, Playwright, CapSolver và dòng dữ liệu.

Anh Tuan
Anh Tuan
Blog
All