AI 에이전트에게 브라우저가 필요한 이유
AI 에이전트가 웹과 상호작용하려면 브라우저가 필요합니다. 페이지를 탐색하고, 내용을 읽고, 양식을 작성하고, 데이터를 추출하고, 스크린샷을 찍어야 합니다. 작업이 제대로 이루어지고 있는지 확인하고, 문제가 생겼을 때 사람이 개입할 수 있어야 합니다. 그리고 이 모든 것을 대규모로 처리해야 합니다.
기존의 브라우저 자동화 도구들은 로컬 환경이나 자체 인프라에 의존했습니다. Chrome 버전 관리, 브라우저 풀 운영, 동시 세션 확장 등 인프라 부담이 상당합니다. 특히 AI 에이전트처럼 예측하기 어려운 워크플로를 처리할 때는 에이전트가 막혔을 때 즉각적으로 파악하고 개입할 수 있는 관찰 도구도 필수적입니다.
Cloudflare는 2026년 4월, 기존 Browser Rendering 서비스를 Browser Run 으로 이름을 바꾸고 AI 에이전트에 특화된 주요 기능들을 새롭게 출시했습니다. Browser Run은 Cloudflare의 글로벌 네트워크에서 Chrome 브라우저 세션을 실행하고, 코드나 AI로 제어하며, 세션을 녹화하고 재생하고, 실시간으로 디버깅하고, 에이전트가 막혔을 때 사람이 개입할 수 있는 환경을 제공합니다.
이번 업데이트의 주요 내용
이번 발표에서 새롭게 추가된 핵심 기능은 다음과 같습니다.
- Live View: 에이전트가 무엇을 보고 있고 어떤 작업을 하는지 실시간으로 확인. 문제가 발생했을 때 즉시 파악 가능
- Human in the Loop: 에이전트가 로그인 페이지나 예상치 못한 상황에 막혔을 때, 실패하는 대신 사람에게 제어권을 넘겨 처리 후 다시 이어받을 수 있는 워크플로
- Chrome DevTools Protocol(CDP) 엔드포인트: 브라우저 자동화의 하위 프로토콜인 CDP를 직접 노출하여 에이전트 도구와 기존 CDP 스크립트가 Browser Run에 바로 연결 가능
- MCP 클라이언트 지원: Claude Desktop, Cursor, OpenCode 같은 AI 코딩 에이전트가 Browser Run을 원격 브라우저로 사용 가능
- WebMCP 지원: 웹사이트가 에이전트가 발견하고 호출할 수 있는 도구를 선언할 수 있는 새로운 브라우저 API 지원
- Session Recordings: 디버깅을 위해 모든 브라우저 세션을 녹화. 문제 발생 시 DOM 변경, 사용자 상호작용, 페이지 탐색 전체 기록 확인 가능
- 동시 브라우저 수 증가: 기존 30개에서 120개로 4배 상향
에이전트의 브라우저 제어 방법: CDP, MCP, WebMCP
Chrome DevTools Protocol(CDP) 직접 노출
크롬 개발자 도구 프로토콜(Chrome DevTools Protocol, CDP) 은 브라우저 자동화를 구동하는 하위 수준 프로토콜입니다. Puppeteer, Playwright, 대부분의 에이전트 프레임워크가 CDP 위에 구축되어 있습니다. Chrome DevTools에서 페이지를 검사할 때 실행되는 것이 바로 CDP입니다.
Browser Run은 이미 내부적으로 CDP를 사용해왔지만, 이번에 CDP 엔드포인트를 직접 노출했습니다. 이는 에이전트에게 중요한 의미를 가집니다. CDP를 통해 에이전트는 Puppeteer나 Playwright로는 불가능한 JavaScript 디버깅 같은 브라우저 액션도 실행할 수 있습니다. 또한 고수준 라이브러리를 거치지 않고 원시 CDP 메시지를 모델에 직접 전달할 수 있어 토큰 효율적인 브라우저 제어가 가능합니다.
기존에 자체 호스팅 Chrome에서 CDP 자동화 스크립트를 실행하던 사용자라면, WebSocket URL 한 줄만 변경하면 Browser Run에서 동일하게 동작합니다.
// Before: connecting to self-hosted Chrome
const browser = await puppeteer.connect({
browserWSEndpoint: 'ws://localhost:9222/devtools/browser'
});
// After: connecting to Browser Run
const browser = await puppeteer.connect({
browserWSEndpoint: 'wss://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/browser-rendering/devtools/browser',
headers: { 'Authorization': 'Bearer <API_TOKEN>' }
});
또한 CDP 엔드포인트 노출로 Cloudflare Workers를 작성하지 않아도 어떤 언어, 어떤 환경에서든 Browser Run에 연결할 수 있게 되었습니다.
MCP 클라이언트 지원
CDP 엔드포인트를 직접 노출함으로써, 모델 컨텍스트 프로토콜(Model Context Protocol, MCP) 클라이언트들도 Browser Run을 원격 브라우저로 사용할 수 있게 되었습니다. Chrome DevTools 팀의 chrome-devtools-mcp 패키지는 AI 코딩 어시스턴트에게 Chrome DevTools의 전체 기능을 제공하는 MCP 서버입니다. 안정적인 자동화, 심층 디버깅, 성능 분석을 지원합니다.
Claude Desktop에서 Browser Run을 사용하도록 설정하는 예시는 다음과 같습니다.
{
"mcpServers": {
"browser-rendering": {
"command": "npx",
"args": [
"-y",
"chrome-devtools-mcp@latest",
"--wsEndpoint=wss://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/browser-rendering/devtools/browser?keep_alive=600000",
"--wsHeaders={\"Authorization\":\"Bearer <API_TOKEN>\"}"
]
}
}
}
다른 MCP 클라이언트에서의 설정 방법은 Browser Run MCP 클라이언트 문서에서 확인할 수 있습니다.
WebMCP: 웹사이트가 에이전트에게 도구를 선언하다
인터넷은 사람을 위해 만들어졌기 때문에, 오늘날 AI 에이전트가 웹을 탐색하는 것은 불안정합니다. Cloudflare는 미래에 에이전트가 사람보다 더 많이 웹을 사용할 것이라고 보고 있으며, 그 세계에서는 사이트들이 에이전트 친화적이어야 한다고 판단합니다.
WebMCP는 Google Chrome 팀이 Chromium 146+에 도입한 새로운 브라우저 API입니다. WebMCP를 통해 웹사이트는 각 페이지에서 에이전트가 발견하고 호출할 수 있는 도구를 직접 선언할 수 있습니다. 두 가지 API가 이를 가능하게 합니다.
navigator.modelContext: 웹사이트가 도구를 등록할 수 있도록 허용navigator.modelContextTesting: 에이전트가 해당 도구를 발견하고 실행할 수 있도록 허용
예를 들어, 오늘날 에이전트가 여행 예약 사이트를 방문하면 화면을 보고 UI를 파악해야 합니다. WebMCP를 사용하면 사이트가 "origin, destination, date를 인수로 받는 search_flights 도구가 여기 있습니다"라고 선언합니다. 에이전트는 느린 스크린샷-분석-클릭 루프 없이 도구를 직접 호출할 수 있습니다. UI가 변경되어도 안정적으로 동작합니다.
도구는 사전 로드가 아닌 페이지에서 발견됩니다. 웹의 방대한 롱테일에서 모든 가능한 사이트에 대해 MCP 서버를 미리 로드하는 것은 실용적이지 않고 컨텍스트 윈도우를 불필요하게 차지하기 때문에 이 방식이 중요합니다.
WebMCP가 활성화된 브라우저에 접근하려면 실험적 풀의 Wrangler 명령어를 사용합니다.
npm i -g wrangler@latest
wrangler browser create --lab --keepAlive 300
기존 자동화 방식: Puppeteer, Playwright, Stagehand
CDP와 WebMCP 외에도, Puppeteer, Playwright, Stagehand를 통한 완전한 브라우저 자동화를 기존과 동일하게 사용할 수 있습니다. 스크린샷 캡처, PDF 생성, 마크다운 추출 같은 간단한 작업에는 Quick Action 엔드포인트가 있습니다.
최근에는 단일 API 호출로 전체 사이트를 크롤링할 수 있는 /crawl 엔드포인트도 출시되었습니다. 시작 URL을 제공하면 페이지가 자동으로 발견되고 스크래핑되어 HTML, Markdown, 구조화된 JSON으로 반환됩니다. /crawl은 robots.txt와 AI Crawl Control을 준수하며, Web Bot Auth로 암호학적으로 서명된 Signed Agent로 동작하는 점잖은 크롤러로 설계되었습니다.
# Initiate a crawl
curl -X POST 'https://api.cloudflare.com/client/v4/accounts/{account_id}/browser-rendering/crawl' \
-H 'Authorization: Bearer <apiToken>' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://blog.cloudflare.com/"
}'
에이전트를 관찰하는 세 가지 방법
자동화가 실패했을 때 왜 실패했는지 알 수 없다는 고객 피드백을 반영하여, Browser Run은 에이전트가 보고 있는 것을 실시간과 사후 모두에서 확인할 수 있는 관찰 도구를 추가했습니다.
Live View: 실시간 브라우저 세션 모니터링
Live View는 에이전트의 브라우저 세션을 실시간으로 볼 수 있게 합니다. 에이전트를 디버깅하거나 긴 자동화 스크립트를 실행할 때, 페이지 자체는 물론 DOM, 콘솔, 네트워크 요청까지 실시간으로 확인할 수 있습니다. 예상한 버튼이 없거나, 페이지에 인증이 필요하거나, CAPTCHA가 나타날 때 즉시 파악할 수 있습니다.
Live View에 접근하는 방법은 두 가지입니다. 코드에서는 브라우저의 session_id를 얻어 응답의 devtoolsFrontendURL을 Chrome에서 열면 됩니다. Cloudflare 대시보드에서는 Browser Run 섹션의 새 Live Sessions 탭에서 활성 세션을 클릭하면 됩니다.
Session Recordings: 세션 사후 분석
Live View는 직접 보고 있을 때 유용하지만, 모든 세션을 지켜볼 수는 없습니다. Session Recordings는 DOM 변경, 마우스 및 키보드 이벤트, 페이지 탐색을 구조화된 JSON으로 캡처하여 세션 종료 후 재생할 수 있게 합니다.
브라우저를 실행할 때 recording:true를 전달하면 Session Recordings가 활성화됩니다. 세션이 종료된 후 Cloudflare 대시보드의 Runs 탭에서 녹화에 접근하거나, API를 통해 녹화를 가져와 rrweb-player로 재생할 수 있습니다.
대시보드 재설계: 모든 요청을 한눈에
기존 Browser Run 대시보드는 브라우저 세션의 로그만 표시했습니다. 스크린샷, PDF, 마크다운, 크롤 요청은 볼 수 없었습니다. 재설계된 대시보드는 이를 해결합니다. 새로운 Runs 탭은 모든 요청을 보여주며, 엔드포인트별로 필터링하고 대상 URL, 상태, 소요 시간 등 세부 정보를 확인할 수 있습니다.

