← 모든 글

보이지 않는 에이전트: 볼 수 없는 것을 어떻게 관리할 것인가

From the guide: Claude Code Comprehensive Guide

Anthropic는 Claude Desktop에 Cowork라는 기능을 출시했습니다. 이 기능은 모든 macOS 설치 환경에 10GB 가상 머신 번들을 생성했습니다. Cowork를 활성화하지 않은 사용자에게도 VM이 설치되었습니다. 삭제한 사용자는 VM이 다시 생성되는 것을 목격했습니다. 한 사용자는 번들이 21GB까지 커졌다고 보고했습니다. Anthropic가 문제를 인정하기 전에 GitHub 이슈는 Hacker News에서 345포인트와 175개의 댓글을 모았습니다.1

아무도 디스크 공간이 부족해질 때까지 알아차리지 못했습니다.

요약

에이전트 도구는 이제 운영자의 가시성 없이 컴퓨팅 리소스(디스크, 메모리, CPU, 네트워크)를 할당합니다. Anthropic의 Cowork VM은 눈에 보이는 사례이며, 모든 MCP 도구 호출, 모든 생성된 하위 에이전트, 모든 웹 페치는 보이지 않는 사례입니다. 에이전트를 관리하려면 세 가지 관측 가능성 계층이 필요합니다: 리소스 계량(무엇을 소비했는가?), 정책 시행(무엇을 할 수 있도록 허용되었는가?), 런타임 감사(실제로 무엇을 했는가?). 두 개의 오픈소스 프로젝트가 정책 및 감사 계층을 다루고 있지만(mcp-firewall과 Logira), 세 가지 모두를 커버하는 프로덕션 도구는 없습니다. 아래에서 가시성 문제, 세 계층 스택, 각 계층이 포착하는 것, 그리고 오늘 바로 구현할 수 있는 최소한의 모니터링 훅을 다룹니다.


가시성 문제

전통적인 소프트웨어는 운영자가 설정한 관측 가능성 기준선 아래에서 작동합니다. 웹 서버는 엔지니어가 로깅을 구성했기 때문에 접근 로그를 기록합니다. 데이터베이스는 누군가가 log_min_duration_statement를 설정했기 때문에 느린 쿼리를 추적합니다. 운영자가 세부 수준을 결정합니다.

에이전트 시스템은 이 관계를 역전시킵니다. 에이전트가 런타임에 무엇을 실행할지 결정합니다. “로그인 엔드포인트를 수정해줘”라는 요청을 받은 코딩 에이전트는 47개의 파일을 읽고, 12개에 쓰고, 3개의 하위 에이전트를 생성하고, 2개의 웹 페이지를 가져오고, 15개의 bash 명령을 실행할 수 있습니다. 각 작업은 리소스를 소비합니다. 이러한 소비는 전통적인 모니터링에 나타나지 않습니다.

Cowork 사건은 인프라 수준에서 이 역전을 드러냈습니다. Claude Desktop은 10GB의 디스크 공간을 할당하고, 유휴 상태에서 24-55%의 CPU를 소비했으며, 8GB 머신에서 스왑 사용량을 20K에서 24K+ 스왑인으로 증가시켰습니다.1 사용자는 Anthropic의 텔레메트리가 아닌 macOS 저장 공간 경고를 통해 리소스 소비를 발견했습니다. 애플리케이션은 VM 할당에 대한 대시보드, 계량기, 옵트인 공개를 제공하지 않았습니다.

이 패턴을 에이전트 세션으로 확장해보겠습니다. 제 훅 오케스트레이션 시스템은 모든 도구 호출에 걸쳐 15가지 이벤트 유형을 가로챕니다.11 60개 세션에 걸쳐 시스템은 각 작업에서 84개의 훅이 발동되는 것을 기록했으며, 기본 에이전트 설치에서는 제공하지 않는 텔레메트리를 생성했습니다.2 이 계측 없이는 12건의 드리프트 사건, 팬텀 검증 실패, 또는 제 NIST 공개 의견서에 기록된 재귀적 스포닝 루프를 감지할 수 없었을 것입니다.3

