본문으로 건너뛰기

비밀번호

anchor alias
anchor alias

비밀번호

Hermes Agent는 여러 백엔드 옵션을 갖춘 전체 브라우저 자동화 도구가 포함되어 있습니다.

  • Browserbase 클라우드 모드 를 통해 Browserbase 관리 클라우드 브라우저 및 안티 봇 툴링
  • **버저 Browser Use를 통해 클라우드 모드를 사용하세요.
  • Firecrawl 클라우드 모드 를 통해 Firecrawl 내장 스크랩으로 클라우드 브라우저에 대한
  • Camofox Local mode via Camofox for local anti-detection browsing (Firefox 기반 지문 스푸핑)
  • **CDP를 통한 Local Chrome ** - /browser connect를 사용하여 Chrome 인스턴스에 브라우저 도구를 연결
  • Local 브라우저 모드 를 통해 agent-browser CLI 및 로컬 크롬 설치

모든 모드에서 에이전트는 웹 사이트를 탐색 할 수 있으며 페이지 요소와 상호 작용하고 양식을 작성하고 정보를 추출 할 수 있습니다.

설명

페이지는 accessibility tree (텍스트 기반 스냅샷)로 표현되며 LLM Agent에 이상적입니다. 상호 작용하는 성분은 ref IDs (같은 @e1, @e2)를 얻습니다 에이전트은 누르고 typing를 위해 사용됩니다.

주요 기능:

  • **Multi-provider 클라우드 실행 ** - Browserbase, Browser Use, 또는 Firecrawl - 필요한 로컬 브라우저 없음
  • **Local Chrome 통합 ** - 핸즈온 브라우징을 위한 CDP를 통해 Chrome을 실행할 수 있습니다
  • Built-in stealth - 임의의 지문, CAPTCHA 해결, 주거 프록시 (Browserbase)
  • Session isolation - 각 작업은 자체 브라우저 세션을 가져옵니다
  • 자동 정리 - 비활성 세션은 타임 아웃 후 닫힙니다
  • **Vision Analysis ** - 스크린 샷 + 시각 이해를위한 AI 분석

설치하기

