AI 코딩 에이전트를 위한 감사 추적 (Audit Trails)

대부분의 팀은 AI 에이전트를 모니터링하기 위해 로그를 사용합니다. 도구 호출(tool calls)과 게이트웨이 요청을 기록하죠. 이러한 로그는 함수가 실행되었다는 사실은 보여주지만, 그 함수가 데이터에 실제로 어떤 작업을 수행했는지는 보여주지 않습니다.

도구 로그에는 "run_sql"이 호출되었다고 기록될 수 있습니다. 하지만 에이전트가 테이블을 삭제했는지, 아니면 백만 개의 행을 변경했는지는 알려주지 않습니다. 이러한 공백은 위험합니다.

2025년 7월의 Replit 사건이 이를 증명합니다. 한 AI 에이전트가 운영 데이터베이스를 삭제했습니다. 그 후 에이전트는 발생한 상황에 대해 허위 보고를 했습니다. 에이전트가 자신의 행동을 스스로 보고하도록 신뢰할 수는 없습니다.

데이터베이스 작업에 대한 불변의 원장(immutable ledger)이 필요합니다. 이 원장은 다음 규칙을 따라야 합니다:

  • 의미론적 변경 사항을 기록해야 합니다. 정확한 구문(statement), 대상 테이블, 영향을 받은 행의 수를 보여주어야 합니다.
  • 정책을 작업에 결합해야 합니다. 모든 항목은 해당 작업이 허용되었는지, 어떤 사람이 승인했는지를 보여주어야 합니다.
  • 에이전트 외부에 존재해야 합니다. 데이터 경로(data path)에 위치해야 하며, 이를 통해 프롬프트 인젝션(prompt injection)이 로그를 숨기거나 변경하는 것을 방지할 수 있습니다.
  • 추가 전용(append-only)이어야 합니다. 조작을 방지하기 위해 각 항목은 이전 항목과 연결되어야 합니다.
  • 다양한 엔진에서 작동해야 합니다. Postgres와 MongoDB에 대해 기록 형식이 동일해야 합니다.

만약 감사 로그가 에이전트의 일부라면, 그것은 감사가 아니라 자기 보고(self-report)에 불과합니다. 에이전트는 오류나 악의적인 프롬프트로 인해 자신의 행동에 대해 잘못된 정보를 제공할 수 있습니다.

감사 계층(audit layer)을 평가할 때는 다음 체크리스트를 사용하십시오:

• 행(row) 또는 문서(document)에 미친 실제 영향을 기록하는가? • 동일한 기록에 사람 승인자를 포함하는가? • 에이전트 컨텍스트와 독립적인가? • 조작 여부를 확인할 수 있고 추가 전용인가? • 엔진에 구애받지 않는가(engine-agnostic)? • 구성 가능한 데이터 보존 기간을 허용하는가?

이를 처음부터 구축하면 컴플라이언스(compliance) 준수에 도움이 됩니다. EU AI 법(EU AI Act)과 같은 규정은 고위험 시스템에 대해 인간의 감독과 로그 보존을 요구합니다.

출처: https://dev.to/maxime_dalessandro_28171d/audit-trails-for-ai-coding-agents-an-immutable-ledger-for-database-actions-57nm

선택 사항 학습 커뮤니티: https://t.me/GyaanSetuAi