C.W.K.
Stream
Lesson 04 of 05 · published

권한, 샌드박스, 사람 승인

~30 min · permissions, sandbox, approval

Level 0Observer
0 XP0/40 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

도구가 힘을 주고, policy가 모양을 준다

도구를 가진 에이전트는 시스템 안의 행위자야. 그 행위자에게는 least privilege, audit log, 명시적 approval boundary가 필요해. “조심해라”라고 프롬프트에 쓰는 건 permission model이 아니야.

blast radius로 도구를 분류해

read-only tool은 대체로 자유롭게 실행 가능해. write tool은 validation이 필요하고, destructive tool은 사람 승인이나 아주 좁은 자동화 범위가 필요해. privileged tool은 identity, policy, audit trail이 필요하다.

code execution은 특히 의심해야 해. container, restricted subprocess, ephemeral workspace, network limit, timeout을 써. 신뢰하지 않는 generated code를 소중한 host에서 그대로 돌리지 마. 진짜로.

승인은 의미 단위여야 한다

사용자가 효과를 이해하지 못하는데 `tool X with args Y`를 승인하라고 하면 안 돼. “파일 3개 삭제”, “이 수신자들에게 이 메일 전송”, “이 commit을 production에 배포”처럼 사람이 이해하는 말로 승인받아야 해.

Code

Permission gate·python
RISK = {
    "read_file": "read",
    "write_file": "write",
    "delete_file": "destructive",
    "send_email": "external_write",
    "deploy": "privileged",
}

def require_approval(tool_name, args):
    level = RISK.get(tool_name, "unknown")
    if level in {"destructive", "external_write", "privileged", "unknown"}:
        return {
            "approval_required": True,
            "human_summary": summarize_effect(tool_name, args),
        }
    return {"approval_required": False}

External links

Exercise

상상한 agent의 tool 다섯 개에 risk table을 만들어봐. 어떤 tool이 사람 승인을 요구하는지 정하고, 사람이 읽을 approval text를 써.
Hint
approval text는 구현 detail이 아니라 결과와 영향을 설명해야 해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.