DORA 2024 Accelerate State of DevOps Report에 따르면 강력한 관측 가능성 관행을 갖춘 팀이 더 자주 배포하고 장애에서 더 빠르게 복구합니다. 2025년판은 이 프레임워크를 AI 지원 개발로 확장하여, 관측 가능성을 “AI 지원 코딩 또는 테스트가 품질, 리드 타임, 전반적인 안정성에 어떤 영향을 미치는지”와 연결합니다.4 에이전트 관측 가능성은 있으면 좋은 것이 아닙니다. 에이전트 행동을 측정하는 것은 이를 관리하기 위한 전제 조건입니다.


에이전트 가시성의 세 가지 계층

에이전트 관측 가능성은 세 가지 독립적인 계층이 필요합니다. 각 계층은 서로 다른 질문에 답합니다. 한 계층의 장애가 다른 계층을 손상시키지 않습니다.

계층 질문 모니터링 대상 예시 도구
리소스 계량 무엇을 소비했는가? 세션별 디스크, 메모리, CPU, 네트워크 Cowork에서 이것을 보여줬어야 합니다
정책 시행 무엇을 할 수 있도록 허용되었는가? 허용/거부 규칙, 도구 권한, 범위 제한 mcp-firewall
런타임 감사 실제로 무엇을 했는가? 시스템 콜 로그, 파일 접근, 네트워크 이그레스 Logira

이 계층들은 단계적 진행에 대응합니다: 측정하지 않는 리소스에 대해 정책을 시행할 수 없으며, 정의하지 않은 정책에 대한 준수를 감사할 수 없습니다. 각 계층은 그 아래 계층 위에 구축됩니다.


계층 1: 리소스 계량

리소스 계량은 다음에 답합니다: 에이전트가 얼마나 소비했으며, 어디서 소비했는가?

Cowork 사건은 리소스 계량의 실패입니다. VM 번들은 10GB의 디스크 공간을 소비했습니다. 렌더러 프로세스는 유휴 상태에서 24%의 CPU를 소비했습니다. 스왑 활동은 세션 동안 꾸준히 증가했습니다. 이 모든 지표는 macOS Activity Monitor에 존재했습니다. Claude Desktop 인터페이스에는 하나도 나타나지 않았습니다.1

에이전트 코딩 세션의 경우, 리소스 계량은 네 가지 차원을 추적합니다:

디스크. 모든 파일 쓰기, 모든 캐시 항목, 모든 로그 파일. 제 세션은 세션당 200-400KB의 상태 파일을 생성합니다(jiro.state.json, jiro.progress.json, 훅 로그). 60개 세션에 걸쳐 명시적으로 정리하지 않으면 세션 간에 12-24MB의 상태 데이터가 누적됩니다.2

메모리. 턴당 컨텍스트 윈도우 소비량. 200,000 토큰 컨텍스트 윈도우는 현재 Opus 가격으로 전체 채울 때 약 $3가 듭니다. 제 비용 추적기는 세션별 누적 토큰 사용량을 기록하며, 설정 가능한 한도의 80%, 90%, 95%에서 예산 임계값을 설정합니다.5

CPU. 훅 실행 시간. 제 9개 훅 프롬프트 디스패처는 프롬프트당 200ms를 추가합니다. 이 오버헤드는 사용자에게 보이지 않습니다(인간의 타이핑이 병목이므로). 하지만 자동화된 파이프라인에서는 누적됩니다. ralph 자율 루프는 스토리당 디스패처를 50-100번 발동시켜, 스토리당 10-20초의 훅 오버헤드를 추가합니다.2

네트워크. 웹 페치, API 호출, MCP 도구 호출. 모든 아웃바운드 요청은 잠재적인 데이터 채널입니다. 제 웹 추출 라이브러리는 페치 URL과 응답 크기를 기록합니다. 네트워크 계량 없이는 50MB 응답을 반환하는 웹 페치와 5KB를 반환하는 것을 구별할 수 없습니다.6

어떤 상용 에이전트 도구도 세션별 리소스 대시보드를 제공하지 않습니다. 클라우드 제공업체는 운영자 가시성이 아닌 과금을 위해 컴퓨팅을 계량합니다. 에이전트가 소비하는 것과 운영자가 볼 수 있는 것 사이의 격차가 리소스 계량 적자입니다.

이 부재는 수치가 누적될 때까지 보이지 않습니다. 400KB의 상태 파일을 쓰는 한 세션은 아무것도 아닙니다. 정리 없이 각각 400KB를 쓰는 60개 세션은 24MB의 고아 상태를 남깁니다. 847KB를 반환하는 한 웹 페치는 무시할 만합니다. 실행당 80개 URL을 가져오는 스캐닝 파이프라인은 에이전트의 도구 추상화가 운영자에게 숨기는 67MB의 캐시된 콘텐츠를 생성합니다. 리소스 계량은 누적된 것이 위기가 되기 전에, 즉 누군가가 GitHub 이슈 #22543를 제출하게 만들기 전에 이를 가시화합니다.1


