AI 에이전트에 '경찰서'를 붙인다
클로드 코드 에이전트의 모든 행동을 기록·감사하는 오픈소스 agent-pd 등장
AI 코딩 에이전트가 파일을 읽고 셸 명령을 실행하며 하위 에이전트까지 띄우는 시대다. 문제는 "그 에이전트가 실제로 무슨 짓을 했는가"를 사후에 긴 대화록을 스크롤해야 겨우 알 수 있다는 점이다. 깃허브에 공개된 agent-pd는 클로드 코드(Claude Code) 에이전트의 모든 행동을 기록하고 규칙 위반을 잡아내는 '경찰서'를 자처한다.
무슨 일인가
agent-pd는 "기록만 하는" 훅(hook)을 설치해, 메인 에이전트와 모든 하위 에이전트가 호출한 도구·권한 이벤트를 세션별 감사 로그에 남긴다. 그런 다음 전용 pd 명령으로 그 로그를 여섯 개의 탐지기에 통과시켜 규칙 위반을 근거 문장과 함께 보고한다. 핵심 철학은 "잡아서 보고하되 막지는 않는다(catch-and-report)"다. 만든 이는 이를 방화벽이 아니라 "블랙박스이자 경찰 무전기"에 비유한다. 실제 차단은 여전히 클로드 코드의 권한 프롬프트나 OS 샌드박스의 몫이라는 것이다.
특히 클로드 코드의 새 워크플로(Workflow) 도구가 띄우는 동적 하위 에이전트까지 감사 범위에 포함된다는 점을 검증된 기능으로 내세운다. 에이전트를 여러 개 병렬로 굴리는 환경에서 "누가 무엇을 했는지"를 놓치지 않겠다는 설계다.
핵심 짚어보기
여섯 탐지기는 토큰 비용 없이 결정론적으로 작동한다. 거부된 호출, 범위 밖·자격증명 접근, 권한 우회, 스스로 권한 부여, 허용되지 않은 도구 사용, 과업 이탈(off-task) 등을 잡는다. 거부된 호출은 클로드 코드가 먼저 죽여버려 대화록에 아예 남지 않는데, agent-pd는 이를 별도로 기록한다는 점이 차별점이다.
로그는 해시 체인으로 묶여 변조를 탐지할 수 있고, 선택적으로 호스트 밖 추가 전용(append-only) 저장소에 보낼 수도 있다. 세션은 UUID가 아니라 프로젝트 경로와 첫 사용자 프롬프트로 이름이 붙어 사람이 알아보기 쉽다. 운영 도구는 세 가지다. 사후 분석용 pd report, 실시간 감시용 pd watch, 그리고 선택적으로 LLM이 한 번 더 훑는 pd judge. 만든 이는 "이건 샌드박스가 아니라 기준선을 높이는 도구"라고 솔직하게 선을 긋는다.
1인기업 실전 적용 포인트
- 무인 자동화 전에 감사 로그부터 깔아라: cron으로 에이전트를 밤새 돌린다면, agent-pd 훅을 먼저 설치해 자격증명 접근·범위 이탈을 사후 추적할 근거를 남겨라.
- 병렬 에이전트 운영의 안전판으로 쓰라: 워크플로로 여러 하위 에이전트를 띄울 때, pd watch로 "수상한 호출 1건"을 실시간으로 골라낼 수 있다.
- 클라이언트 작업 시 책임 증빙으로 활용하라: 변조 탐지 가능한 로그는 "우리 에이전트가 고객 자격증명에 손대지 않았다"는 객관적 증거가 된다.
- 차단은 별도로 설계하라: agent-pd는 막지 않으므로, 실제 위험 행위 차단은 권한 프롬프트나 OS 샌드박스로 따로 갖춰야 한다.
전망 / 주의점
AI 에이전트가 실제 업무를 맡을수록 "통제"가 아니라 "감사 가능성"이 먼저 필요해진다. agent-pd 같은 도구는 1인기업이 사람 직원에게 적용하던 내부 통제(로그·감사) 개념을 에이전트에도 그대로 이식하는 첫걸음이다. 다만 기록은 사후 추적일 뿐 실시간 방어가 아니라는 한계를 분명히 인식하고 써야 한다.
출처: 깃허브 agent-pd (https://github.com/varmabudharaju/agent-pd/blob/master/README.md)