Human in the Loop: 에이전트가 막혔을 때 사람이 개입하다
에이전트는 완벽하지 않습니다. Human in the Loop는 자동화가 벽에 부딪혔을 때 사람이 라이브 브라우저 세션을 직접 제어하고, 자동화가 처리할 수 없는 작업을 처리한 후 세션을 이어갈 수 있는 워크플로를 지원합니다. 세션을 처음부터 다시 시작할 필요 없이, 로그인, 자격 증명 입력, 양식 제출 등을 직접 처리하고 에이전트에게 제어권을 돌려줄 수 있습니다.
현재는 활성 세션의 Live View URL을 열어 개입할 수 있습니다. 이후에는 에이전트가 도움이 필요하다고 신호를 보내고, 사람에게 알림을 보내고, 문제가 해결되면 에이전트에게 제어권을 돌려주는 핸드오프 플로를 추가할 예정입니다.
동시 브라우저 수 4배 증가, 120개까지
기본 동시 브라우저 제한을 30개에서 120개로 4배 상향했습니다. 각 세션은 워밍된 브라우저 인스턴스의 글로벌 풀에서 즉시 브라우저에 접근할 수 있어 콜드 스타트가 없습니다. Quick Action의 경우 초당 요청 제한도 10으로 증가했습니다. 더 높은 한도가 필요하다면 요청을 통해 조정 가능합니다.
앞으로 추가될 기능들
- Human in the Loop 핸드오프: 에이전트가 도움이 필요할 때 신호를 보내고 사람에게 알림을 보내는 흐름
- Session Recordings 검사: 타임라인 스크럽 외에도 녹화 중 특정 시점의 DOM 상태와 콘솔 출력 검사 기능
- Traces and Browser Logs: 코드 계측 없이 콘솔 로그, 네트워크 요청, 타이밍 데이터에 접근하는 디버깅 정보
- Workers Bindings에서 스크린샷, PDF, 마크다운: REST API로 제공되던 간단한 작업들이 Workers Bindings에서도 사용 가능.
env.BROWSER.screenshot()처럼 API 토큰 없이 사용
Browser Run은 Workers Free 및 Workers Paid 플랜 모두에서 오늘부터 사용 가능합니다. 기존에 Browser Rendering을 사용하던 사용자라면 이름과 추가 기능만 생긴 것으로, 기존 코드는 그대로 동작합니다. 시작하려면 공식 문서를 참고하세요.
Browser Run: give your agents a browser 소개 블로그
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()
