Libretto – AI 브라우저 자동화를 결정론적으로 만드는 툴킷
Show HN: Libretto – Making AI browser automations deterministic
TL;DR Highlight
Saffron Health가 오픈소스로 공개한 Libretto는 AI 코딩 에이전트에게 실시간 브라우저와 토큰 효율적인 CLI를 제공해서, 깨지기 쉬운 브라우저 자동화 스크립트를 안정적으로 만들고 유지보수할 수 있게 해주는 툴킷이다.
Who Should Read
Playwright나 Puppeteer 같은 브라우저 자동화 도구를 쓰는데 사이트 구조가 바뀔 때마다 스크립트가 깨져서 유지보수에 시달리는 개발자. 특히 AI 에이전트를 활용해서 자동화 워크플로우를 자가 복구되도록 만들고 싶은 팀에게 유용하다.
Core Mechanics
- Libretto는 AI 코딩 에이전트(Claude, GPT 등)에게 실제로 동작하는 Chromium 브라우저를 붙여주고, 토큰을 아끼면서 페이지를 분석할 수 있는 CLI 도구를 함께 제공한다. 덕분에 에이전트가 실제 사이트를 보면서 자동화 스크립트를 작성하거나 수정할 수 있다.
- 핵심 기능 네 가지는 '최소 컨텍스트로 라이브 페이지 검사', '네트워크 트래픽 캡처로 사이트 내부 API 역공학', '사용자 동작 녹화 후 자동화 스크립트로 재생', '실제 사이트 대상 인터랙티브 디버깅'이다.
- Saffron Health는 이 툴을 의료 소프트웨어(healthcare software)와의 브라우저 연동을 유지보수하기 위해 직접 만들었고, 같은 문제를 겪는 다른 팀들을 위해 MIT 라이선스로 오픈소스 공개했다.
- 설치는 `npm install libretto` 하나로 끝나고, `npx libretto setup` 실행 시 Chromium 다운로드, AI 프로바이더 자동 감지(OPENAI_API_KEY 등 환경변수 탐지), 기본 모델 설정까지 자동으로 처리해준다.
- OpenAI, Anthropic, Gemini, Vertex 네 가지 AI 프로바이더를 지원하고, `npx libretto ai configure <프로바이더>` 명령어로 원하는 시점에 자유롭게 전환할 수 있다.
- 설계 철학이 흥미롭다. 자동화 코드 자체를 '최적화 수단'으로 보고, 코드가 깨지면 AI 에이전트가 반복적으로 고쳐서 다음번엔 작동하게 만드는 '자가 복구(self-healing)' 구조를 지향한다.
- 기존에 Playwright를 쓰는 팀이라면 Libretto로 내부 구현을 교체하는 형태로 도입이 가능하다. iframe 미로, referrer 링크 같은 복잡한 구조도 처리 가능하다는 사용자 경험이 있다.
Evidence
- 이미 몇 주를 투자해서 비슷한 내부 툴을 만든 개발자가 '이걸 보는 날이 공교롭게도 내부 발표한 바로 그날'이었다며, Playwright로 iframe 미로 같은 복잡한 플랫폼을 자동화하고 있는데 Libretto로 내부를 교체해볼 생각이라고 밝혔다.
- 비슷한 내부 도구를 만든 다른 개발자도 댓글을 달았는데, '자동화 코드는 최적화 수단일 뿐이고 유지보수는 에이전트가 맡는다'는 자신의 철학이 Libretto와 일치한다며 교체 테스트를 해볼 의향을 보였다.
- 의료 데이터(PHI, Protected Health Information) 관련 우려가 제기됐다. 데모에서 Claude를 쓰는데 Anthropic과 BAA(Business Associate Agreement, HIPAA 준수를 위한 계약)를 체결했는지 물어보는 댓글이 있었다. 헬스케어 분야에서 쓰려면 이 부분을 반드시 확인해야 한다는 지적이다.
- Playwright CLI와의 차이점을 묻는 질문이 있었지만 아직 공식 답변은 없었다. Libretto는 AI 에이전트가 스크립트를 '작성하고 자가 수리'하는 워크플로우에 특화되어 있어서, 단순 자동화 실행 도구인 Playwright CLI와는 포지셔닝이 다르다.
- 라이선스에 대한 질문이 있었고, 웹사이트에서 MIT임을 확인했지만 저장소에 LICENSE.md 파일이 없다는 지적이 있었다. 오픈소스 채택을 고려하는 팀은 참고할 만하다.
How to Apply
- 자동화 스크립트가 사이트 업데이트마다 깨지는 문제를 겪고 있다면, Libretto를 도입해서 AI 에이전트가 깨진 스크립트를 자동으로 감지하고 수정하는 자가 복구 파이프라인을 구축할 수 있다. `npx libretto setup`으로 환경을 잡고, 에이전트에게 실제 브라우저를 붙여서 반복 수정 루프를 돌리면 된다.
- 사이트 내부 API를 직접 문서화하지 않은 서드파티 서비스(예: 의료 소프트웨어, 레거시 기업 포털)와 연동해야 할 때, Libretto의 네트워크 트래픽 캡처 기능으로 실제 브라우저 동작 중 오가는 요청을 분석해서 API를 역공학할 수 있다.
- 새로운 자동화 스크립트를 처음부터 짜야 할 때, Libretto의 '사용자 동작 녹화' 기능으로 원하는 동작을 직접 브라우저에서 수행한 뒤 자동으로 재생 가능한 스크립트를 생성할 수 있다. 반복적인 수작업 코딩 시간을 크게 줄일 수 있다.
- 이미 Playwright 기반 자동화를 운영 중인 팀이라면, 기존 스크립트를 당장 버리지 않고 Libretto를 유지보수 레이어로만 도입해볼 수 있다. iframe 중첩이나 referrer 기반 라우팅처럼 Playwright만으로 다루기 까다로운 케이스에서 Libretto의 AI 분석이 보완재로 작동한다.
Code Example
snippet
# 설치
npm install libretto
# 처음 설정: Chromium 다운로드 + AI 프로바이더 자동 감지 + 기본 모델 고정
npx libretto setup
# 워크스페이스 상태 확인
npx libretto status
# AI 프로바이더 명시적으로 전환 (고급 설정)
npx libretto ai configure openai
npx libretto ai configure anthropic
npx libretto ai configure gemini
npx libretto ai configure vertexTerminology
결정론적(deterministic)같은 입력을 주면 항상 같은 결과가 나오는 것. AI 자동화는 매번 결과가 달라지기 쉬운데, Libretto는 이를 안정적이고 예측 가능하게 만드는 걸 목표로 한다.
PHIProtected Health Information의 약자. 환자 이름, 진단 내용 등 HIPAA(미국 의료정보보호법)에 의해 보호받는 민감한 의료 정보를 말한다.
BAABusiness Associate Agreement. HIPAA 환경에서 제3자 서비스 제공업체가 PHI를 안전하게 다룰 것임을 계약으로 보장하는 문서. 없으면 HIPAA 위반이 될 수 있다.
역공학(reverse engineering)완성된 제품을 분해해서 내부 구조를 파악하는 것. 여기서는 브라우저에서 오가는 네트워크 요청을 분석해서 공개되지 않은 API 구조를 알아내는 것을 의미한다.
자가 복구(self-healing)코드가 깨졌을 때 사람이 수동으로 고치는 게 아니라, AI 에이전트가 자동으로 문제를 감지하고 수정하는 방식. 사이트 구조가 바뀌어도 자동화가 계속 돌아가게 만드는 핵심 개념이다.
토큰 효율(token efficiency)AI 모델에 보내는 텍스트(토큰) 양을 줄이는 것. 토큰이 많을수록 비용과 처리 시간이 늘어나므로, 페이지 분석 시 필요한 정보만 추려서 전달하는 게 중요하다.