Nous Subscribers {#setup}

유료 Nous Portal 구독이 있는 경우, **Tool Gateway**를 통해 브라우저 자동화를 사용할 수 있습니다. hermes model 또는 hermes tools를 실행하여 활성화합니다.

Browserbase 클라우드 모드

Browserbase-managed 클라우드 브라우저를 사용하려면 다음을 추가하세요

# Add to ~/.hermes/.env
BROWSERBASE_API_KEY=***
BROWSERBASE_PROJECT_ID=your-project-id-here

browserbase.com에서 자격 증명을 받으십시오.

임계값 클라우드 모드 사용

브라우저를 사용 클라우드 브라우저 제공자로 사용, 추가:

# Add to ~/.hermes/.env
BROWSER_USE_API_KEY=***

browser-use.com에서 API 키를 가져옵니다. 임계값 REST API를 통해 클라우드 브라우저를 제공합니다. Browserbase 및 Browser Use credentials가 설정되면 Browserbase가 우선 순위를 부여합니다.

Firecrawl 클라우드 모드

사용자의 클라우드 브라우저 제공자로 Firecrawl를 사용하려면 다음을 추가하세요

# Add to ~/.hermes/.env
FIRECRAWL_API_KEY=fc-***

firecrawl.dev에서 API 키를 가져옵니다. 그런 다음 브라우저 제공자로 Firecrawl를 선택하세요

hermes setup tools
# → Browser Automation → Firecrawl

옵션 설정:

# Self-hosted Firecrawl instance (default: https://api.firecrawl.dev)
FIRECRAWL_API_URL=http://localhost:3002

# Session TTL in seconds (default: 300)
FIRECRAWL_BROWSER_TTL=600

Hybrid routing: LAN/localhost를 위한 공공 URL을 위한 클라우드

클라우드 제공자가 구성되면 Hermes auto-spawns a *local Chromium sidecar * 이름 private/loopback/LAN 주소로 해결되는 URL에 대한 (localhost, 127.0.0.1, 192.168.x.x, 10.x.x.x, 172.16-31.x.x, *.local, *.lan, *.internal, IPv6 루프백 ::1, 링크현지 169.254.x.x). 공개 URL은 계속 사용 같은 대화의 클라우드 제공자.

이것은 일반적으로 "I'm development locally but using Browserbase" 워크플로우를 해결합니다 에이전트는 http://localhost:3000 및 스크랩에서 대시보드를 스크린 샷 할 수 있습니다 https://github.com 제공업체를 전환하지 않고 SSRF 가드를 비활성화합니다. 클라우드 제공자는 개인 URL을 볼 수 없습니다.

이 기능은 기본적으로 **입니다. 그것을 비활성화하려면 (모든 URL은 구성에 이동 클라우드 제공자, 하기 전에):

# ~/.hermes/config.yaml
browser:
cloud_provider: browserbase
auto_local_for_private_urls: false

자동 라우팅 사용으로, 개인 URL이 거부됩니다 "Blocked: URL targets a private or internal address" 설정하지 않는 한 browser.allow_private_urls: true (클라우드 제공업체가 시도한 경우 — 일반적으로 Browserbase 등에서 작동하지 않습니다. LAN에 도달 할 수 없습니다.

요구 사항: 로컬 사이드카는 동일한 agent-browser CLI를 순수 로컬로 사용합니다 모드, 그래서 설치해야합니다 (hermes setup tools → Browser Automation 자동 설치). Post-navigation는 개인에 공개 URL에서 리디렉션 주소는 여전히 차단됩니다 (당신은 도달하는 리디렉트로 내부 트릭을 사용할 수 없습니다 공공 경로로 LAN).

Camofox 로컬 모드

Camofox는 Camoufox를 감싸는 자체 호스팅 Node.js 서버입니다 (C++ 지문 스포핑을 가진 Firefox 포크). 그것은 클라우드 의존성없이 로컬 검출 검색을 제공합니다.

# Clone the Camofox browser server first
git clone https://github.com/jo-inc/camofox-browser
cd camofox-browser

# Build and start with Docker using the default container settings
# (auto-detects arch: aarch64 on M1/M2, x86_64 on Intel)
make up

# Stop and remove the default container
make down

# Force a clean rebuild (for example, after upgrading VERSION/RELEASE)
make reset

# Just download binaries without building
make fetch

# Override arch or version explicitly
make up ARCH=x86_64
make up VERSION=135.0.1 RELEASE=beta.24
``make up`는 기본 컨테이너를 즉시 시작합니다. 더 큰 Node heap, VNC, 또는 persistent 프로파일 디렉토리와 같은 사용자 정의 실행 설정을 원하면 이미지를 먼저 만들고 스스로 실행하십시오

```bash
# Build the image without starting the default container
make build

# Start with persistence, VNC live view, and a larger Node heap
mkdir -p ~/.camofox-docker
docker run -d \
--name camofox-browser \
--restart unless-stopped \
-p 9377:9377 \
-p 6080:6080 \
-p 5901:5900 \
-e CAMOFOX_PORT=9377 \
-e ENABLE_VNC=1 \
-e VNC_BIND=0.0.0.0 \
-e VNC_RESOLUTION=1920x1080 \
-e MAX_OLD_SPACE_SIZE=2048 \
-v ~/.camofox-docker:/root/.camofox \
camofox-browser:135.0.1-aarch64

VNC가 활성화된 상태에서 브라우저는 머리 모드로 실행되며, 브라우저에서 http://localhost:6080(noVNC)로 볼 수 있습니다. 기본 VNC 클라이언트를 localhost:5901에 연결할 수 있습니다.

만약 당신이 이미 ran make up, 중지 및 사용자 지정을 시작하기 전에 기본 컨테이너를 제거:

make down
# then run the custom docker run command above

그런 다음 ~/.hermes/.env에 설정:

CAMOFOX_URL=http://localhost:9377

또는 hermes tools → 브라우저 자동화 → Camofox를 통해 구성합니다.

CAMOFOX_URL이 설정되면, Browserbase 또는 Agent-browser 대신 Camofox를 통해 모든 브라우저 도구가 자동으로 경로를 설정합니다.

Persistent 브라우저 세션

기본적으로 각 Camofox 세션은 임의의의 정체성을 얻습니다. 쿠키 및 로그인은 에이전트 재시작에서 살아남지 않습니다. 지속적인 브라우저 세션을 활성화하려면 다음을 추가하십시오. ~/.hermes/config.yaml:

browser:
camofox:
managed_persistence: true

그럼 완전히 재시작 Hermes 그래서 새로운 설정은 픽업.

Nested path matters

헤르메스는 browser.camofox.managed_persistence을 읽습니다. ********** 최고 수준의 managed_persistence. 일반적인 실수는 쓰기:

# ❌ Wrong — Hermes ignores this
managed_persistence: true

플래그가 잘못된 경로에 배치되면 Hermes는 임의의의 ephemeral userId로 돌아갑니다. 로그인 상태는 각 세션에서 손실됩니다.

헤르메스
  • deterministic profile-scoped userId를 Camofox로 보내서 서버는 세션 전체에 동일한 Firefox 프로파일을 재사용할 수 있습니다.
  • 서버 측 컨텍스트 파괴를 정리하여, 쿠키 및 로그인은 에이전트 작업 사이에 살아 있습니다.
  • userId를 활성 헤르메스 프로파일에 포함하므로 다른 헤르메스 프로파일은 다른 브라우저 프로파일을 얻습니다 (프로필 고립).
어떤 헤르메스가하지 않습니다
  • Camofox 서버에서 persistence를 강제하지 않습니다. Hermes는 안정적인 userId만 전송합니다. 서버는 userId를 persistent Firefox 프로파일 디렉토리에 맵핑하여 영광해야 합니다.
  • Camofox 서버 빌드가 ephemeral (e.g. 항상 저장 된 프로파일을로드하지 않고 browser.newContext()를 호출하면 Hermes는 해당 세션을 만들 수 없습니다. userId-based profile persistence를 구현하는 Camofox 빌드를 실행했는지 확인하십시오.
작업 증명
  1. Hermes 및 Camofox 서버를 시작합니다.
  2. 브라우저 작업에서 Google (또는 로그인 사이트)를 열고 수동으로 로그인하십시오.
  3. 일반적으로 브라우저 작업을 종료합니다.
  4. 새로운 브라우저 작업을 시작합니다.
  5. 같은 사이트를 다시 엽니 다 — 당신은 여전히 로그인해야합니다.

단계 5 로그 아웃하면, Camofox 서버는 안정적인 userId을 존중하지 않습니다. config 경로를 더블 체크하면 완전히 재시작 config.yaml를 편집한 후 Hermes, Camofox 서버 버전은 persistent per-user 프로파일을 지원합니다.

국가 생활

Hermes derives the stable userId from profile-scoped directory ~/.hermes/browser_auth/camofox/ (또는 비기본 프로파일의 $HERMES_HOME 아래 해당). 실제 브라우저 프로필 데이터는 Camofox 서버 측에 살고, 그 userId에 의해 키. 영구 프로필을 완전히 재설정하려면 Camofox 서버에서 삭제하고 해당 Hermes 프로필의 state 디렉토리를 제거하십시오.

외부 관리 Camofox 세션

또 다른 앱이 눈에 띄는 Camofox 브라우저를 구동 할 때 ( 데스크탑 조수, 사용자 정의 통합, 또 다른 에이전트)는 자체 격리 된 프로파일을 스파킹 대신 동일한 정체성을 작동하기 위해 Hermes를 구성합니다.

3개의 손잡이는 행동을 통제합니다:

설정하기카테고리제품 정보
browser.camofox.user_idCAMOFOX_USER_ID카모fox userId Hermes는 탭을 만들 때 사용합니다. 이 세션을 "외부 관리"모드로 설정합니다.
browser.camofox.session_keyCAMOFOX_SESSION_KEYsessionKey (a.k.a. listItemId)가 탭 생성에 전송되었습니다. 채택 중 기존 탭과 일치하도록 사용. unset가 없는 경우 per-task 값으로 기본값.
browser.camofox.adopt_existing_tabCAMOFOX_ADOPT_EXISTING_TAB사실, Hermes 호출 GET /tabs?userId=<user_id> 처음 사용 하 고 새로운 것을 만들기 전에 기존 탭을 재사용.

Env vars는 config.yaml에 대해 전진합니다. 어떤 형태 일:

browser:
camofox:
user_id: shared-camofox
session_key: visible-tab
adopt_existing_tab: true
````bash
CAMOFOX_USER_ID=shared-camofox
CAMOFOX_SESSION_KEY=visible-tab
CAMOFOX_ADOPT_EXISTING_TAB=true

**user_id가 설정될 때 어떤 변경 사항이 있습니까? **

  • Hermes는 작업 끝에 파괴적인 정리를 건너 (managed_persistence: true와 동일). 다른 앱의 탭/cookies/profile 생존.
  • Hermes doesnot call DELETE /sessions/<user_id> — 그 엔드포인트는 모든 사용자 데이터를 닦아서 외부 앱의 세션을 불화하면 됩니다.

** 탭 채택 작품 (adopt_existing_tab: true):**

  1. 프로세스 시작 후 첫 번째 브라우저 도구 호출에서 Hermes 문제 GET /tabs?userId=<user_id> (5-second timeout).
  2. 응답의 어떤 탭이 listItemId == session_key이면, Hermes는 그 그룹에서 가장 최근에 만들어진 것을 채택한다.
  3. 그렇지 않으면, Hermes는 사용자가 가장 최근 만든 탭을 채택합니다 (listItemId).
  4. 탭이 존재하지 않거나 요청이 실패하면 Hermes는 다음 작업에서 새로운 탭을 만들기 위해 돌아갑니다.

tab_id가 세션을 위해 만 불을 붙입니다. 외부 앱이 채택 된 탭 중단을 닫으면 다음 브라우저 도구 호출은 Camofox 오류를 표면화합니다. - Hermes는 모든 통화에 신선한 탭에 대한 재포가되지 않습니다.

Picking session_key: specific 기존 탭에 올리는 Hermes를 원한다면, session_keylistItemId로 설정하면 외부 앱을 만들 수 있습니다. session_key unset만 설정하면 user_id만 설정하면, Hermes는 per-task session_key (task_<id>)를 생성합니다. - 헤르메스는 외부 앱과 쿠키 및 프로필을 공유하지만 재사용 대신 자신의 탭을 열 것입니다.

통화 참고: 외부 앱과 헤르메스는 동시에 동일한 Camofox userId를 구동 할 수 있지만, Camofox는 클라이언트간에 per-tab 초점을 맞추지 않습니다. 애플리케이션 레이어의 좌표 소유권 (예: Hermes가 실행되는 동안 외부 앱 일시 정지).

VNC 라이브 뷰

Camofox가 머리 모드로 실행될 때 (가시 브라우저 창에), 그것은 그것의 건강 체크 응답에 있는 VNC 항구를 노출합니다. Hermes는 이 발견을 자동으로 발견하고 내비게이션 응답에서 VNC URL을 포함하므로 에이전트는 브라우저 라이브를 볼 수 있습니다.

로컬 크롬을 통해 CDP (/browser connect)

클라우드 제공자 대신, Chrome DevTools Protocol (CDP)를 통해 Chrome 인스턴스를 실행하는 Hermes 브라우저 도구를 연결할 수 있습니다. 이것은 당신이해야 할 때 유용합니다 에이전트가 실시간으로 수행하고, 자신의 쿠키 / 세션을 필요로하는 페이지와 상호 작용, 또는 클라우드 브라우저 비용을 방지.

노트

/browser connectinteractive-CLI 슬래시 명령입니다. WebUI, Telegram, Discord 또는 다른 게이트웨이 채팅 내부에서 실행하려고 하는 경우, 메시지는 일반 텍스트로 에이전트로 전송되며 명령은 실행되지 않습니다. 터미널 (hermes 또는 hermes chat)에서 헤르메스를 시작하고 /browser connect를 발행합니다.

CLI에서, 사용:

/browser connect              # Connect to Chrome at ws://localhost:9222
/browser connect ws://host:port # Connect to a specific CDP endpoint
/browser status # Check current connection
/browser disconnect # Detach and return to cloud/local mode

Chrome이 원격 디버깅으로 실행되지 않는 경우 Hermes는 --remote-debugging-port=9222로 자동 출시를 시도합니다.

CDP를 활성화하여 Chrome을 수동으로 시작하려면 전용 user-data-dir을 사용하므로 debug 포트는 Chrome이 이미 정상적인 프로파일을 실행하는 경우에도 실제로 옵니다

# Linux
google-chrome \
--remote-debugging-port=9222 \
--user-data-dir=$HOME/.hermes/chrome-debug \
--no-first-run \
--no-default-browser-check &

# macOS
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--remote-debugging-port=9222 \
--user-data-dir="$HOME/.hermes/chrome-debug" \
--no-first-run \
--no-default-browser-check &

그 후 Hermes CLI를 실행하고 /browser connect을 실행합니다.

--user-data-dir? Chrome을 실행하지 않고 일반 Chrome 인스턴스가 이미 실행중인 동안 기존 프로세스에서 새로운 창을 열고 기존 프로세스가 --remote-debugging-port로 시작되지 않았으므로 9222을 열지 않습니다. 전용 user-data-dir는 벌레 포트가 실제로 듣는 신선한 크롬 프로세스를 강제합니다. --no-first-run --no-default-browser-check 신선한 프로필에 대한 첫 번째 발사 마법사를 건너.

CDP를 통해 연결되면 모든 브라우저 도구 (browser_navigate, browser_click 등)는 클라우드 세션을 회전 대신 라이브 크롬 인스턴스에서 작동.

WSL2 + Windows 크롬: /browser connect에 MCP를 선호하세요

는 종종 최고의 경로가 아닙니다.

왜:

  • /browser connect 기대 Hermes 자체는 쓸모있는 CDP 엔드 포인트에 도달
  • 현대 크롬 라이브 디버깅 세션은 종종 WSL에서 직접 도달 할 수없는 호스트 로컬 엔드 포인트를 노출합니다. 고전적인 9222 포트는
  • Windows Chrome이 debuggable 일 때, 가장 청결한 통합은 수시로 Chrome에 Windows 측 브라우저 MCP 서버 부착을 시키고 그 MCP 서버에게 Hermes 대화를 시켰습니다

그 설정은 Hermes MCP 지원을 통해 chrome-devtools-mcp를 선호합니다.

실제 설정에 대한 MCP 가이드를 참조하세요:

지역 브라우저 모드

** 어떤 클라우드 자격 증명을 설정하고 /browser connect를 사용하지 않는 경우, Hermes는 여전히 agent-browser에 의해 구동되는 로컬 크롬 설치를 통해 브라우저 도구를 사용할 수 있습니다.

옵션 환경 변수

# Residential proxies for better CAPTCHA solving (default: "true")
BROWSERBASE_PROXIES=true

# Advanced stealth with custom Chromium — requires Scale Plan (default: "false")
BROWSERBASE_ADVANCED_STEALTH=false

# Session reconnection after disconnects — requires paid plan (default: "true")
BROWSERBASE_KEEP_ALIVE=true

# Custom session timeout in milliseconds (default: project default)
# Examples: 600000 (10min), 1800000 (30min)
BROWSERBASE_SESSION_TIMEOUT=600000

# Inactivity timeout before auto-cleanup in seconds (default: 120)
BROWSER_INACTIVITY_TIMEOUT=120

# Extra Chromium launch flags (comma- or newline-separated). Hermes auto-injects
# `--no-sandbox,--disable-dev-shm-usage` when it detects root or AppArmor-restricted
# unprivileged user namespaces (Ubuntu 23.10+, DGX Spark, many container images),
# so most users don't need to set this. Set it manually only if you need a flag
# Hermes doesn't add automatically; setting it disables the auto-injection.
AGENT_BROWSER_ARGS=--no-sandbox

Agent-browser CLI 설치

npm install -g agent-browser
# Or install locally in the repo:
npm install
정보

browser 도구는 구성의 toolsets 목록에 포함되어 있어야 합니다. hermes config set toolsets '["hermes-cli", "browser"]'입니다.

사용 설명서

browser_navigate

URL로 이동합니다. 다른 브라우저 도구 전에 호출해야합니다. Browserbase 세션을 초기화합니다.

Navigate to https://github.com/NousResearch

간단한 정보 검색을 위해 web_search 또는 web_extract를 선호합니다. 그들은 빠르고 저렴합니다. 브라우저 도구를 사용하여 interact 페이지 (클릭 버튼, 양식, 동적 콘텐츠를 처리).

browser_snapshot

현재 페이지의 접근성 트리의 텍스트 기반 스냅 샷을 가져옵니다. @e1, @e2browser_clickbrowser_type와 같은 ref ID와 대화 형 요소를 반환합니다.

  • full=false (기본값): Compact view만의 인터랙티브 엘리먼트
  • full=true: 전체 페이지 내용

8000자 이상의 스냅샷은 LLM에 의해 자동으로 요약됩니다.

browser_click

스냅샷에서 ref ID로 식별된 요소를 클릭합니다.

Click @e5 to press the "Sign In" button

browser_type

입력 필드에 텍스트를 입력합니다. 필드를 먼저 정리하고 새로운 텍스트를 입력합니다.

Type "hermes agent" into the search field @e3

browser_scroll

페이지를 스크롤하거나 더 많은 콘텐츠를 공개합니다.

Scroll down to see more results

browser_press

키보드 키를 누릅니다. 양식이나 내비게이션을 제출하는 것이 좋습니다.

Press Enter to submit the form

지원된 키: Enter, Tab, Escape, ArrowDown, ArrowUp 등.

browser_back

브라우저 역사의 이전 페이지로 돌아가기.

browser_get_images

현재 페이지의 모든 이미지를 URL과 alt 텍스트로 나열합니다. 분석하는 이미지 찾기에 유용합니다.

browser_vision

스크린 샷을 가져 와서 Vision AI로 분석하세요. 텍스트 스냅 샷이 중요한 시각 정보를 캡처하지 않을 때이 사용 - 특히 CAPTCHA, 복잡한 레이아웃 또는 시각적 검증 문제에 유용합니다.

스크린 샷은 영구적으로 저장되며 파일 경로는 AI 분석과 함께 반환됩니다. 메시징 플랫폼 (Telegram, Discord, Slack, WhatsApp)에서 스크린 샷을 공유하기 위해 에이전트를 요청할 수 있습니다. MEDIA: 메커니즘을 통해 기본 사진 첨부 파일로 전송됩니다.

What does the chart on this page show?

스크린 샷은 ~/.hermes/cache/screenshots/에 저장되며 24 시간 후에 자동으로 청소됩니다.

browser_console

브라우저 콘솔 출력 (log/warn/error 메시지) 및 현재 페이지의 uncaught JavaScript 예외를 가져옵니다. 접근성 트리에 나타나지 않는 조용한 JS 오류를 감지하는 데 필수적입니다.

Check the browser console for any JavaScript errors

읽기 후 콘솔을 삭제하기 위해 clear=True를 사용하므로 이후 호출은 새로운 메시지를 보여줍니다.

browser_console도 평가 expression 인수로 호출할 때 JavaScript는 DevTools 콘솔과 동일한 모양으로, 결과가 뒤로 나옵니다 (JSON-serialized object가 dicts; primitive 값은 primitive).

browser_console(expression="document.querySelector('h1').textContent")
browser_console(expression="JSON.stringify(performance.timing)")

CDP 관리자가 현재 세션에 활성화되면 (CDP-capable 백엔드에 대한 browser_navigate를 실행하는 세션에 대한 그래픽), 평가는 슈퍼바이저의 지속성 웹소켓을 통해 실행됩니다 - 하위 프로세스 시작 비용. 표준 Agent-browser CLI 경로로 이동하세요. Behaviour는 동일한 방법입니다; 만 지연 변화.

browser_cdp

Raw Chrome DevTools Protocol passthrough - 다른 도구로 덮지 않는 브라우저 작업을위한 탈출 해치. 네이티브 대화 상자 처리, iframe-scoped 평가, 쿠키/네트워크 제어, 또는 에이전트가 필요한 CDP 동사에 사용됩니다.

**CDP 엔드포인트가 세션 시작에 도달 할 때만 사용할 수 있습니다 ** - 의미 /browser connect 실행 크롬에 첨부, 또는 browser.cdp_urlconfig.yaml에 설정됩니다. 기본 로컬 에이전트-browser 모드, Camofox, 및 클라우드 제공 업체 (Browserbase, 브라우저 사용, Firecrawl) 현재이 도구에 CDP를 노출하지 않습니다 - 클라우드 제공 업체는 세션 CDP URL을 가지고 있지만 실시간 보관은 후속입니다.

CDP 메서드 참조: https://chromedevtools.github.io/devtools-protocol/ - 에이전트는 web_extract 매개 변수와 반환 모양을 볼 수있는 특정 방법의 페이지가 될 수 있습니다.

일반적인 본:

# List tabs (browser-level, no target_id)
browser_cdp(method="Target.getTargets")

# Handle a native JS dialog on a tab
browser_cdp(method="Page.handleJavaScriptDialog",
params={"accept": true, "promptText": ""},
target_id="<tabId>")

# Evaluate JS in a specific tab
browser_cdp(method="Runtime.evaluate",
params={"expression": "document.title", "returnByValue": true},
target_id="<tabId>")

# Get all cookies
browser_cdp(method="Network.getAllCookies")

브라우저 수준 방법 (Target.*, Browser.*, Storage.*) omit target_id. 페이지 수준 방법 (Page.*, Runtime.*, DOM.*, Emulation.*)는 target_idTarget.getTargets에서 요구합니다. 각 stateless 호출은 독립적 인 - 세션은 호출 사이에 지속되지 않습니다.

Cross-origin iframes: 패스 frame_id (browser_snapshot.frame_tree.children에서 is_oopif=true)를 통해 CDP 통화를 iframe의 라이브 세션을 통해 전달합니다. 이것이 어떻게 Runtime.evaluate 내부의 크로스 라이진 iframe은 Browserbase에서 작동하며, stateless CDP 연결이 서명-URL 만료 될 것입니다. 예:

browser_cdp(
method="Runtime.evaluate",
params={"expression": "document.title", "returnByValue": True},
frame_id="<frame_id from browser_snapshot>",
)

동일 라이진 iframes는 frame_id이 필요하지 않습니다. 대신 최고 수준의 document.querySelector('iframe').contentDocument를 사용합니다.

browser_dialog

기본 JS 대화 상자 (alert / confirm / prompt / beforeunload)에 응답합니다. 이 도구가 존재하기 전에, 대화 상자는 페이지의 자바 스크립트 스레드와 후속 browser_* 통화가 걸거나 던질 것입니다. 이제 에이전트는 browser_snapshot 출력의 대화 상자를 보며 명시적으로 응답합니다.

** 워크 플로우:**

  1. 전화 browser_snapshot. 페이지를 차단하면 pending_dialogs: [{"id": "d-1", "type": "alert", "message": "..."}]로 표시됩니다.
  2. browser_dialog(action="accept") 또는 browser_dialog(action="dismiss"). prompt() 대화 상자를 위해 prompt_text="..."를 전달하여 응답을 공급합니다.
  3. Re-snapshot - pending_dialogs는 비어 있습니다. 페이지의 JS 스레드가 재개되었습니다.

**Detection은 자동으로 ** persistent CDP supervisor를 통해 - Page/Runtime/Target 이벤트에 가입하는 작업 당 하나의 WebSocket. supervisor는 또한 스냅 샷의 frame_tree 필드를 대체하므로 에이전트는 크로스 라이진 (OOPIF) iframes을 포함한 현재 페이지의 iframe 구조를 볼 수 있습니다.

** 내구성 매트릭스:**

기타검색을 통해 pending_dialogs응답 (browser_dialog 도구)
로컬 크롬 via /browser connect 또는 browser.cdp_url✓ 전체 워크플로우
브라우저✓ 전체 워크플로우 (XHR 브리지를 주입)
Camofox / 기본 로컬 에이전트-browser✅ (CDP 엔드포인트 없음)

** Browserbase에서 작동하는 방법.** Browserbase의 CDP 프록시는 ~10ms 내의 실제 네이티브 대화 상자 서버를 허용하므로 Page.handleJavaScriptDialog를 사용할 수 없습니다. supervisor는 Page.addScriptToEvaluateOnNewDocument를 통해 작은 스크립트를 주사합니다. window.alert/confirm/prompt 는 동기 XHR 입니다. 우리는 Fetch.enable를 통해 XHRs를 가로지르며, 페이지의 JS 스레드는 XHR에 차단되어 있기 때문에 에이전트의 응답으로 Fetch.fulfillRequest. prompt()는 페이지 JS로 돌아갑니다.

Dialog 정책config.yaml 아래 browser.dialog_policy에서 구성됩니다

- 연혁채용 정보
must_respond (기본값)캡처, 스냅 샷의 표면, 왼쪽에 대기 browser_dialog() 통화. browser.dialog_timeout_s (기본 300s) 이후의 안전 자동 해체는 영원히 해칠 수 없습니다.
auto_dismiss캡처, 즉시 해치. 에이전트는 여전히 browser_state 역사의 대화 상자를 볼 수 있지만 행동 할 필요가 없습니다.
auto_accept캡처, 즉시 받아들입니다. 공격적인 beforeunload 프롬프트로 페이지를 항해 할 때 유용합니다.

**프레임 트리 ** 내부 browser_snapshot.frame_tree는 30 프레임과 OOPIF 깊이 2로 캡핑되어 애드 - 헤비 페이지에 바인딩된 페이로드를 유지합니다. truncated: true 플래그 표면 제한이 히트되었을 때; 전체 트리가 필요한 에이전트는 browser_cdpPage.getFrameTree로 사용할 수 있습니다.

Practical 예제

웹 양식을 작성

User: Sign up for an account on example.com with my email john@example.com

Agent workflow:
1. browser_navigate("https://example.com/signup")
2. browser_snapshot() → sees form fields with refs
3. browser_type(ref="@e3", text="john@example.com")
4. browser_type(ref="@e5", text="SecurePass123")
5. browser_click(ref="@e8") → clicks "Create Account"
6. browser_snapshot() → confirms success

연구동향

User: What are the top trending repos on GitHub right now?

Agent workflow:
1. browser_navigate("https://github.com/trending")
2. browser_snapshot(full=true) → reads trending repo list
3. Returns formatted results

세션 기록

WebM 비디오 파일로 자동 기록 브라우저 세션:

browser:
record_sessions: true # default: false

활성화 할 때, 녹화는 첫 번째 browser_navigate에서 자동으로 시작되며 세션이 닫을 때 ~/.hermes/browser_recordings/로 저장합니다. 로컬 및 클라우드 모두에서 작동 (Browserbase) 모드. 72시간 이상 기록은 자동으로 정리됩니다.

Stealth 기능

Browserbase는 자동적인 훔치는 기능을 제공합니다:

제품 정보기본 정보지원하다
기본 스텔스항상에무작위 지문, viewport 무작위화, CAPTCHA 해결
주거 ProxiesOn더 나은 액세스를위한 주거 IP를 통해 경로
고급 Stealth설명사용자 정의 크롬 빌드, 스케일 계획 필요
계속 AliveOn네트워크 hiccups 후 세션 재연결
노트

유료 기능이 플랜에서 사용할 수없는 경우, Hermes는 자동으로 뒤떨어졌다 — first disabling keepAlive, 그 후 프록시 — 그래서 여전히 무료 계획에 작동합니다.

세션 관리

  • 각 작업은 Browserbase를 통해 격리 된 브라우저 세션을 가져옵니다
  • 세션은 자동적으로 inactivity 후에 청소됩니다 (과태: 2 분)
  • 스탈 세션을 위한 30 초마다 배경 스레드 체크
  • 비상 정리는 공정 종료에 실행하여 나판 세션을 방지합니다
  • 세션은 Browserbase API (REQUEST_RELEASE 상태)를 통해 발표됩니다

계정 관리

  • **Text 기반 상호 작용 ** - 접근가능성 트리에 의존, 픽셀 좌표가 아닌
  • Snapshot size - 대형 페이지는 8000 문자로 truncated 또는 LLM-summarized 될 수 있습니다
  • **Session timeout ** - 클라우드 세션은 제공자의 플랜 설정에 따라 만료됩니다
  • Cost - 클라우드 세션은 제공자 크레딧을 소비합니다. 세션은 대화가 종료되거나 비활성화되면 자동으로 정리됩니다. 사용 /browser connect 무료 로컬 브라우징.
  • 파일 다운로드 없음 — 브라우저에서 파일을 다운로드 할 수 없습니다