계층 2: 정책 시행

정책 시행은 다음에 답합니다: 에이전트를 제한하는 규칙은 무엇이며, 이 규칙이 일관되게 적용되고 있는가?

mcp-firewall은 CLI 에이전트를 위한 정책 계층을 다룹니다.7 이 도구는 에이전트와 모든 도구 사용 요청 사이에 위치하여, 실행 전에 정규식 기반 정책에 대해 각 요청을 평가합니다. 정책은 폴더, git 저장소 또는 사용자별로 범위가 지정된 JSONNet 구성 파일을 사용합니다. 방화벽은 PreToolUse 훅 통합을 통해 Claude Code과 GitHub Copilot CLI를 지원합니다.

이 아키텍처는 핵심적인 통찰을 반영합니다: 모든 에이전트가 자체적으로 허용/거부 로직의 중간 단계 솔루션을 구현합니다. Claude Code은 glob 패턴을 사용합니다. Codex CLI는 접두사 전용 매칭을 사용합니다. 각 접근 방식은 정책 공간의 일부만 커버합니다. mcp-firewall은 규칙을 에이전트 간에 작동하는 하나의 엔진으로 통합합니다.

중앙 집중식 시행 없이 정책 격차를 생각해보겠습니다. 제 훅 시스템에는 자격 증명 패턴, 위험한 git 작업, 민감한 경로 접근, 배포 명령을 검사하는 12개의 PreToolUse:Bash 핸들러가 포함되어 있습니다.2 각 핸들러는 자체 정규식 패턴을 가진 별도의 셸 스크립트입니다. 새로운 거부 규칙을 추가해야 할 때 새 스크립트를 작성합니다. 어떤 규칙이 존재하는지 감사해야 할 때 12개 파일에서 grep을 실행합니다. mcp-firewall은 이를 명시적인 허용 배열을 가진 단일 구성 파일로 통합합니다.

OWASP Top 10 for Agentic Applications (2025)는 Agent Goal Hijacking(ASI01)과 Excessive Agency(LLM06:2025)를 최상위 위험으로 식별합니다.8 두 위험 모두 도구 호출 수준에서의 정책 시행이 필요합니다. 목표를 탈취하는 에이전트도 여전히 도구 호출을 합니다. 과도한 권한을 가진 에이전트도 여전히 권한을 요청합니다. 정책 시행은 에이전트의 의도가 시스템의 도구와 만나는 경계에서 두 가지를 모두 가로챕니다.

정책 시행은 접근 제어와 다릅니다. 전통적인 접근 제어는 “이 사용자에게 권한이 있는가?”를 묻습니다. 에이전트에 대한 정책 시행은 “이 작업이, 이 맥락에서, 이 태스크를 위해, 승인된 범위 내에 있는가?”를 묻습니다. 맥락 민감성이 과제입니다. 기능 브랜치에 대한 git push와 main에 대한 git push --force는 동일한 도구(Bash)이지만 영향 범위가 다릅니다. mcp-firewall의 정규식 패턴은 이를 구별할 수 있습니다. 기본 에이전트 권한은 구별할 수 없습니다.


계층 3: 런타임 감사

런타임 감사는 다음에 답합니다: 에이전트가 시스템 콜 수준에서 실제로 무엇을 했는가?

Logira는 커널 수준에서 시스템 콜을 가로채는 eBPF 프로브를 사용하여 감사 계층을 다룹니다.9 이 도구는 세 가지 이벤트 카테고리를 기록합니다: 프로세스 실행(exec 이벤트), 파일 작업(자격 증명 파일 접근 포함), 네트워크 연결(목적지 추적 포함). 각 감사 실행은 세 개의 파일을 생성합니다: 타임라인 검토를 위한 events.jsonl, 쿼리 가능한 필터링을 위한 index.sqlite, 실행 메타데이터를 위한 meta.json.

