AI 에이전트는 코드를 작성하고, 질문에 답하며, 도구를 호출할 수 있습니다. 하지만 제 작업 흐름(workflow)에서 계속 어색했던 한 가지 작업이 있었습니다. 바로 이미 열려 있는 Chrome 브라우저 내에서 AI 비서가 작동하도록 요청하는 것이었습니다.
일반적인 해결책은 새로운 자동화 브라우저를 시작하는 것입니다. 이는 테스트나 격리된 자동화에는 유용하지만, 기존 탭과 로그인 세션에 의존하는 상호작용적 작업(interactive tasks)의 경우에는 항상 그렇지 않습니다.
저는 **BrowserPair**를 구축하여 다른 접근 방식을 탐구했습니다: 즉, 권한 및 실행 경계를 명확하게 보이면서 AI 에이전트를 사용자의 기존 Chrome 브라우저에 연결하는 것입니다.
문제는 단순히 클릭하는 것에 국한되지 않는다
웹 페이지를 구동(driving)하는 것은 에이전트 자동화의 일부일 뿐입니다. 에이전트가 무언가를 클릭하기 전에, 다음 질문들에 답해야 합니다:
- 어떤 웹사이트 방문이 허용되는가?
- 사용자가 어떤 행동을 승인했는가?
- 민감한 행동에 대한 승인이 필요한가?
- 행동이 성공했는지 어떻게 알 수 있는가?
- 양식을 제출한 후 네트워크 연결이 끊기면 어떻게 되는가?
마지막 경우가 중요합니다. 만약 에이전트가 양식에서 **제출(Submit)**을 클릭했지만, 확인 응답을 받기 전에 연결이 끊긴다면요? 이 작업을 반복하는 것은 중복된 메시지, 주문 또는 기록을 생성할 수 있습니다. 시스템은 _행동이 실패한 것_과 _완료 여부를 알 수 없는 것_을 구별해야 합니다.
BrowserPair가 하는 일
BrowserPair는 Chrome 확장 프로그램, 브라우저 작업 및 권한 관리용 앱, 그리고 AI 클라이언트를 위한 통합 기능을 결합합니다.
그 핵심 설계 선택 사항은 다음과 같습니다:
이미 가지고 있는 브라우저를 사용한다. 모든 상호작용에 대해 별도의 브라우저 세션을 생성하는 대신, 확장 프로그램이 사용자의 기존 Chrome 환경에 연결됩니다.
AI 클라이언트를 교체 가능하게 유지한다. MCP와 호환되는(MCP-compatible) 클라이언트가 브라우저에 연결할 수 있습니다. BrowserPair는 또한 선택한 AI 제공업체를 사용하는 '직접 키 가져오기(bring-your-own-key, BYOK)' 채팅 경험도 제공합니다.
범위 접근(Scope access). 개방적인 탐색 권한을 부여하기보다는, 이 시스템은 사이트 및 행동 권한을 중심으로 설계되었습니다.
적절할 때 인간의 승인을 요청합니다. 민감한 작업은 명시적인 확인을 위해 일시 중지될 수 있습니다.
실행 증거를 보존합니다. 에이전트는 전송된 클릭이나 폼 제출이 성공했다고 가정하는 것이 아니라 실제 결과를 관찰해야 합니다. 결과가 여전히 알려지지 않은 경우, 동일한 작업을 무작정 재현하는 것은 안전하지 않습니다.
아키텍처와 트레이드오프
이 플랫폼은 클라우드 컴포넌트로 Cloudflare Workers, Durable Objects, 그리고 D1을 사용합니다. Chrome 확장 프로그램은 브라우저 환경으로의 연결고리 역할을 하며, 웹 앱은 사용자에게 연결 및 작업을 관리할 수 있는 공간을 제공합니다.
이는 브라우저 확장 프로그램이 완벽한 실행 샌드박스를 제공할 수 있다는 주장이 아닙니다. 권한(Permissions), 승인(Approvals), 그리고 증거(Evidence)는 각각 다른 문제를 해결합니다. 인증된 웹사이트와 상호 작용하는 위험을 권한 부여가 제거하지 못하며, 승인 프롬프트가 워크플로우를 마법처럼 안전하게 만들지도 않습니다.
BrowserPair는 Playwright나 클라우드 브라우저 인프라를 대체하기 위한 것도 아닙니다. 이들은 자동화 테스트, 반복 가능한 헤드리스 작업, 그리고 격리된 환경에 매우 적합합니다. 이 프로젝트는 다른 사용 사례에 초점을 맞춥니다: 기존 AI 비서가 의미 있는 사용자 제어권을 유지하면서 실제 상호 작용하는 브라우저 작업을 돕도록 하는 것입니다.
제가 여전히 배우고 있는 것들
흥미로운 엔지니어링 질문들은 행복한 경로(happy-path) 데모가 아니라 예외 케이스에 관한 것입니다.
예를 들어:
- 인터페이스가 지치게 되기 전에 얼마나 많은 권한 세분화(permission granularity)가 유용한가?
- 어떤 작업은 항상 인간의 확인을 필요로 해야 하는가?
- 에이전트가 상황을 악화시키지 않으면서 알려지지 않은 결과로부터 어떻게 복구해야 하는가?
- 실행 증거를 사용자에게 과부하를 주지 않으면서 어떻게 유용하게 만들 수 있는가?
저는 BrowserPair를 독립적으로 구축했으며 실제 브라우저 워크플로우를 통해 경험을 적극적으로 개선하고 있습니다.
만약 MCP 도구, 브라우저 확장 프로그램 또는 에이전트 자동화 시스템을 구축해 본 적이 있다면, 권한 부여와 불확실한 실행 결과 처리를 어떻게 했는지 듣고 싶습니다.
BrowserPair 사용해보기: https://browserpair.com
질문: 기존에 사용하는 AI 비서와 현재 브라우저를 연결하는 것이 좋겠습니까, 아니면 별도의 AI 제어 브라우저 세션을 사용하는 것이 좋겠습니까?