agbrowse 문서

개념

런타임은 headed Chrome을 재사용하고 각 CLI 명령은 짧게 실행됩니다.

명령은 CDP port에 연결해 현재 target을 inspect/mutate한 뒤 종료합니다. Browser state와 Web-AI session metadata는 BROWSER_AGENT_HOME에 저장됩니다.

운영 모델

Adaptive-fetch escalation ladder

agbrowse fetch는 단일 후보 URL을 6단계 adaptive escalation ladder로 읽습니다. 각 단계는 content score를 산출하고, 점수가 충분하면 멈추거나 모든 단계를 소진합니다.

  1. Public endpoint + 직접 HTTP: GitHub, Reddit, HN, Wikipedia, npm, PyPI, arXiv, Stack Exchange 등 known API resolver를 먼저 시도하고, 브라우저급 identity header로 직접 fetch합니다.
  2. TLS/JA3 impersonation: curl-impersonate 사용. 403, 429, challenge 응답 시 브라우저 실행 없이 TLS fingerprint 기반 차단을 우회합니다.
  3. Third-party reader: Jina Reader 등 (--allow-third-party-reader로 opt-in).
  4. Isolated browser render: Camoufox 또는 headless Chrome. 네트워크 API 탐색으로 XHR/fetch payload에서 target content를 캡처합니다.
  5. User session (--browser-session user로 opt-in): paywall/login 콘텐츠를 위해 인증된 브라우저 프로필을 재사용합니다.
  6. Human-in-the-loop (--browser-session interactive로 opt-in): headed 브라우저 창에서 수동으로 challenge를 해결합니다.

WAF 프로필 감지

HTTP 단계 escalation 중 런타임은 응답 헤더, 상태 코드, challenge 페이지 시그니처를 검사해 upstream WAF 제품을 식별합니다. 인식 대상: Cloudflare (managed rule + Turnstile), Akamai Bot Manager, AWS WAF, Imperva/Incapsula, DataDome, PerimeterX. 감지 결과는 escalation 결정에 반영됩니다. 예를 들어 Cloudflare Turnstile challenge가 감지되면 헤더 변경 재시도를 건너뛰고 바로 browser rung으로 올라갑니다.

TLS/JA3 impersonation

직접 HTTP fetch가 403, 429, 또는 인식된 challenge 페이지를 반환하면 런타임은 full browser로 escalation하기 전에 curl-impersonate로 TLS-impersonation 재시도를 수행합니다. TLS 레이어에서 실제 Chrome 브라우저의 JA3 fingerprint를 재현하며, Chrome 실행 비용 없이 많은 fingerprint 기반 WAF 차단을 통과합니다.

Search 명령

agbrowse search는 어떤 CLI agent든 사용 가능한 독립 deep search 파이프라인입니다. 사용자 query를 focused sub-query로 재작성하고, 후보 URL을 발견해 adaptive-fetch ladder로 원본 페이지를 검증하며, 증거를 채점해 구조화된 결과를 반환합니다. --verify <url>로 단일 URL을 확인하거나, --stdin-results로 외부 검색 결과를 enrichment하거나, --deep --vendor grok로 증거 부족 시 web-ai escalation을 수행합니다.

진단

agbrowse status --json
agbrowse tabs --json
agbrowse console --limit 50
agbrowse network --duration 1000