설계 철학은 “관찰 전용”입니다: Logira는 기록하고 감지하지만 시행하거나 차단하지 않습니다.9 시행 계층과의 분리는 의도적입니다. 정책 시행은 알려진 나쁜 행동을 방지합니다. 런타임 감사는 사후에 알려지지 않은 나쁜 행동을 발견합니다. 두 계층은 서로 다른 시간적 기능을 수행합니다: 예방(이전)과 포렌식(이후).

Logira의 eBPF 프로브는 애플리케이션 계층 아래에서 작동합니다. 데이터를 유출하기 위해 새로운 명령을 구성하는 에이전트도 여전히 시스템 콜을 수행합니다. 에이전트는 커널 수준 추적으로부터 파일 읽기, 네트워크 연결, 프로세스 생성을 숨길 수 없습니다. 이 접근 방식은 애플리케이션 수준 훅이 놓치는 것을 포착합니다: 도구 호출 추상화를 우회하는 부작용입니다.

내장 탐지 규칙은 AI 에이전트 위험을 구체적으로 대상으로 합니다: 자격 증명 파일 접근, 지속성 메커니즘 변경(/etc, systemd, cron), 의심스러운 명령 체인(curl-pipe-sh 패턴), 파괴적 작업(rm -rf), 비정상적인 네트워크 이그레스.9 이 규칙들은 일반적인 시스템 감사가 아닌 에이전트 위협 모델을 위한 의도된 기본값입니다.

플랫폼 제약이 중요합니다. Logira는 cgroup v2가 있는 Linux 5.8+가 필요합니다. macOS 에이전트(Claude Desktop, Darwin의 Claude Code)는 eBPF 기반 감사를 사용할 수 없습니다. 제 OS 샌드박스는 가장 가까운 대안으로 macOS Seatbelt 프로파일을 사용합니다: 민감한 경로에 대한 쓰기를 차단하는 커널 시행 거부 규칙입니다.3 Seatbelt은 시행이지 감사가 아닙니다. macOS에는 Logira의 관찰 전용 감사 추적에 해당하는 프로덕션 수준 도구가 없습니다.

시행과 감사의 구분은 인시던트 대응에서 시간적 분리에 대응합니다. 시행은 인시던트를 방지합니다. 감사는 인시던트 후 재구성을 가능하게 합니다. 둘 다 필요합니다. 모든 자격 증명 접근을 차단하는 시행 계층은 유출을 방지하지만 합법적인 SSH 작업도 방지합니다. 차단 없이 모든 자격 증명 접근을 기록하는 감사 계층은 운영자가 접근 패턴을 검토하고 증거에 기반하여 시행 규칙을 조정할 수 있게 합니다. 감사 데이터와 정책 개선 사이의 피드백 루프가 가시성 스택이 시간이 지남에 따라 개선되는 방식입니다: 감사가 패턴을 드러내고, 패턴이 정책을 알려주고, 정책이 감사가 커버해야 할 표면을 줄입니다.

Logira의 cgroup v2 격리는 애플리케이션 수준 감사가 복제할 수 없는 기능을 추가합니다: 실행 범위 귀속. 시스템은 모든 이벤트를 시스템 전체가 아닌 특정 감사 실행에 귀속시킵니다. 동일한 머신에서 두 에이전트 세션이 동시에 실행될 때, cgroup 격리는 세션 A의 파일 접근이 세션 B의 감사 추적에 나타나지 않도록 보장합니다. 애플리케이션 수준 훅은 동일한 보장을 제공할 수 없습니다. 훅이 에이전트 프로세스 내에서 발동되기 때문에, 동시 세션을 분리하는 커널 수준 경계가 없습니다.9


실제로 운영하고 있는 것

제 오케스트레이션 시스템은 전용 모니터링 도구가 아닌 훅을 통해 세 가지 계층을 모두 커버합니다.

리소스 계량. cost-gate 훅은 설정 가능한 예산 임계값에 대해 세션별 토큰 사용량을 추적합니다.5 시스템 성능 모니터는 설정 가능한 간격으로 CPU, 메모리, 디스크, 스왑을 검사하며, 리소스 압력이 임계값을 초과할 때 경고를 주입합니다.10 세션 드리프트 감지기는 25번의 도구 호출마다 발동되어, 원래 프롬프트 임베딩과 최근 작업의 슬라이딩 윈도우 사이의 코사인 유사도를 계산합니다.2

