---
title: "Decision Traceability — 의사결정 추적"
description: "판단 근거, 선택 사유, 협업 경로를 구조화된 로그로 남긴다."
canonical: "https://architecture.reopt.ai/ko/patterns/decision-traceability"
language: "ko"
alternate-markdown: "https://architecture.reopt.ai/patterns/decision-traceability.md"
site-index: "https://architecture.reopt.ai/llms.txt"
source: "reopt architecture"
---

# Decision Traceability — 의사결정 추적

> 판단 근거, 선택 사유, 협업 경로를 구조화된 로그로 남긴다.

- **Category:** 신뢰와 검증
- **OCLS phase:** SHARPEN
- **Slug:** `decision-traceability`

## 판단 질문

이 에이전트의 판단 근거를 사후에 설명할 수 있는가?

## Context

에이전트 시스템이 복잡해질수록 '왜 이 결과가 나왔는가'에 답할 수 있어야 한다. 평가도 개선도 장애 대응도 감사 추적도 모두 의사결정 기록을 전제로 한다. 추적 없이 거버넌스를 하려는 것은 로그 없이 디버깅하는 것과 같다.

## Problem

의사결정 기록이 없으면 장애가 나도 원인 에이전트를 짚을 수 없고 어떤 모듈이 무슨 근거로 선택됐는지 알 수 없다. 평가 기준을 세워도 평가할 데이터가 없어 시스템 전체가 설명할 수 없는 블랙박스가 된다. 규제 환경에서는 감사 추적이 안 되면 그 자체가 컴플라이언스 위반이다.

## Forces

- 모든 의사결정을 기록하면 스토리지와 성능 비용이 늘고, 골라서 기록하면 중요한 판단 근거를 놓칠 수 있다.
- 구조화된 로그는 분석이 쉬운 대신 설계 비용이 크고, 비정형 로그는 바로 남길 수 있지만 나중에 분석하기 어렵다.
- 실시간 추적은 곧바로 대응할 수 있는 대신 시스템 부하가 크고, 배치 분석은 부하는 적지만 사고 대응이 늦다.

## Solution

모든 에이전트와 모듈에 구조화된 의사결정 로그를 부여한다. 로그에는 입력 컨텍스트, 선택한 행동과 그 근거, 거절한 대안, 호출한 모듈과 그 결과, 핸드오프 대상과 사유를 담는다. 로그 형태는 JSON이나 OpenTelemetry span으로 표준화하고, 에이전트 간 인과 관계를 따라갈 수 있도록 trace ID를 붙인다. 실시간 알림이 필요한 지표(가드레일 차단, 에스컬레이션)와 배치 분석이 어울리는 지표(품질 분포, 비용 추세)를 갈라둔다.

## 적용 시나리오

_예시 시나리오 — 본 페이지의 수치와 기업명은 패턴 설명을 위한 가상 사례이며, 실측 데이터가 아닙니다._

고객 상담 시스템에서 Response Agent가 '배송 지연' 문의에 10% 할인 쿠폰을 제안했다. 의사결정 로그: { traceId: 'tx-4521', agent: 'response', input: { category: '배송지연', sentiment: 'frustrated', priorResolutions: ['사과 메일'] }, decision: '쿠폰 제안', reason: '3회차 지연 + 이전 대응이 사과만 → 보상 에스컬레이션', rejectedAlternatives: ['재사과(이미 시도)', '전액 환불(비용 과다)'], module: 'coupon-generator', result: { couponValue: '10%', expiry: '30d' } }. 이 로그 덕분에 QA Agent가 쿠폰 남발 패턴을 잡아냈고, 3회차까지는 사과, 4회차부터 쿠폰이라는 정책 개선으로 이어졌다.

## 이렇게 하면 무너진다

의사결정 기록 없이 운영하면 '왜 이 고객에게 쿠폰이 발급됐는가'에 답할 수 없다. 쿠폰 비용이 예산을 넘겨도 원인을 분석할 데이터가 없고, 감사 때는 '에이전트가 자율로 판단했다'는 답밖에 못 한다. 프롬프트를 바꿔도 변경 전후의 의사결정 패턴을 비교할 수 없어 개선이 시행착오에 매달린다.

## 구현 패턴 연결

- Structured Logging
- Distributed Tracing

에이전트별 의사결정 로그를 구조화된 형태(JSON, OpenTelemetry spans)로 수집하고 인과 관계까지 추적하는 트레이싱 인프라를 구현한다.

## 관련 문서

- [Evaluation and Guardrails — 평가와 가드레일](https://architecture.reopt.ai/ko/patterns/evaluation-and-guardrails.md)
- [Module Contract — 모듈 계약](https://architecture.reopt.ai/ko/patterns/module-contract.md)

## References

- AI Governance by Design for Agentic Systems — Preprints.org
- Model AI Governance Framework for Agentic AI — IMDA (Singapore)

## 이 패턴을 적용하기

저장소에서 리뷰 스킬을 사용하고, 관련 아티클의 구현 결정과 비교한다. 각 예제를 자신의 권한, 데이터, 실패 조건에 맞춰 검토한다.

- [리뷰 스킬: reopt-decision-traceability](https://architecture.reopt.ai/ko/skills/reopt-decision-traceability.md) — 에이전트의 판단을 재구성하기 어려울 때 사용하는 Claude Code 스킬. 판단 근거, 도구 호출, 협업 경로의 구조화된 로그를 점검한다.

### 관련 구현 기록

- [프로젝트끼리 비교하며 설계를 배우는 법](https://architecture.reopt.ai/ko/articles/cross-project-design-review.md) — 개발 원칙이 다른 프로젝트를 함께 운영하고, 문제를 먼저 해결한 프로젝트를 기준으로 현재 설계를 리뷰한다. 차이에서 개선 가설을 찾아 검증하고 기록하는 교차 설계 리뷰 절차를 정리한다.
- [데이터 플라이휠 — 루프를 지속이 아니라 발전시키는 것](https://architecture.reopt.ai/ko/articles/loop-data-flywheel.md) — 돈은 루프를 돌리고 토큰은 연산하지만, 다음 바퀴를 이전보다 낫게 만드는 것은 운영이 쌓은 데이터다. trace·평가·학습 신호 세 자산으로 플라이휠을 돌리고, 데이터를 모델 밖 자산으로 두어 주권을 지킨다.
- [루프의 비즈니스 경제학 — 토큰으로 버는 법과 버티는 법](https://architecture.reopt.ai/ko/articles/loop-business-economics.md) — 비용을 통제하는 것만으로는 루프가 지속되지 않는다. 토큰 단가와 마진으로 수익 구조를 보고, 자급·투자·생태계 세 경로 중 어떻게 버틸지를 고른다. 각 경로의 현실적 문제와 최고·최악 시나리오를 reopt architecture의 진화 단계 언어로 정리한다.

---

_이 문서는 https://architecture.reopt.ai/ko/patterns/decision-traceability 의 마크다운 표현이다. 전체 색인: https://architecture.reopt.ai/llms.txt HTML 원본: https://architecture.reopt.ai/ko/patterns/decision-traceability · English: https://architecture.reopt.ai/patterns/decision-traceability.md_
