데이터베이스 브랜치 기능을 통해 AI 에이전트의 쓰기 권한을 안전하게 관리할 수 있을까요?
Would you let an agent write to your database if every write went to its own branch first?
핵심 요약
AI 에이전트의 데이터베이스 쓰기 사고를 방지하기 위해 브랜치 기반의 변경 사항 검토 및 병합 시스템을 도입하는 방안을 논의합니다.
- 브랜치 전략 — 에이전트가 별도 브랜치에서 작업하게 하여 변경 사항을 검토 후 병합함
- 변경 사항 검토 — 단순 데이터 변경뿐만 아니라 하위 자동화에 미치는 영향까지 파악해야 함
- 병합 정책 — 삭제 제한이나 특정 테이블 접근 차단 등 자동 병합을 위한 규칙 설정이 필요함
- 위험 관리 — 권한 분리나 읽기 전용 작업과 쓰기 작업의 구분으로 사고 가능성을 최소화함
우리 CRM 프로덕션 데이터베이스에 쓰기 권한이 있는 에이전트가 리드 리스트를 싹 다 날려버렸음. 에이전트가 일을 하려면 쓰기 권한이 필수라 "읽기 전용으로 바꿔라" 같은 소리는 해결책이 안 됨.
내가 계속 생각하는 방식은 이거임: 모든 에이전트한테 실제 데이터베이스의 개별 브랜치를 따로 파주는 거임. 에이전트는 자기 브랜치 안에서 마음껏 읽고 쓰게 냅두고, 나중에 에이전트가 뭘 바꿨는지(테이블, 행, 변경 전후 데이터) 정확히 확인한 다음에 병합할지 아니면 그냥 버릴지 결정하는 거지. 기본적으로는 사람이 직접 병합을 승인하게 하거나, "삭제는 N개까지만 허용" 같은 규칙을 걸어서 사소하고 안전한 변경은 자동으로 넘어가고 큰 건은 검토 대기하게 만드는 방식임.
더 깊게 파고들기 전에, 이게 나만 겪는 문제인지 아니면 다들 겪는 문제인지 궁금함:
- 너희 에이전트들은 실제 데이터베이스에 직접 쓰기를 함, 아니면 읽기만 함?
- 만약 쓰기를 한다면, 지금은 잘못된 변경을 어떻게 막고 있음? 권한 설정, 백업, 사람이 일일이 검토, 아니면 그냥 기도 메타?
- 에이전트가 변경한 내용을 적용하기 전에 diff로 확인하는 과정이 있으면 도움이 될 것 같음? 아니면 너무 번거로울 것 같음?
- 이런 방식을 신뢰하려면 뭐가 더 필요할 것 같음?
어떤 의견이든 환영함.