정책 시행. 8개의 PreToolUse 디스패처 훅이 도구 유형별로 핸들러 훅에 라우팅합니다. PreToolUse:Bash만으로도 자격 증명 패턴, 파괴적 git 작업, 민감한 경로 접근, 배포 명령을 커버하는 12개의 핸들러를 실행합니다. 재귀 가드는 최대 깊이 2와 부모 에이전트당 최대 5개의 자식을 시행합니다.2

런타임 감사. PostToolUse 훅이 모든 도구 호출 결과를 기록합니다. 보안 스캐닝 훅은 실행 후 bash 출력에서 자격 증명 유출을 검사합니다. 세션 상태 파일(jiro.state.json)은 모든 스토리 완료, 리뷰어 판정, 증거 게이트 결과를 기록합니다.2 시스템은 eBPF를 사용하지 않습니다(macOS 제한). 하지만 훅 파이프라인을 통해 도구 수준 텔레메트리를 캡처합니다.

계층 제 구현 제한사항
리소스 계량 cost-gate, sysmon, 드리프트 감지기 도구별 디스크/네트워크 분석 없음
정책 시행 15가지 이벤트 유형에 걸쳐 84개 훅 훅별 정규식, 중앙 집중식 구성 아님
런타임 감사 PostToolUse 로거, 세션 상태 파일 애플리케이션 수준만, 시스템 콜 추적 없음

이 시스템은 모든 작업이 훅 파이프라인을 통과하기 때문에 작동합니다. 제한은 깊이입니다: 훅 수준 모니터링은 에이전트가 요청한 것을 캡처하지만, 운영 체제가 실제로 실행한 것은 캡처하지 않습니다. 내장된 서브셸로 bash 명령을 구성하는 에이전트는 훅이 단일 문자열로 보는 코드를 실행합니다. 커널 수준 감사는 각 하위 프로세스를 볼 것입니다.


누적되는 사각지대

에이전트가 에이전트를 생성하면 불투명성이 배가됩니다. 각 위임 단계마다 정보 손실이 발생합니다.

제 오케스트레이션 시스템이 ralph 자율 루프를 실행할 때, 부모 프로세스는 각 PRD 스토리에 대해 새로운 Claude Code 인스턴스를 생성합니다. 각 자식 에이전트는 집중된 태스크와 새로운 컨텍스트 윈도우를 받습니다. 부모는 완료 상태를 추적합니다. 부모는 자식의 개별 도구 호출, 파일 읽기, 리소스 소비를 볼 수 없습니다.2

깊이 1(부모가 자식을 생성)에서 부모는 자식의 최종 출력을 봅니다. 깊이 2(자식이 손자를 생성)에서 부모는 손자의 출력에 대한 자식의 보고를 봅니다. 각 단계마다 정보가 압축됩니다. 제 NIST 의견서의 위임 체인 분석은 세 가지 누적 위험을 측정했습니다: 의미적 압축(컨텍스트가 프롬프트 문자열로 축소), 권한 증폭(자식이 민감성을 이해하지 못한 채 권한을 상속), 책임 확산(루트 에이전트가 검토하지 않은 결과에 대한 책임을 짐).3

관측 가능성도 같은 속도로 저하됩니다. 루트 에이전트에 대한 세 계층 가시성 스택은 각 자식이 독립적으로 자체 모니터링을 실행하지 않는 한 손자 에이전트에 대한 가시성을 전혀 제공하지 않습니다. 제 재귀 가드는 깊이 제한을 시행하지만, 이 가드는 관측 가능성 제어가 아닌 정책 제어입니다. 위임이 깊이 2에서 멈췄다는 것을 아는 것은 깊이 2에서 무슨 일이 일어났는지 알려주지 않습니다.

제 프로덕션 시스템의 구체적인 예시: ralph 루프가 데이터베이스 마이그레이션 스토리를 구현하기 위해 자식 에이전트를 생성했습니다. 자식 에이전트는 마이그레이션에 “검증 단계”가 필요하다고 판단하고 통합 테스트를 실행하기 위해 자체 하위 에이전트를 생성했습니다. 손자 에이전트는 조용히 실패했습니다(테스트 데이터베이스가 구성되지 않았기 때문). 자식 에이전트는 빈 응답을 받았고, 침묵을 성공으로 해석하여 스토리가 완료되었다고 보고했습니다. 부모는 “스토리 4: 완료”를 기록했습니다. 저는 3시간 후 누락된 컬럼으로 애플리케이션이 크래시했을 때 깨진 마이그레이션을 발견했습니다. 루트 에이전트의 텔레메트리는 정상 실행을 보여주었습니다. 실패는 두 단계 깊이에 있었으며, 루트에 배포한 모든 모니터링 계층에 보이지 않았습니다.2

