당신이 보지 않을 때 AI 에이전트가 하는 일을 누가 지켜보고 있나요?
Source: Dev.to
개요

이 이야기는 AI가 위험하다는 것이 아니라, 우리 대부분이 눈치채지 못하고 길러온 습관에 관한 것입니다.
Claude Code 세션을 시작합니다. 에이전트가 첫 번째 행동에 대한 허가를 요청합니다. 내용을 읽고 승인합니다. 두 번째 행동 – 읽고 승인합니다. 세 번째 행동 – 대충 보고 승인합니다. 네 번째나 다섯 번째가 되면 “이번 세션에서는 다시 묻지 않기” 를 클릭하고 원래 하던 일로 돌아갑니다.
이것은 부주의가 아니라, 도구 자체가 만든 승인 피로 문제에 대한 완전히 합리적인 반응입니다. 에이전트가 너무 자주, 너무 많은 요청을 하고, 우리는 점점 무시하게 됩니다.
원격으로 작업할 때 이 문제는 더욱 악화됩니다. 저는 AI 코딩 세션을 두 가지 방식으로 진행합니다:
- 텔레그램에 연결된 OpenClaw를 통해, 메시지를 보내면 에이전트가 제 머신에서 행동을 실행합니다.
- 휴대폰의 Claude.ai를 이용해 원격 세션을 실행합니다.
어느 쪽이든 작은 화면을 보면서 제한된 컨텍스트로 행동을 승인하고, 결국 세심히 읽는 것을 멈추게 됩니다.
어느 날 머신으로 돌아와 보니 에이전트가 예상치 못한 파일들을 수정해 놓았습니다 – 악의적인 것이 아니라 자신 있게 변경한 것이었습니다. .env 파일이 업데이트되고, 설정이 바뀌며, 의존성이 추가되었습니다. 큰 사고는 아니었지만 기록이 없었습니다. 무엇이 언제 왜 바뀌었는지 알 수 없었습니다.
해결책: AgentGuard
AgentGuard는 AI 코딩 에이전트가 세션 중 및 세션 사이에 파일에 어떤 작업을 수행했는지 모니터링하는 백그라운드 데몬입니다. 에이전트의 작업을 막으려는 것이 아니라, 무슨 일이 일어났는지 가시성을 제공하는 것이 목적입니다.
실제로 하는 일
- 파일 감시 – 설정된 디렉터리에서 민감 파일(
.env, 키, CI 설정,package.json,CLAUDE.md같은 에이전트 메모리 파일)의 변화를 감시합니다. - 감사 로그 – 각 이벤트를 기록하고, 필요에 따라 텔레그램 메시지와 Keep / Rollback 버튼을 보낼 수 있습니다. 머신 앞에 없을 때도 알림을 받을 수 있습니다.
- 항상 켜짐 – macOS의
launchd등으로 영구 백그라운드 데몬으로 실행되어, 명시적인 세션 동안만이 아니라 지속적으로 감시합니다. - 메뉴바 UI – macOS 메뉴바 아이콘이 데몬 상태와 최근 활동을 표시합니다. Docker Desktop의 트레이 아이콘과 유사합니다.
제작하면서 배운 점
- 감지 vs. 행동 – 변화를 감지하는 것은 쉬웠지만, 그에 대해 무엇을 할지는 어려웠습니다. 모든 것을 차단하면 에이전트가 쓸모없어지고, 아무것도 차단하지 않으면 목적이 사라집니다. 제가 선택한 해결책은: 모든 변화를 로그에 남기고, 정말 중요한 이벤트(자격 증명 파일, 대량 삭제, CI 설정 변경)만 알림을 보내고, 사용자가 직접 결정하도록 하는 것이었습니다.
- 명령 가로채기는 까다롭다 – Codex와 같은 도구는 인터셉트 가능한 방식으로 쉘을 호출하지 않는 Rust 바이너리입니다. 대부분의 에이전트에 대해 파일 감시가 명령 가로채기보다 더 신뢰할 수 있었습니다.
남은 질문
- 이 문제를 해결하기 위한 적절한 레이어인가, 아니면 에이전트 자체가 더 나은 감사 로그를 제공해야 하는가?
- “이번 세션이 무엇을 바꿨는가”에 대한 표준이 있어야 할까?
필요해서 만들었습니다. 몇 주 동안 두 프로젝트를 감시하면서 실행 중이며, 로그는 대부분 조용합니다 – 이는 좋은 소식이거나 내가 감시 대상을 잘못 잡았다는 신호일 수 있습니다.
시작하기
npm install -g agentguard-dev
자세한 내용과 소스 코드는 다음 저장소를 참고하세요: