목록으로
제품2026년 4월 16일 PM 12:35

Saffron Health, AI 코딩 에이전트용 브라우저 자동화 툴킷 'Libretto' 오픈소스 공개… 의료 SaaS 통합 위해 자체 개발

의료 소프트웨어 스타트업 Saffron Health가 AI 코딩 에이전트가 활용할 수 있는 브라우저 자동화 툴킷 'Libretto'를 오픈소스로 공개했다. 프로젝트 저장소는 github.com/saffron-health/libretto, 공식 사이트는 libretto.sh에 마련됐으며, 문서는 libretto.sh/docs에서 확인할 수 있다.

Libretto는 코딩 에이전트에게 라이브 브라우저와 토큰 효율적인 CLI를 제공하는 '강력한 웹 통합 구축용 툴킷'을 표방한다. 핵심 기능은 네 가지다. 최소 컨텍스트 오버헤드로 라이브 페이지를 검사하고, 사이트 API를 역설계하기 위해 네트워크 트래픽을 캡처하며, 사용자 동작을 녹화해 자동화 스크립트로 재생하고, 실제 사이트를 대상으로 깨진 워크플로를 인터랙티브하게 디버깅할 수 있다.

Saffron Health는 자사가 사용하는 일반적인 헬스케어 소프트웨어와의 브라우저 통합을 유지보수하기 위해 Libretto를 만들었다고 밝혔다. 회사는 다른 팀들도 같은 작업을 더 쉽게 할 수 있도록 이를 오픈소스화한다고 설명했다.

Libretto는 코딩 에이전트의 '스킬(skill)' 형태로 사용하도록 설계됐다. 공식 문서는 세 가지 활용 시나리오를 제시한다. 첫째, LinkedIn에 접속해 첫 10개 게시물의 콘텐츠와 작성자, 반응 수, 첫 25개 댓글과 첫 25개 리포스트를 수집하는 스크래핑 작업이다. 사용자가 LinkedIn에 로그인할 수 있도록 코딩 에이전트가 창을 열어주고, 이후 자동으로 탐색을 시작한다.

둘째 시나리오는 헬스케어 EHR 연동이다. eclinicalworks EHR에서 환자 기본 보험 ID를 조회하는 워크플로를 사람이 보여준 뒤, Libretto 스킬을 통해 환자 이름과 생년월일을 입력으로 받아 보험 ID를 반환하는 Playwright 스크립트로 변환할 수 있다. Libretto는 사용자가 브라우저에서 수행한 동작을 읽어 워크플로를 재구성하는 방식을 지원한다.

셋째는 네트워크 리버스 엔지니어링이다. Libretto는 브라우저의 네트워크 요청을 읽어 API를 역설계하고, UI 자동화 대신 API를 직접 호출하는 스크립트를 생성할 수 있다. 직접 API 호출이 UI 자동화보다 빠르고 안정적이며, Libretto에 보안 분석을 요청해 보안 쿠키 등을 점검할 수도 있다. 또한 Availity 자격증명(eligibility) 체크처럼 깨진 셀렉터로 실패하는 기존 스크립트를 자동으로 재현·수정할 수도 있다.

AI 모델 통합 측면에서 Libretto는 OpenAI, Anthropic, Gemini, Vertex 네 가지 제공자를 지원한다. 자격증명은 환경 변수 또는 저장소 루트의 .env 파일에서 OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY 또는 GOOGLE_GENERATIVE_AI_API_KEY, Vertex의 경우 GOOGLE_CLOUD_PROJECT를 읽어 사용한다. setup 명령은 사용 가능한 자격증명을 자동 감지해 .libretto/config.json에 기본 모델을 고정하며, 공식 예시 설정에는 'openai/gpt-5.4' 모델이 명시돼 있다.

설치는 'npm install libretto' 명령으로 진행하며, 첫 실행 시 'npx libretto setup'으로 스킬 설치, Chromium 다운로드, 기본 스냅샷 모델 고정 작업이 수행된다. 워크스페이스 상태 확인은 'npx libretto status', 페이지 열기는 'npx libretto open <url>', 스냅샷 분석은 'npx libretto snapshot --objective ... --context ...', Playwright TypeScript 코드 실행은 'npx libretto exec' 등 다양한 명령이 제공된다. 모든 명령은 '--session <name>' 옵션으로 특정 세션을 지정할 수 있다.

Libretto의 모든 상태는 프로젝트 루트의 .libretto/ 디렉터리에 저장된다. 각 세션은 .libretto/sessions/<name>/ 하위에 state.json(세션 메타데이터), logs.jsonl(구조화 로그), network.jsonl(네트워크 요청), actions.jsonl(사용자 동작), snapshots/(스크린샷·HTML 스냅샷) 등 런타임 상태를 보관한다. 인증된 세션을 재사용하기 위한 프로필은 .libretto/profiles/<domain>.json에 저장되며 머신 로컬로 git에는 커밋되지 않는다. 기본 뷰포트는 1280x800 픽셀이다.

AI인사이트 편집팀

이 기사는 AI 기술을 활용해 작성되었으며, 편집팀이 검수했습니다.

관련 기사