← 모든 글

Bau Browser

Agentic Browser · 프라이버시와 Agent 실행권한을 사용자가 직접 통제하는 local-first desktop

Built with TypeScript · Electron · MCP · Qwen3.5-4B · SQLite

Desktop browser와 scoped PageGraph에서 bound draft, host compiler, propose approve execute, browser 또는 MCP action, receipt, postcondition과 decision log로 이어지는 Bau Browser 구조도
실행값과 권한은 모델 출력이 아니라 trusted host에 남습니다

WHY

Chrome이 무겁고 불편하다고 느꼈고, Agent를 브라우저에 붙이는 순간 사용자의 프라이버시와 행동 통제권이 더 중요해진다고 생각했습니다. 기존 방식에서는 browsing data가 어디로 가는지, Agent가 어떤 사이트에서 무엇을 할 수 있는지 확인하기 어려웠습니다. 개인 데이터를 local에 두고 Agent의 권한·승인·실행기록을 사용자가 직접 관리하는 desktop browser를 만들고 싶었습니다.

행동·인수 생성 36/36

새로운 도메인 task에서 정확히 생성

허용 범위 밖 행동 0건

사용자가 지정한 origin·action scope 준수

Safety gate 12/12

Recovery와 verification case 통과

HOW

모델은 identifier를 제안하고 실행 권한은 host가 보유합니다

Page 이해, action compilation, 사용자 승인, 실행과 audit record를 각각 독립된 contract로 구성했습니다.

  1. 01 Observe

    Action 권한을 주기 전에 active origin에서 PageGraph와 TaskSpec을 구성합니다.

  2. 02 Bound draft

    Local model은 raw 실행값 대신 trusted target, verb, effect와 binding identifier를 선택합니다.

  3. 03 Compile과 승인

    Host-owned binding에서 argument를 복원하고 scope를 검증한 뒤 사용자에게 action을 보여줍니다.

  4. 04 실행과 receipt

    승인된 action만 실행하고 postcondition을 확인한 뒤 receipt와 DecisionLog를 남깁니다.

RESULT

합성 상품 비교 fixture를 사용한 Bau Browser native desktop 화면
Native desktop capture · synthetic fixture

기여

  • Electron browser surface, scoped agent contract, host compiler, two-phase HITL, MCP boundary, receipt, postcondition과 SQLite decision log를 구현했습니다.
  • Compact Qwen3.5-4B bound-draft pilot을 설계·학습하고 frozen 36-case synthetic gate에서 exactness, compilation, binding, safety와 금지 행동을 평가했습니다.

관련 자료

비공개 프로젝트