저는 공개 웹 페이지를 AI 에이전트가 읽을 수 있는 텍스트와 구조화된 데이터로 변환하는 오픈 소스 브라우저 도구인 DeepLook을 출시합니다.
이는 실제 Chrome을 구동하여 페이지를 렌더링하고, 애플리케이션에 보이는 텍스트와 함께 제목, 최종 URL, HTTP 상태, 브라우저 관찰 결과를 제공합니다. 로컬 CLI, 자체 호스팅 HTTP API 또는 MCP를 통해 코딩 에이전트에서도 동일한 읽기 기능을 사용할 수 있습니다.
원래 프로젝트 코드는 Apache-2.0 라이선스 하에 배포됩니다. 사용자는 이를 검사하고, 자체 인프라에서 실행하며, 개선 사항을 기여할 수 있습니다.
호스팅된 엔드포인인 경우? DeepLook 계정 생성하여 이메일을 인증하고 자신만의 이름이 지정된 API 키를 생성하세요. 계정 페이지에서는 키를 순환(rotate) 및 취소(revoke)할 수 있습니다. 호스팅 엔드포인트는 https://api.getdeeplook.dev/v1/open이며, 사용자의 키는 개인 애플리케이션 환경에 보관되어야 합니다.
에이전트 워크플로우에서의 읽기 단계
연구 및 코딩 에이전트는 종종 URL 뒤의 실제 페이지 내용이 필요합니다. 가벼운 HTTP 요청으로는 많은 소스에서 작동하지만, 다른 페이지는 유용한 텍스트가 나타나기 전에 JavaScript 렌더링이 필요합니다.
DeepLook은 이 브라우저 읽기 단계를 처리합니다. 공개 URL 하나를 제공하고 자체 워크플로우에서 그 결과를 소비하세요. 검색, 리서치 계획 수립, 어떤 링크를 따라갈지 결정, 최종 답변 작성 등은 여전히 애플리케이션의 책임입니다.
저는 경계가 이해하기 쉽도록 만들고 싶었습니다: 페이지 요청, 구조화된 결과, 그리고 페이지를 읽을 수 없을 때 명시적인 오류입니다.
로컬에서 사용해 보기
**Node.js 22.14+**와 Google Chrome이 필요합니다. 로컬 사용 시 DeepLook 계정, LLM API 키 또는 공유 프로젝트 토큰은 필요하지 않습니다.
git clone https://github.com/sayhitogambit/DeepLook.git
cd DeepLook
npm ci
...
애플리케이션에서 페이지 메타데이터가 필요할 때는 JSON을 사용하고, 일관된 성공/오류 응답 구조(envelope)가 필요할 때는 버전 관리되는 머신 포맷을 사용하세요:
node dist/cli.js open https://example.com --json
node dist/cli.js open https://example.com --machine --timeout-ms 30000
이 명령어들은 GitHub 소스에서 설치됩니다. 공개 npm 레지스트리 릴리스에 의존하지 않습니다. npm pack을 사용하여 자체 tarball을 빌드하고 설치할 수도 있습니다.
에이전트에게 MCP 도구 제공하기
DeepLook은 stdio MCP 서버를 포함합니다. 프로젝트를 빌드한 후, MCP 호스트를 구성하여 이를 실행하세요:
{
"mcpServers": {
"deeplook": {
...
구성 필드 이름은 호스트마다 다릅니다. 이 명령어는 URL과 선택적 타임아웃을 받는 deeplook_open을 노출합니다:
{"url":"https://example.com","timeoutMs":30000}
성공적인 호출은 페이지 텍스트와 구조화된 결과를 반환합니다. 실패한 호출은 타입이 지정된 오류를 반환합니다. 각 MCP 프로세스는 하나의 활성 읽기(read)만 허용하며, 취소는 브라우저 작업으로 전파됩니다.
페이지 내용은 신뢰할 수 없는 입력입니다. 에이전트는 페이지 내에서 발견되는 지침을 사용자나 개발자의 지침이라기보다는 원본 자료로 다루어야 합니다.
자체 HTTP API 실행하기
DeepLook-API는 브라우저 CLI를 HTTP 인터페이스, 인증, 계정 할당량(quota), 동시성 제한(concurrency limits), 라이프사이클 관리와 결합합니다.
페이지 읽기 엔드포인트는 다음과 같습니다:
POST /v1/open
Authorization: Bearer <your-own-browser-key>
Content-Type: application/json
...
이 API는 성공 시 페이지 객체를 반환합니다. 유효하지 않은 입력, 무단 액세스, 할당량 소진, 브라우저 사용 중, 타임아웃 또는 유용한 콘텐츠 대신 챌린지를 반환한 페이지와 같은 오류를 보고합니다.
운영자(operator)가 서버의 자격 증명을 생성하고 관리합니다. 관리자 자격 증명과 클라이언트 브라우저 키는 별도의 역할을 가집니다. 모두가 공유할 수 있는 창립자 소유 토큰은 없으며, 소스 코드는 제 계정이나 인프라에 대한 접근을 제공하지 않습니다.
credential 가이드(https://github.com/sayhitogambit/DeepLook-API/blob/main/docs/credentials.md)에서는 자체 시크릿을 생성하고 이를 Git 외부에 보관하는 방법을 안내합니다. CLI와 MCP 도구는 또한 개인 환경 변수를 통해 사용자의 API에 연결할 수 있습니다.
이번 첫 번째 릴리스가 제공하는 기능
이 프로젝트는 호출당 하나의 공개 HTTP(S) URL을 읽습니다. 기본 Chrome을 사용하며 샌드박스 기능을 유지합니다. 리디렉션 및 페이지 리소스를 포함한 아웃바운드 목적지를 확인하고, 개인적이고 로컬이며 메타데이터 주소는 거부합니다.
또한 명확한 제한 사항이 있습니다:
- CAPTCHA를 해결하거나 봇 검사, 로그인 벽 또는 유료 결제 장벽을 통한 접근을 보장하지 않습니다.
- 일반적인 클릭 및 스크롤 에이전트나 영구 브라우저 세션을 제공하지 않습니다.
- 성공적인 Chrome 실행 파일 진단은 탐색(navigation), 샌드박스 준비 상태, 또는 원격 키의 권한을 증명하지 않습니다.
- 애플리케이션 수준의 목적지 확인에는 여전히 합리적인 배포 격리와 리소스 제한이 필요합니다.
이러한 경계는 브라우저를 중심으로 에이전트를 구축할 때 중요합니다. 기술 참고 자료에는 응답 계약(response contract), 오류, 마감 시간(deadlines), 취소, 및 정리 동작이 문서화되어 있습니다.
검사하고 개선하도록 구축됨
저장소에는 결정론적 테스트, 실제 샌드박스 브라우저를 사용한 테스트, 패키지 설치 확인, 그리고 HTTP/컨테이너 통합 테스트가 포함되어 있습니다. 이들은 성공적인 읽기뿐만 아니라 실질적인 실패 사례도 실행합니다.
저는 개발자들이 실제 워크플로우를 시도하고, 구현을 검사하며, 다음 단계를 만드는 데 도움을 줄 수 있도록 프로젝트를 일찍 공개합니다. 유용한 기여에는 재현 가능한 페이지 읽기 버그, 문서 개선, 플랫폼 테스트, 그리고 에이전트 통합 등이 포함됩니다.
DeepLook 저장소에서 시작하고, 시작 가이드를 따라가며, 무엇을 구축했는지 알려주세요.
본 공지는 AI의 도움을 받아 작성되었으며, 출시된 프로젝트를 통해 검토되었습니다.