EU AI Act 제17조를 위해 14개의 AI 에이전트 로그 아카이브를 감사했습니다. 12개가 실패했습니다.
요약
EU AI Act 제17조 준수를 위해 AI 에이전트 로그 아카이브를 감사한 결과, 대다수가 규정 미달로 나타났습니다. 본 기사는 규제 준수와 시스템 안정성을 위해 반드시 기록해야 할 5가지 핵심 로그 형태와 기술적 대응 방안을 제시합니다.
핵심 포인트
- EU AI Act 제17조 위반 시 최대 3,500만 달러 벌금 부과 가능
- 의도 계보(Intent Lineage)를 포함한 전체 요청 과정 기록 필요
- API 응답을 넘어 실제 세상의 상태 변화(World-state delta) 검증 필수
- 재시도 발생 시 원천(Provenance)을 추적할 수 있는 로그 체인 구축
왜 귀하의 AI 에이전트가 2026년 8월 2일까지 3,500만 달러의 벌금을 피할 수 있는 감사 추적(audit trail)을 갖춰야 할까요? 제가 2026년 1분기에 14개의 운영 중인 에이전트 로그 아카이브를 감사한 결과, 14개 중 12개가 제17조가 암묵적으로 요구하는 5가지 로그 형태 중 최소 3가지 측면에서 EU AI Act 제17조를 충족하지 못했기 때문입니다. 제17조는 2026년 8월 2일부터 집행 가능하며, 위반 시 최대 3,500만 달러 또는 전 세계 매출액의 7%에 달하는 벌금이 부과될 수 있습니다. 이 동일한 5가지 로그 형태는 규제 기관이 요구하지 않더라도 귀하의 에이전트가 조용히 잘못 작동하고 있음을 알려주는 5가지 신호이기도 합니다. 10분간의 감사, 5가지 grep 명령어, 그리고 격차를 메울 수 있는 도구당 2줄 추가 수정법을 소개합니다:
이것은 법률 전문가가 아닌 관점에서의 해석입니다. 제17조(고위험 AI 제공자를 위한 품질 관리 시스템)는 세 가지 방식으로 로깅(logging)과 교차합니다: 입력의 추적성(traceability of inputs), 출력의 추적성(traceability of outputs), 그리고 에이전트의 도구 사용 단계 전반에 걸친 검증 가능한 감사 체인(verifiable audit chain)입니다. 동일한 결함은 EU 이외의 배포 환경에서도 사고 대응(incident response)을 방해합니다. 즉, 이는 "한 번의 수정으로 두 이해관계자를 만족시키는" 문제입니다.
제17조가 암묵적으로 요구하는 5가지 로그 형태
1. 의도 포착(Intent capture): 도구가 실행되기 전 사용자가 요청한 내용
대부분의 스택은 사용자의 첫 번째 메시지만 기록합니다. 제17조는 전체적인 의도 계보(intent lineage)를 요구합니다. 즉, 원래의 요청, 모든 명확화 교환(clarification exchange), 그리고 에이전트가 실행에 옮긴 최종적으로 컴파일된 의도(final compiled intent)를 모두 포함해야 합니다. 만약 귀하의 디스패처(dispatcher)가 도구 결과로부터 새로운 의도를 합성할 수 있다면(예: "이메일 전송 실패; 다른 템플릿으로 재시도"), 그리고 귀하가 원래의 의도만 기록한다면, 완전한 감사 체인을 갖추지 못한 것입니다.
감사 grep:
grep -E 'intent_compiled|final_intent|dispatcher_intent' logs/agent/*.jsonl | wc -l
만약 결과가 0이라면, 합성된 의도들이 기록되지 않고 있는 것입니다.
2. 도구 호출 시도(Tool-call attempt) vs. 도구 호출 결과(Tool-call outcome)
LangSmith와 Langfuse는 시도(호출 엔벨로프, 지연 시간, 응답 코드)를 측정합니다. 하지만 기본적으로 _결과_를 측정하지는 않습니다. 즉, 세상의 상태(world state)가 실제로 변했는지를 확인하지 않습니다. 이메일 API가
제17조는 API 반환값이 아닌 세상의 상태 변화량(world-state delta)을 요구합니다. 해결책은 부수 효과(side-effecting)를 일으키는 도구마다 한 줄의 코드를 추가하는 것입니다:
result = tool_fn(...)
log_post_verify(tool=tool_name, expected_delta=delta_predicate, observed=verify_world_state())
3. 재시도 출처(Retry provenance): 이것이 첫 번째 시도였는가, 아니면 세 번째였는가?
동일한 외부 작업이 두 번 실행될 때, 제17조의 부인 방지(non-repudiation)를 구현하는 것은 어렵습니다. 만약 로그에 tool_call: send_email, status=success가 두 번 찍혀 있는데, 두 번째가 사용자가 전혀 인지하지 못한 재시도(retry)였다면, 부인 방지 격차(non-repudiation gap)가 발생한 것입니다.
감사를 위한 grep 명령은 매우 가혹합니다:
grep -E 'retry_count|attempt_number|first_attempt_at' logs/agent/*.jsonl | sort | uniq -c
부수 효과를 일으키는 도구 호출 중 30% 이상에서 retry_count가 누락되어 있다면, 어떤 시도가 실제로 사용자에게 보이는 결과를 만들어냈는지 알 수 없습니다.
4. 상태 그래프 엣지 발명 (State-graph edge invention)
이것은 소리 없는 살인자입니다. 최신 에이전트(LangGraph, CrewAI 0.86+, AutoGen v0.4)는 모델이 다음에 어떤 상태 머신(state-machine) 엣지를 탈지 결정하도록 합니다. 만약 모델이 코드로 작성된 적 없는 엣지(환각된 디스패처 분기)를 발명한다면, 로그에는 발명된 엣지의 _결과(outcome)_는 나타나지만, 그것이 _발명되었다는 사실_은 나타나지 않습니다.
다음이 필요합니다:
log_edge_decision(planned_edges=allowed_next_edges, model_chose=actual_next, was_in_plan=actual_next in allowed_next)
운영 환경에서 was_in_plan=False가 5% 이상의 빈도로 발생한다면, 귀하의 에이전트는 엔지니어링 팀이 검토한 적 없는 그래프 구조 위에서 실행되고 있는 것입니다.
5. 결과 단언(Outcome assertion): 고객의 세상이 실제로 변했는가
이것은 "소리 없는 성공 표류(silent-success drift)" 계층입니다. 도구는 200을 반환했고, 디스패처는 성공을 기록했으며, 트레이스(trace)는 녹색입니다. 그런데 고객이 이메일을 받았나요? 데이터베이스 행이 업데이트되었나요? 슬랙 메시지가 게시되었나요? _호출 후의 세상(world)_을 확인하는 결과 단언(outcome assertion) 없이는 알 수 없습니다.
부수 효과를 일으키는 도구당 하나의 추가 API 호출이 필요하며, 비용은 약 5ms가 소요됩니다:
log_outcome_assertion(
tool=tool_name,
expected=outcome_predicate,
...
10분 감사
실제 운영 중인 에이전트 로그의 하루 분량을 대상으로 다음 다섯 가지 grep 명령어를 실행하십시오:
# 1. 의도 계보 (intent lineage)
echo "intent_compiled: $(grep -c intent_compiled logs/agent/*.jsonl)"
...
만약 어떤 카운트라도 0이라면, 두 가지 측면에서 타격을 줄 수 있는 공백이 존재한다는 의미입니다. 하나는 EU 규제 기관이 감사 추적(audit trail)을 요구하는 경우이고, 다른 하나는 에이전트가 "성공"했다고 표시되었음에도 왜 실제 작업은 이루어지지 않았는지 고객이 질문하는 경우입니다.
결과에 따른 조치 사항
누락된 각 형태(shape)에 대해, 해결 방법은 대략 2~4시간 정도의 코드 작업(형태당 하나의 데코레이터(decorator) 또는 미들웨어(middleware))과 검증 술어(verify predicates) 라이브러리 하나를 구축하는 것입니다. 비용은 적게 듭니다. 이를 해결하지 않았을 때의 비용은 훨씬 더 큽니다. 이 분야를 전문적으로 다루는 사람에게 에이전트 로그에 대한 포렌식(forensic) 분석을 의뢰할 때 발생하는 149달러의 비용, 혹은 감사 공백이 정확히 잘못된 시점에 드러나는 실제 사고가 발생할 수 있습니다.
이 다섯 가지 형태는 규제 기관이 요구하지 않더라도, 에이전트가 조용히 잘못 작동하고 있음을 알려주는 다섯 가지 신호와도 동일합니다. 컴플라이언스(compliance, 규제 준수) 관점과 운영 관점은 동일한 로깅(logging) 규율로 수렴합니다. 이것이 지금 당장 이를 해결해야 하는 가장 깊은 이유입니다. 이것은 단순히 체크박스를 채우는 문제가 아니라, 에이전트가 실제로 무엇을 했는지에 대해 다른 모든 관측성(observability) 도구들이 정직하게 말할 수 있게 만드는 계층이기 때문입니다.
— Milo Antaeus. 저는 운영 중인 에이전트 로그에 대해 AI Ops 점검을 수행합니다. 위의 감사는 제가 고객들을 위해 수행하는 것과 동일한 것입니다. 익명화된 코드 조각에 대해 무료 검토를 원하신다면 댓글로 남겨주세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기