AI 에이전트에게는 로그 이상의 것이 필요합니다: NovaFabric을 구축한 이유
요약
AI 에이전트의 실행 과정을 단순히 로그로 기록하는 것만으로는 충분하지 않으며, 감사 및 검증을 위한 '실행 증거'가 필요합니다. NovaFabric은 AI 에이전트의 모든 활동(모델 호출, 도구 사용, 파일 변경 등)을 구조화된 '런 캡슐(Run Capsule)'이라는 아티팩트로 포착하고 봉인하여 투명성을 확보하는 프레임워크입니다.
핵심 포인트
- NovaFabric은 단순 로그를 넘어 실행 전체를 증거로 기록합니다.
- 실행 과정을 Run Capsule 형태로 구조화하여 보관 및 검증이 가능하게 합니다.
- 캡처(Capture), 봉인(Seal), 재생(Replay), 비교(Diff), 감사(Audit)의 5단계 프로세스를 제공합니다.
AI 에이전트는 점점 더 강력해지고 있습니다.
에이전트는 다음 작업을 수행할 수 있습니다:
- 코드 수정
- API 호출
- 셸 명령어 실행
- 클라우드 인프라 변경
- 파일 읽기 및 쓰기
- 다른 에이전트와 상호작용
- 의사 결정
하지만 여전히 놀랍도록 답하기 어려운 간단한 질문이 있습니다:
AI 에이전트가 작업을 마친 후, 실제로 무엇을 했는지 증명할 수 있을까요?
보통의 대답은 다음과 같습니다: 완벽하게는 아닙니다.
이것이 바로 NovaFabric의 배경이 되는 문제입니다.
로그는 유용하지만, 증거는 아니다
오늘날 우리는 많은 좋은 관측 가능성(observability) 도구를 가지고 있습니다. 이들은 다음과 같은 것을 보여줄 수 있습니다:
Agent started
↓
LLM called
...
이는 디버깅에 유용합니다. 하지만 6개월 후에 무언가 잘못된다고 상상해 보세요. 감사관, 보안 엔지니어, 연구원 또는 개발자는 다음과 같이 물어볼 수 있습니다:
- 어떤 모델이 사용되었나요?
- 어떤 프롬프트를 받았나요?
- 모델은 무엇을 반환했나요?
- 에이전트가 어떤 도구를 호출했고, 어떤 인자와 함께 호출했나요?
- 어떤 파일이 변경되었나요?
- 어떤 네트워크 서비스에 연락했나요?
- 어떤 소프트웨어 버전이 설치되었나요?
- 비밀 정보(secrets)가 포획되었나요?
- 실행 후 기록이 변경되었나요?
- 다시 재현하거나 실행을 검사할 수 있나요?
전통적인 추적(trace)은 이러한 모든 질문에 반드시 답하지 못합니다. 그리고 더 중요한 것은, 일반 데이터베이스 기록은 나중에 잠재적으로 변경될 수 있다는 것입니다.
이곳에서 **실행 증거(execution evidence)**라는 아이디어가 유용해집니다.
AI 실행을 아티팩트로 생각하세요
NovaFabric은 다른 접근 방식을 취합니다. 다음과 같이 생각하는 대신:
AI Agent → Logs
다음과 같이 생각합니다:
AI Agent
↓
Execution
...
NovaFabric은 실행을 **런 캡슐(Run Capsule)**이라는 것에 기록합니다. 이는 한 번의 실행을 설명하는 구조화된 폴더입니다.
capsule/
├── capsule.yaml
├── trace.jsonl
...
아이디어는 간단합니다:
실행은 보관하고, 검사하고, 비교하고, 재생(replay)하며, 서명하고, 공유할 수 있는 무언가를 남겨야 합니다.
연구 논문은 모델 호출(model calls), 도구 호출(tool calls), 파일 이벤트(file events), 네트워크 호출(network calls), 인간 승인(human approvals), 환경 정보(environment information), 계보(lineage), 검열 기록(redaction records), 재생 정보(replay information), 그리고 위변조 방지(tamper-evidence)를 포함한 15가지 엔티티 유형을 사용하여 캡슐(capsule)을 모델링합니다.
NovaFabric을 설명하는 다섯 가지 동사
Capture → Seal → Replay → Diff → Audit
1. Capture (캡처)
먼저, 실행 중에 무슨 일이 일어났는지 캡처합니다:
nova capture python my_agent.py
NovaFabric은 애플리케이션 자체를 재작성할 필요 없이 명령어를 감쌀 수 있습니다. 이는 모델 호출, 도구 호출, 파일, 네트워크 활동, 환경, 입력 및 출력을 캡처하는 것을 목표로 합니다. 그 결과물은 휴대 가능한 **실행 캡슐(Run Capsule)**이 됩니다.
2. Seal (봉인)
정보를 캡처하는 것만으로는 충분하지 않습니다. 만약 나중에 누군가가 기록을 수정한다면, 우리는 그 수정을 감지할 수 있기를 원합니다.
NovaFabric은 확립된 기술들을 결합합니다:
- 서명(signing)을 위한 DSSE
- 신뢰 타임스탬프를 위한 RFC 3161
- 추가 전용 기록(append-only history)을 위한 Merkle logs
- 암호학적 검열 기록(cryptographic redaction records)
중요한 점은 다음과 같습니다: NovaFabric은 새로운 암호학을 발명하는 것이 아닙니다. 기존 표준들을 AI 에이전트 실행을 위한 하나의 증거 시스템으로 결합합니다. 새로운 서명 알고리즘보다는 이러한 통합 자체가 논문의 주요 기여점입니다.
봉인 전: "이 파일은 에이전트가 X를 했다고 말한다."
봉인 후: "이 파일은 에이전트가 X를 했으며, ..."
여기에는 중요한 제한 사항이 있습니다. 위변조 방지(Tamper-evident)는 위변조 불가능(tamper-proof)을 의미하지 않습니다. NovaFabric은 적절하게 봉인된 증거의 나중 수정을 감지할 수는 있지만, 증거가 원래 생성되었을 때 신뢰하는 서명 당사자가 진실을 말했는지 여부는 증명할 수 없습니다. 논문은 이 신뢰 경계(trust boundary)를 명시적으로 정의합니다.
3. Replay (재생)
AI 시스템에는 또 다른 문제가 있습니다: 재현성(reproducibility). 내일 같은 프롬프트를 실행해도 동일한 답변을 얻지 못할 수 있습니다. 따라서 NovaFabric은 모든 AI 실행이 비트 단위로 완벽하게 재현될 수 있다고 주장하지 않습니다. 대신, 네 가지 재생 모드를 정의합니다:
- 포렌식 재생 (Forensic replay) - 아무것도 실행하지 않고, 발생한 일을 재구성하고 검사합니다 (사건 조사, 보안 검토, 감사, 디버깅).
- 모의 재생 (Mocked replay) - 모델을 다시 호출하는 대신 이전에 기록된 모델 응답을 사용하여 주변 애플리케이션 로직을 테스트합니다.
- 정확한 재생 (Exact replay) - 결정론적 조건이 존재할 때 동일한 환경, 모델, 데이터 및 실행을 재현하려고 시도합니다.
- 의미 기반 재생 (Semantic replay) - 다른 모델을 대상으로 실행하고 새 출력의 의미를 원본과 비교합니다. 예를 들어 Model v1에서 v2로 업그레이드할 때와 같습니다.
이 논문은 여기서 의도적으로 신중하게 접근합니다: 모의(mocked) 모드만이 모델 입력에 대해 구축상 결정론적이며, 포렌식(forensic) 모드는 아무것도 실행하지 않습니다.
4. Diff
B를 실행한 결과가 나쁘게 나왔습니다. 무엇이 바뀌었을까요? 모델일 수도 있고, 프롬프트일 수도 있고, 의존성일 수도 있고, 도구 응답일 수도 있고, 환경일 수도 있고, 출력일 수도 있습니다. NovaFabric은 거대한 텍스트 로그 대신 캡슐(capsules) 간의 구조적 차이(structural diff)를 제공하여 실행을 비교합니다.
논문의 통제된 실험에서 구조적 차이는 테스트된 일곱 가지 변이 클래스에 걸쳐 **140개의 주입된 변이(injected mutations)**를 정확하게 국소화했습니다. 이는 다음과 같은 질문들을 조사하기 더 쉽게 만들 수 있습니다:
“어제는 작동했는데, 왜 오늘 에이전트가 실패했을까요?”
5. 감사 (Audit)
마침내 증거를 **증거 번들(Evidence Bundle)**로 패키징할 수 있습니다. 다른 사람이 당신의 데이터베이스를 신뢰할 필요가 없습니다. 그들에게 증거와 그것을 검증하는 데 필요한 암호화 정보를 담은 휴대 가능한 아티팩트를 건네줄 수 있습니다.
Agent 실행 → 실행 캡슐(Run Capsule) → 암호화 봉인(Cryptographic seal) → 증거 번들 (Evidence Bundle) → 감사자 / 연구원 / 보안팀
논문은 검증자가 NovaFabric 서버를 신뢰할 필요 없이 표준 기술을 사용하여 오프라인 검증 경로를 지정합니다. 하지만, 이 독립적 검증자 상호 운용성 경로는 출판 시점에 독립적으로 구현된 검증자에 의해 아직 사용되지 않았음을 또한 명시합니다. 이 구분이 중요합니다.
OpenTelemetry만 사용하면 안 되는 이유?
저는 OpenTelemetry를 좋아하며 NovaFabric도 OpenTelemetry 개념을 활용합니다. 하지만 문제의 영역이 다릅니다:
| 관측 가능성 (Observability) | 실행 증거 (Execution evidence) |
|---|---|
| 무엇이 일어나고 있는가? | 무슨 일이 일어났는가? |
| ... | |
| NovaFabric은 Prometheus, OpenTelemetry, Langfuse, LangSmith 또는 유사한 시스템을 대체할 목적으로 만들어진 것이 아닙니다. 대신 다른 질문에 초점을 맞춥니다: |
과거의 실행이 재현(replayed)되고, 비교되며, 증명될 수 있는가?
비밀 정보는 어떨까요?
모든 것을 캡처하는 것은 또 다른 문제를 만듭니다. 에이전트가 API 키, 토큰, 비밀번호 또는 자격 증명을 볼 수 있으며, 이러한 정보들을 다른 회사나 감사자에게 전송되는 번들 안에 담고 싶지 않을 수 있습니다. NovaFabric에는 비밀 정보 제거(secret redaction) 기능과 제거 증명서(redaction attestation)가 포함되어 있습니다.
하지만 제거 증명서는 '스캐너가 이 비밀 정보를 감지하고 제거했다고 말하는 것'을 의미합니다. 이것이 캡슐 내 다른 어딘가에 알려지지 않은 비밀 정보가 존재하지 않는다는 것을 증명하는 것은 아닙니다. 논문은 이를 명확히 합니다: 완전성은 스캐너, 그 규칙, 그리고 검사하는 위치에 달려 있습니다. 이러한 경계를 분명히 하는 것은 보안 도구의 경우 특히 중요합니다.
연구 평가 결과는 어땠나요?
Model 호출 캡처: 테스트된 시나리오에서 100%
MCP 도구 호출 캡처: 테스트된 시나리오에서 100%
탐지된 테스트 변조 클래스: 3 / 3
...
하지만 일부 결과는 약점도 노출했습니다. 모의 재현(Mocked replay)은 10/10 테스트된 시나리오에서 실제 모델 호출을 피했지만, 평가된 버전에서는 도구 응답이 아직 대체되지 않았기 때문에 도구를 사용하는 워크로드 중 2/10만 완료되었습니다. 이것은 연구의 가장 유용한 결과 중 하나였습니다: 평가는 좋은 벤치마크 수치를 산출했을 뿐만 아니라 실제 결함을 발견했습니다.
예상치 못한 교훈
**
여러 문제가 발견되었는데, 이는 테스트가 단순히 프로그램이 성공적으로 종료되었는지 여부만 확인하는 것이 아니라 _기록되어야 할 것_을 검사했기 때문입니다. 한 시점에서는 캡처(capture)가 작동한 것처럼 보였음에도 불구하고 일부 증거 스트림(evidence streams)이 누락되었습니다. 또 다른 실험에서는 구성된 메타데이터 데이터베이스에 테이블이 전혀 없었음에도 불구하고 인제스트 서비스(ingest service)가 성공적인 HTTP 응답을 반환했습니다.
"실행했는가?"는 약한 테스트입니다.
"예상했던 일들이 실제로 발생했다는 것을 증명할 수 있는가?"가 훨씬 강력합니다.
NovaFabric의 현재 모습
NovaFabric은 오픈 소스이며 자체 호스팅(self-hosted)이 가능합니다. 이 프로젝트는 논문에서 평가된 정확한 버전을 넘어 발전했으므로, 본 논문을 오늘날 리포지토리 전체를 설명하는 것이 아니라 연구 스냅샷으로 읽어야 합니다.
pip install novafabric
nova capture python my_agent.py
...
이 프로젝트는 여전히 베타(beta) 버전입니다. 일부 로컬 기능은 더 성숙했지만, 서버, 클러스터 규모, 그리고 일부 대규모 구성 요소들은 아직 실험적인 단계에 머물러 있습니다. 저는 실험적인 인프라를 프로덕션 환경에서 검증된 것처럼 설명하고 싶지 않습니다.
더 큰 아이디어
AI 에이전트가 채팅 인터페이스를 넘어 실제로 작동하는 시스템(프로덕션 인프라 변경, 금융 운영 승인, 소프트웨어 수정, 중요 데이터 이동, HPC 시스템 작동, 다른 에이전트 조정 등)으로 이동함에 따라, 관측 가능성(observability)만으로는 충분하지 않을 것입니다. 결국 누군가는 물어볼 것입니다: 정확히 무슨 일이 일어났는가? 그것을 증명할 수 있는가? 재현할 수 있는가?
NovaFabric이 탐구하는 바로 그 영역입니다. 또 다른 에이전트 프레임워크도, 또 다른 트레이싱 대시보드도 아니라, 실행(execution)을 우리가 **캡처 → 봉인(seal) → 재생(replay) → 비교(compare) → 감사(audit)**할 수 있는 무언가로 전환하기 위한 인프라입니다.
사용해 보기
NovaFabric은 Apache-2.0 라이선스를 따르는 오픈 소스 프로젝트입니다:
- GitHub: https://github.com/MSKazemi/novafabric
- Website: https://novafabric.ai
- Research paper: https://arxiv.org/abs/2609.12582
AI 에이전트, MLOps, HPC, 보안, 관측 가능성(observability), 출처 추적(provenance), 또는 재현성(reproducibility)에 대해 작업하고 계시다면, 여러분의 피드백을 받고 싶습니다. 특히 다음 질문에 대한 답변이 궁금합니다:
오늘 AI 에이전트가 중요한 결정을 내렸을 때, 6개월 후에도 어떤 증거를 가지고 계실 것입니까?
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기