OWASP Agentic Applications 프레임워크는 연쇄 장애와 불량 에이전트를 다루지만 멀티 에이전트 위임 체인에 대한 관측 가능성 요구사항을 규정하지 않습니다.8 격차는 구조적입니다: 체인의 각 에이전트가 자체 리소스 계량, 정책 시행, 런타임 감사를 독립적으로 구성하고 독립적으로 보고해야 합니다. 오버헤드는 곱셈적입니다. 체인의 3개 에이전트에 대한 3개 계층의 모니터링은 9개의 모니터링 인스턴스이며, 각각 자체 텔레메트리를 생성하고 각각 자체 구성이 필요합니다. 이 조정을 관리하는 기존 도구는 없습니다.


오늘 바로 구현할 수 있는 것

가시성 스택을 커버하는 세 가지 최소 모니터링 훅:

1. 리소스: 토큰 예산 추적기. 세션별 누적 입력 및 출력 토큰을 기록합니다. 하드 리밋을 설정합니다. 80%에서 알림을 보냅니다. 구현은 에이전트의 사용량 통계를 읽고(Claude Code은 /cost를 통해 세션 비용을 노출) 임계값과 비교하는 것이 필요합니다. 제 cost-gate 훅은 이를 47줄의 bash로 수행합니다.5

2. 정책: PreToolUse 거부 목록. 모든 Bash 도구 호출 전에 발동하는 훅을 생성합니다. 명령을 패턴 목록에 대해 검사합니다: rm -rf /, git push --force, .ssh 또는 .env를 포함하는 경로, curl | sh. 일치하면 차단합니다. 구현은 stdin(JSON 형식의 도구 호출)을 읽고, 명령 필드를 추출하고, 패턴 파일에 대해 grep을 실행하는 하나의 셸 스크립트가 필요합니다. 제 자격 증명 검사 훅은 이를 31줄로 수행합니다.2

3. 감사: PostToolUse 세션 로그. 모든 도구 호출과 결과를 세션별 JSONL 파일에 추가합니다. 타임스탬프, 도구 이름, 인수, 종료 코드를 포함합니다. 이 로그는 세션 후 재구성을 가능하게 합니다: 에이전트가 무엇을, 어떤 순서로 했으며, 조용히 실패한 것이 있는가? 제 세션 로거는 이를 22줄의 bash로 수행합니다.2

settings.json에서의 거부 목록 훅 구현 예시:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/check-sensitive-paths.sh"
          }
        ]
      }
    ]
  }
}

훅 스크립트는 stdin에서 도구 호출을 읽고, 명령 문자열을 추출하고, 패턴에 대해 검사합니다. 차단된 명령은 {"decision": "block", "reason": "Sensitive path access denied"}가 포함된 JSON 객체를 반환합니다. 허용된 명령은 {"decision": "approve"}를 반환합니다. Claude Code은 추가 프롬프팅 없이 두 응답 모두를 존중합니다. 전체 훅은 승인된 명령에 대해 지연 시간을 추가하지 않으며(정규식 검사는 5ms 미만으로 실행), 차단된 명령에 대해서는 즉각적인 피드백을 제공합니다.

이 세 가지 훅은 총 100줄 미만입니다. 전용 모니터링 도구를 대체하지 않습니다. 가시성 제로를 최소 가시성으로 대체합니다. 최소 가시성은 이후의 모든 거버넌스 결정을 위한 전제 조건입니다. 계량 없이는 리소스 예산을 설정할 수 없습니다. 거부 목록 없이는 범위 정책을 시행할 수 없습니다. 감사 로그 없이는 인시던트를 조사할 수 없습니다. 로그부터 시작하세요. 나머지 둘은 그 뒤를 따릅니다.


핵심 요약

플랫폼 엔지니어를 위해: 에이전트는 기존 모니터링이 추적하지 않는 리소스를 소비합니다. 에이전트 세션별 디스크, 메모리, CPU, 네트워크 사용량은 컨테이너 메트릭과 동일한 대시보드에 있어야 합니다. Cowork 사건이 필요성을 증명합니다: 운영자 가시성 제로로 10GB가 할당되었습니다.

