본문 바로가기
C.W.K.
Stream
Lesson 04 of 08 · published

Agent SDK의 기본 도구도 권한으로 골라 줘

~14 min · tools, default-tools, filesystem, bash

Level 0Observer
0 XP0/64 lessons0/13 achievements
0/150 XP to next level150 XP to go0% complete

Claude Code의 작업 도구가 함께 와

Agent SDK는 Read, Write, Edit, Bash, Glob, Grep, WebFetch, Task, NotebookEdit 같은 파일·셸 도구를 기본 제공해. 모델은 다른 도구처럼 필요할 때 골라 쓰고, 부수 효과가 있는 작업은 기본 권한 확인을 거쳐. 직접 도구 실행기를 다시 만들지 않아도 되는 큰 장점이야.

도구마다 다른 계약이 있어

Read는 크기와 위치를 조절하며 파일을 읽고, Write는 새 파일을 만들며, Edit는 읽은 문자열을 바꿔. Bash는 작업 디렉터리에서 명령을 실행하고, GlobGrep은 경로와 내용을 찾아. 이름이 비슷한 편의 기능이 아니라 각기 다른 비용과 안전 조건을 가진 권한이야.

필요한 것만 허용 목록에 넣어

읽기와 검색만 필요한 에이전트에는 그 도구만 줘. 기본 묶음은 넓으므로 운영 에이전트에서는 적극적으로 줄이고 이유를 남겨야 해. cwkPippa가 전체 도구를 쓰는 건 아빠와 함께 코딩하는 동반자이기 때문이고, 고객 상담 에이전트가 Bash를 가져야 할 이유는 없어.

원칙: 도구 능력은 기능 표지가 아니라 권한이야. 허용 목록을 보안 정책처럼 감사해.

Code

흔한 allowed_tools 조합·python
# Read-only 감사자
READ_ONLY = ["Read", "Grep", "Glob", "WebFetch"]

# 문서 편집자 (read + edit, no shell, no new file 생성)
DOC_EDITOR = ["Read", "Grep", "Glob", "Edit"]

# Pair 프로그래머 (full set, but no Task delegation)
PAIR_PROGRAMMER = [
    "Read", "Write", "Edit",
    "Glob", "Grep", "WebFetch",
    "Bash", "NotebookEdit",
]

# Sysadmin assistant용 just bash
SYSADMIN = ["Bash", "Read"]
Edit이 같은 세션에 사전 Read 요구·python
# Agent SDK의 Edit 도구가 파일이 이 세션에 Read 안 됐으면 거부.
# 의도적 — 변경 전 모델이 현재 콘텐츠 보게 강제.
# 너 코드가 강제 X; SDK가.
#
# 함의 — 세션 reset(새 ClaudeSDKClient)이면 모델이 재-읽기 필요.
# 정확히 세션-scoped 상태의 안전 보장.

External links

Exercise

현재 에이전트가 쓸 수 있는 모든 Agent SDK 도구를 적고 각 도구가 필요한 이유를 한 문장씩 써. 설명할 수 없는 도구는 제거해.
Hint
“언젠가 필요할 수 있어서”는 권한을 열어 둘 근거가 아니야.

Progress

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

댓글 0

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

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