Kuri – Zig으로 만든 AI 에이전트용 브라우저 자동화 도구
Kuri – Zig based agent-browser alternative
TL;DR Highlight
Node.js 없이 Zig으로 만든 464KB짜리 초경량 브라우저 자동화 도구로, AI 에이전트 루프에서 토큰 비용을 줄이는 데 특화되어 있다.
Who Should Read
LLM 에이전트에 웹 브라우저 자동화를 붙이고 있는 개발자 중, Playwright/Puppeteer 같은 Node.js 기반 툴의 무거움이나 토큰 낭비가 불만인 분들.
Core Mechanics
- Kuri는 Zig으로 작성된 브라우저 자동화 도구로, Node.js 의존성이 전혀 없다. 바이너리 크기가 464KB에 불과하고 콜드 스타트가 약 3ms로 매우 빠르다.
- Chrome의 CDP(Chrome DevTools Protocol)를 직접 제어하는 방식이라 별도 런타임 없이 Chrome과 통신한다. 단, Chrome 자체는 어딘가에서 실행되고 있어야 한다.
- 핵심 설계 철학은 'QA 엔지니어용이 아닌 에이전트 루프용'이다. 페이지 상태를 읽고 → 토큰을 최소화하고 → 안정적인 참조(ref)로 클릭하고 → 다음 단계로 넘어가는 사이클에 최적화되어 있다.
- Google Flights(SIN→TPE) 기준으로 전체 에이전트 워크플로우(go→snap→click→snap→eval) 토큰 비용을 비교했을 때, Vercel의 agent-browser 대비 16% 적은 토큰을 사용했다. (kuri: 4,110토큰 vs agent-browser: 4,880토큰)
- 스냅샷 모드가 여러 가지인데, `--interactive` 모드가 에이전트 루프에 가장 효율적이다. compact 모드(4,328토큰) 대비 절반도 안 되는 1,927토큰만 사용한다.
- 반면 JSON 전체 스냅샷(`--json`)은 31,280토큰으로 compact의 7.2배나 되고, lightpanda의 semantic_tree도 26,244토큰으로 비슷하게 비싸다. lightpanda는 JavaScript를 실행하지 않아서 빈 DOM만 나오는 경우도 있다는 점이 추가 단점이다.
- A11y(접근성 트리) 스냅샷, HAR(HTTP Archive) 기록, 독립 실행형 fetcher, 인터랙티브 터미널 브라우저, 보안 테스트 기능까지 내장되어 있다.
- 벤치마크는 동일 Chrome 세션, 동일 tiktoken cl100k_base 토크나이저로 측정했으며, `./bench/token_benchmark.sh`로 직접 재현할 수 있다고 명시되어 있다.
Evidence
- 설치 스크립트(install.sh)와 bun을 통한 설치가 404 오류를 반환한다는 보고가 있었다. 아직 초기 프로젝트라 인프라 안정성이 완전하지 않은 상황인 것으로 보인다.
- README의 벤치마크가 자체 제작(self-published)이라는 점을 지적하는 댓글이 있었다. 독립적인 검증 없이 16% 토큰 절감이라는 수치를 그대로 신뢰하기 어렵다는 맥락이다.
- kuri-fetch가 '독립 실행형'이라고 광고하지만 실제로는 Chrome이 어딘가에서 반드시 실행되고 있어야 한다는 지적이 있었다. CDP를 감싼 래퍼에 불과하다는 의견으로, 진정한 standalone은 아니라는 비판이다.
- 기존에 brow.sh(텍스트 기반 브라우저)를 페이지 fetching에 사용하던 사람이 Kuri가 더 흥미로워 보인다고 언급했다. 다만 Chrome 의존성을 확인하고 나서 다소 실망한 반응이었다.
How to Apply
- LLM 에이전트가 웹 페이지를 읽어야 하는 태스크(가격 비교, 정보 수집 등)를 구현 중이라면, Playwright 대신 Kuri의 `snap --interactive` 모드를 써보면 된다. 같은 페이지를 절반 이하의 토큰으로 읽을 수 있어 API 비용이 줄어든다.
- 멀티스텝 에이전트 루프(페이지 이동 → 스냅샷 → 클릭 → 스냅샷 → 판단)를 반복하는 구조라면 토큰 절감 효과가 누적(compounding)된다. 단계가 많을수록 kuri의 이점이 커지므로, 10단계 이상의 복잡한 웹 태스크 자동화에 특히 적합하다.
- 기존 Node.js 기반 브라우저 자동화를 서버리스나 경량 컨테이너에 올리려다 바이너리 크기 문제로 포기한 경우, Kuri의 464KB 단일 바이너리를 고려해볼 수 있다. 3ms 콜드 스타트는 Lambda 같은 환경에서도 실용적인 수준이다.
- 보안 테스트 자동화가 필요한 경우 Kuri의 내장 보안 테스트 기능과 HAR 기록 기능을 활용할 수 있다. HAR 파일을 남기면 에이전트가 어떤 HTTP 요청을 했는지 추후 디버깅도 가능하다.
Code Example
# 토큰 벤치마크 직접 재현
./bench/token_benchmark.sh
# 기본 스냅샷 (compact 모드, 4,328 토큰)
kuri snap
# 에이전트 루프용 최적 모드 (1,927 토큰 — compact 대비 0.4x)
kuri snap --interactive
# JSON 전체 덤프 (31,280 토큰 — 디버깅용)
kuri snap --json
# 독립 실행형 페이지 fetcher (단, Chrome 실행 필요)
kuri-fetch https://example.comTerminology
관련 논문
Meta AI 챗봇 악용으로 Instagram 계정 20,000개 이상 해킹 확인
Meta의 AI 챗봇에 있던 이메일 검증 버그로 인해 2FA(2단계 인증)를 사용하지 않던 Instagram 계정 2만 개 이상이 약 2개월간 해킹됐다. AI를 계정 복구 시스템에 통합할 때 발생할 수 있는 보안 취약점의 실제 사례다.
Anthropic의 오픈소스 AI 기반 취약점 자동 탐지 프레임워크 공개
Anthropic이 Claude를 활용해 코드 취약점을 자율적으로 탐지·트리아지·패치하는 오픈소스 레퍼런스 구현체를 공개했다. 실제 보안팀과의 협업 경험을 바탕으로 만들어진 파이프라인이라 실전 적용성이 높다.
에이전트는 스스로 물러날까? LLM 에이전트의 In-Band Access-Deny 신호 준수 측정
서버가 SSH 배너나 DB NOTICE로 'AI 에이전트는 접근하지 마세요' 신호를 보내면 GPT-4o, Claude Code 같은 LLM 에이전트가 실제로 물러나는지 실험으로 측정했다.
ToolChoiceConfusion: 신뢰할 수 있는 LLM 에이전트를 위한 Causal Minimal Tool Filtering
LLM 에이전트에 도구를 100개 다 보여주지 말고, 지금 당장 필요한 것 1개만 보여주면 성공률은 그대로에 토큰은 90% 절약된다.
AI Agent를 위한 TDD(테스트 주도 개발) Skill 만들기
AI 에이전트가 형편없는 테스트를 작성하는 문제를 해결하기 위해, Kent Beck의 Canon TDD 원칙을 'Skill'로 만들어 에이전트에게 주입하는 방법을 공유한다. 에이전트 코딩에서 테스트 품질을 높이고 싶은 개발자에게 실용적인 접근법을 제시한다.
Paseo – 오픈소스 코딩 에이전트 통합 인터페이스 (모바일/데스크탑/CLI 지원)
Claude Code, Codex, GitHub Copilot 등 여러 코딩 에이전트를 하나의 UI로 제어하는 오픈소스 프로젝트로, 로컬 데몬 방식으로 자기 머신에서 실행하면서 모바일에서도 접근할 수 있다.