Surfy는 자연어 명령으로 브라우저를 자동 제어하는 Hierarchical AI Agent입니다.
Chrome Extension으로 동작하며, Plan Anchor로 정확한 계획을 보장합니다.
자연어 명령 하나로 시작되는 7단계 파이프라인
Side Panel에서 자연어로 원하는 목표를 입력합니다
웹 검색으로 사전 정보를 수집하고 목표 사이트를 탐색합니다
Planner가 수립한 계획을 확인하고 승인 / 수정합니다
Actor가 태스크를 실행하고, Evaluator가 결과를 검증합니다
Evaluator의 최종 검증 후 작업 완료를 사용자에게 알립니다
Surfy는 계층적 에이전트 구조로 동작합니다.
각 컴포넌트는 자기 역할만 수행하며, 다른 컴포넌트의 책임을 침범하지 않습니다.
웹 검색으로 사전 정보 수집
목표 사이트 미리 탐색
다음 1~2개 태스크만 생성 (Rolling Wave)
Plan Anchor로 첫 계획 품질 보장
단일 태스크를 ReAct 루프로 실행
매 스텝 DOM + Screenshot 분석
구조화된 성공 기준 체크
애매하면 LLM 호출하여 판정
Hexagonal Architecture + Hierarchical Agent
사용자의 요청부터 완료까지의 전체 흐름을 시퀀스 다이어그램으로 확인하세요
사용자가 자연어로 명령하면, Research → Scout → Planner → 사용자 승인 → Actor → Evaluator 순서로 진행되어 목표를 달성합니다.
실패 시 최대 3회 자동 재시도하며, 재시도 소진 시 Human Gateway를 통해 사용자에게 도움을 요청한 뒤 피드백을 반영하여 재실행합니다.
논문 리서치와 반복 실험을 통해 도출된 설계 결정들
웹 에이전트와 Plan Agent 관련 논문을 수집하고, 프로젝트에 적용 가능한 논문으로 필터링하여 핵심 기술을 도출했습니다.
Planner가 추상적 태스크를 생성하고, Actor가 ReAct 루프로 직접 행동을 결정하는 구조입니다.
사용자의 실제 Chrome을 CDP(Chrome DevTools Protocol)로 제어하기로 결정했습니다. 코레일 예매 테스트에서 자동화 도구들이 개발자 도구 탐지에 실패한 경험이 근거가 되었습니다.
Actor의 행동 결과를 객관적으로 평가하는 독립된 검증 노드를 설계했습니다. 다음 행동을 절대 스스로 계획하지 않고, 성공 여부(True/False)와 사유만 판단합니다.
Scout 단계에 Gemini Flash를 도입하여 사이트 탐색 속도를 대폭 개선했습니다. (PR #43)
Surfy가 실제로 동작하는 모습을 확인하세요.
영상 준비 중
디지털 리터러시 격차 해소
디지털 접근성 격차 완화