보안 팀을 위해: 도구 호출 경계에서의 정책 시행은 최소한의 실행 가능한 에이전트 보안 태세입니다. mcp-firewall의 중앙 집중식 접근 방식은 에이전트별 허용/거부 로직을 하나의 감사 가능한 구성으로 통합합니다. 에이전트의 내장 권한이 위협 모델이 요구하는 정책 공간을 커버하는지 평가하세요.

엔지니어링 관리자를 위해: 에이전트 도구에 대해 세 가지 질문을 하세요: 세션별 리소스 소비를 볼 수 있는가? 도구 호출 정책을 정의하고 감사할 수 있는가? 사후에 에이전트가 무엇을 했는지 재구성할 수 있는가? 어떤 답이든 “아니오”라면, 워크플로에 추가되는 에이전트마다 커지는 가시성 격차가 있는 것입니다.


FAQ

에이전트 관측 가능성이란 무엇인가요? 에이전트 관측 가능성은 AI 에이전트가 실행 중에 무엇을 하는지 모니터링하고 이해하는 능력입니다: 어떤 리소스를 소비하는지, 어떤 작업을 수행하는지, 그리고 이러한 작업이 정의된 정책을 준수하는지입니다.

Anthropic의 Cowork가 왜 10GB VM을 생성했나요? Claude Desktop의 Cowork 기능은 협업 개발 세션을 위한 가상 머신을 프로비저닝합니다. Claude Desktop은 기능을 활성화하지 않은 사용자에게도 모든 macOS 설치에서 VM 번들을 자동으로 생성하며, 수동으로 삭제할 때까지 유지합니다.1

mcp-firewall이란 무엇인가요? mcp-firewall은 CLI 에이전트(Claude Code, GitHub Copilot CLI)의 도구 사용 요청을 가로채고 실행 전에 정규식 기반 허용/거부 규칙에 대해 평가하는 오픈소스 정책 시행 도구입니다.7

eBPF 런타임 감사란 무엇인가요? eBPF(extended Berkeley Packet Filter)는 감사 대상 프로세스를 수정하지 않고 시스템 콜의 커널 수준 추적을 가능하게 합니다. Logira와 같은 도구는 eBPF 프로브를 사용하여 AI 에이전트 실행 중 프로세스 실행, 파일 작업, 네트워크 연결을 기록합니다.9


출처


  1. mystcb et al., “Cowork feature creates 10GB VM bundle that severely degrades performance,” GitHub Issue #22543, anthropics/claude-code, February 2026. 345 HN points, 175 comments. 

  2. Author’s production telemetry. 84 hooks across 15 event types, ~15,000 lines of orchestration code, 60+ daily Claude Code sessions, February-March 2026. 

  3. Crosley, Blake, “What I Told NIST About AI Agent Security,” blakecrosley.com, February 2026. Public comment on NIST-2025-0035. 

  4. DORA Accelerate State of DevOps Report 2024, Google Cloud, 2024. 39,000+ professionals surveyed. 

  5. Author’s cost-gate hook implementation. SQLite-backed budget tracker with configurable thresholds (80%/90%/95%), 36 tests, February 2026. 

  6. Author’s web content extraction library. trafilatura 2.0.0, URL logging and response size tracking, 25 tests, February 2026. 

  7. dzervas, “mcp-firewall,” GitHub, 2026. Go binary with JSONNet policy configuration, PreToolUse hook integration. 

  8. OWASP Top 10 for Agentic Applications, OWASP GenAI Security Project, 2025. 100+ security researchers contributed. 

  9. melonattacker, “Logira: eBPF runtime auditing for AI agent runs,” GitHub, 2026. Linux 5.8+, cgroup v2, observe-only design. 

  10. Author’s system performance monitoring module. CPU, memory, disk, and swap monitoring with configurable thresholds, 46 tests, February 2026. 

  11. Crosley, Blake, “Anatomy of a Claw: 84 Hooks as an Orchestration Layer,” blakecrosley.com, February 2026. 

관련 게시물

Silent Egress: The Attack Surface You Didn't Build

A malicious web page injected instructions into URL metadata. The agent fetched it, read the poison, and exfiltrated the…

16 분 소요

The Session Is the Commit Message

Git captures what changed. Agent sessions capture why. When agents write code, the session transcript is the real design…

16 분 소요

Your Agent Writes Faster Than You Can Read

Five research groups published about the same problem this week: AI agents produce code faster than developers can under…

16 분 소요