콘텐츠로 이동

01-개념

01. 개념 — 권한 게이트는 도구 디스패처 직전에 있다

섹션 제목: “01. 개념 — 권한 게이트는 도구 디스패처 직전에 있다”

1챕터에서 본 6개 층 중 2번 권한 게이트가 본 챕터의 주제다. 모델이 도구를 부르고 디스패처가 실행하기 직전, canUseTool(tool, args, context)가 호출돼 allow / deny / ask를 결정한다.

Ken Huang의 분석을 그대로 인용한다.

“five permission modes: default (interactive approval), auto (classifier-based), plan (upfront approval), acceptEdits (code review workflows), and bubble (subagent inheritance).”

의역 — 다섯 가지 권한 모드. default(매번 사용자 확인), auto(분류기 기반 자동), plan(미리 전체 계획 승인), acceptEdits(코드 리뷰 워크플로), bubble(서브에이전트 상속).

모드핵심 동작적합 상황
default모든 위험 작업에 대화형 확인처음 쓸 때, 낯선 저장소
auto분류기가 안전 판정 → 자동 실행신뢰된 저장소, 반복 작업
plan (Plan Mode)실행 없이 계획만, 사용자 승인 후 일괄 실행큰 작업, 비가역 변경
acceptEdits파일 편집은 자동, 셸은 확인코드 리뷰형 워크플로
bubble서브에이전트가 부모의 규칙을 상속멀티 에이전트

두 가지 보호선: 권한 게이트 ≠ sandbox

섹션 제목: “두 가지 보호선: 권한 게이트 ≠ sandbox”

이 둘은 자주 혼동되지만 다른 층이다.

  • 권한 게이트허용된 도구를 어떤 인자로 부를 수 있는가를 본다 (예: Bash는 되지만 rm -rf 패턴은 금지).
  • sandbox애초에 사고가 나도 영향 범위를 격리한다 (예: Devcontainer 안이라 호스트 홈 디렉터리에 손이 닿지 않음).

OpenHands 논문은 sandbox(runtime)를 핵심 설계 결정으로 든다. 권한 게이트가 뚫려도 sandbox가 살아 있으면 피해가 없다. 두 보호선을 모두 두는 것이 본 챕터의 핵심 처방.