<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>관측성 Archives -</title>
	<atom:link href="https://blog.kwt.co.kr/tag/%EA%B4%80%EC%B8%A1%EC%84%B1/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.kwt.co.kr/tag/관측성/</link>
	<description>여러분의 돈과 시간을 낭비하지마세요.</description>
	<lastBuildDate>Tue, 18 Aug 2026 00:06:45 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>

<image>
	<url>https://blog.kwt.co.kr/wp-content/uploads/2022/07/cropped-logo_bg-32x32.jpg</url>
	<title>관측성 Archives -</title>
	<link>https://blog.kwt.co.kr/tag/관측성/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>AI 에이전트 관측 도구 비교: Langfuse vs LangSmith vs Phoenix vs OpenTelemetry</title>
		<link>https://blog.kwt.co.kr/ai-agent-observability-tools-comparison/</link>
					<comments>https://blog.kwt.co.kr/ai-agent-observability-tools-comparison/#respond</comments>
		
		<dc:creator><![CDATA[시간 조절자]]></dc:creator>
		<pubDate>Tue, 18 Aug 2026 00:06:45 +0000</pubDate>
				<category><![CDATA[기술]]></category>
		<category><![CDATA[AI 에이전트]]></category>
		<category><![CDATA[Arize Phoenix]]></category>
		<category><![CDATA[Langfuse]]></category>
		<category><![CDATA[LangSmith]]></category>
		<category><![CDATA[OpenTelemetry]]></category>
		<category><![CDATA[관측성]]></category>
		<guid isPermaLink="false">https://blog.kwt.co.kr/ai-agent-observability-tools-comparison/</guid>

					<description><![CDATA[<p>AI 에이전트 관측 도구 Langfuse, LangSmith, Phoenix, OpenTelemetry의 역할·가격·자체 호스팅·도입 기준을 실무 관점에서 비교했다.</p>
<p>The post <a href="https://blog.kwt.co.kr/ai-agent-observability-tools-comparison/">AI 에이전트 관측 도구 비교: Langfuse vs LangSmith vs Phoenix vs OpenTelemetry</a> appeared first on <a href="https://blog.kwt.co.kr"></a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>AI 에이전트 관측 도구는 기능표보다 <strong>운영 방식과 데이터 경계</strong>로 골라야 한다. 빠른 SaaS 도입과 팀 워크플로가 우선이면 LangSmith, 오픈소스와 프롬프트·평가의 균형은 Langfuse, 로컬 분석과 OpenTelemetry 기반 실험은 Phoenix가 유리하다. OpenTelemetry는 이들과 경쟁하는 완성형 화면이 아니라 trace를 특정 제품에서 분리하는 수집 표준에 가깝다.</p>



<div class="wp-block-group summary-box has-border-color has-background" style="border-color:#dbeafe;border-width:1px;background-color:#eff6ff;margin-top:24px;margin-bottom:24px;padding-top:18px;padding-right:20px;padding-bottom:18px;padding-left:20px"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p><strong>핵심 요약</strong></p>



<ul class="wp-block-list">
<li><strong>Langfuse</strong>: 자체 호스팅과 클라우드를 모두 고려하며 관측·프롬프트 관리·평가를 한곳에 묶고 싶을 때 적합하다.</li>



<li><strong>LangSmith</strong>: SaaS로 빨리 시작하고 대시보드·알림·온라인 평가·팀 협업을 붙일 때 편하다.</li>



<li><strong>Phoenix</strong>: OTLP와 OpenInference를 중심으로 로컬 디버깅, 평가, 데이터셋 실험을 구성할 때 강하다.</li>



<li><strong>OpenTelemetry</strong>: 교체 가능한 수집 계층을 만들고 기존 APM·백엔드와 연결할 때 먼저 깔아둘 표준이다.</li>



<li>도구를 고르기 전에 trace ID, 사용자·팀, 모델, 비용, 지연, 오류, 평가 점수 속성을 먼저 정해야 한다.</li>
</ul>
</div></div>



<h2 class="wp-block-heading">네 도구의 역할은 완전히 같지 않다</h2>



<p>Langfuse·LangSmith·Phoenix는 trace를 저장하고 탐색하며 평가와 운영 화면을 제공하는 플랫폼이다. 반면 OpenTelemetry는 애플리케이션에서 span·metric·log를 만들고 OTLP로 보내기 위한 계측 규약과 SDK·Collector 생태계다. 따라서 “OpenTelemetry와 Langfuse 중 하나”보다 “OpenTelemetry로 계측하고 Langfuse나 Phoenix로 본다”는 조합이 더 자연스러울 수 있다.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>선택지</th><th>가장 잘 맞는 상황</th><th>강점</th><th>먼저 확인할 제약</th></tr></thead><tbody><tr><td>Langfuse</td><td>오픈소스·자체 호스팅과 관리형 클라우드를 함께 검토</td><td>trace, prompt, eval, 비용·지연 분석을 통합</td><td>자체 호스팅 시 DB·스토리지·업그레이드 운영</td></tr><tr><td>LangSmith</td><td>소규모 팀이 SaaS로 빠르게 관측과 평가를 시작</td><td>대시보드, 알림, 자동화, 피드백 흐름</td><td>좌석·trace·저장 사용량과 데이터 반출 정책</td></tr><tr><td>Phoenix</td><td>로컬 우선 분석, RAG·에이전트 실험, OTLP 연계</td><td>OpenInference, 평가, 데이터셋·실험 기능</td><td>운영형 접근 제어·보존·백업 설계</td></tr><tr><td>OpenTelemetry</td><td>특정 관측 제품에 종속되지 않는 계측 계층</td><td>표준 속성, OTLP, Collector, 기존 APM 연계</td><td>완성형 AI 관측 UI가 아니므로 백엔드가 별도로 필요</td></tr></tbody></table><figcaption class="wp-element-caption">AI 에이전트 관측 도구의 역할과 운영 제약 비교<br />출처: 각 제품 공식 문서(2026-08-18 확인)</figcaption></figure>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img fetchpriority="high" decoding="async" width="1050" height="620" src="https://blog.kwt.co.kr/wp-content/uploads/2026/08/ai-agent-observability-tool-decision.png" alt="Langfuse LangSmith Phoenix OpenTelemetry 선택 기준 구성도" class="wp-image-2782" style="width:600px;height:auto"/><figcaption class="wp-element-caption">운영 제약에 따른 AI 에이전트 관측 도구의 첫 선택 기준<br />출처: 각 제품 공식 문서 기반 자체 정리</figcaption></figure></div>


<h2 class="wp-block-heading">Langfuse: 자체 호스팅과 통합 기능의 균형</h2>



<p>Langfuse는 관측, 프롬프트 버전 관리, 평가를 같은 플랫폼에 넣는다. 공식 문서는 Python·JavaScript SDK, 다수의 프레임워크 통합, OpenTelemetry, LiteLLM 같은 게이트웨이를 통한 trace 수집을 안내한다. 세션과 사용자 단위로 비용·사용량을 묶고 에이전트 그래프와 타임라인을 보는 흐름도 갖춘다.</p>



<p>2026년 8월 18일 공식 가격표 기준 Langfuse Cloud Hobby는 월 5만 unit과 30일 데이터 접근을 포함한 무료 구간이다. Core는 월 29달러에 10만 unit과 90일 데이터 접근을 포함하며 초과분은 10만 unit당 8달러로 안내한다. Pro는 월 199달러와 3년 데이터 접근을 제시한다. unit 정의와 이벤트 크기에 따라 실제 비용이 달라지므로 “trace 개수”만으로 예산을 잡으면 안 된다.</p>



<p>자체 호스팅은 라이선스 비용을 줄일 수 있지만 무료 운영을 뜻하지 않는다. trace 본문에는 프롬프트, 검색 문서, 도구 입력·출력이 들어가므로 데이터베이스 용량, 객체 스토리지, 백업, 암호화, 버전 업그레이드 비용을 함께 계산해야 한다.</p>



<h2 class="wp-block-heading">LangSmith: SaaS로 빠르게 운영 루프를 만들 때</h2>



<p>LangSmith 공식 문서는 개별 trace 탐색뿐 아니라 대시보드, 알림, 규칙·웹훅 자동화, 온라인 평가, 사람 피드백 큐를 한 흐름으로 제공한다. LangChain 전용으로 오해하기 쉽지만 OpenAI, Anthropic, CrewAI, Vercel AI SDK, Pydantic AI 등 여러 통합을 안내한다.</p>



<p>현재 가격표의 Developer는 좌석당 0달러이며 월 5천 base trace 이후 사용량 과금 구조다. Plus는 좌석당 월 39달러에 월 1만 base trace를 포함한다. Enterprise에는 자체 호스팅·하이브리드 배포, SSO와 세분화된 권한 기능이 표시돼 있다. 팀이 빨리 시작하기는 쉽지만 trace·저장·좌석이 각각 어떤 단위로 늘어나는지 부하 테스트 데이터로 확인해야 한다.</p>



<p>데이터를 외부 SaaS로 보낼 수 없는 환경이라면 도입 속도보다 반출 정책이 우선이다. 프롬프트와 검색 결과에 개인정보나 영업 비밀이 섞일 수 있으므로 저장 전 마스킹과 payload 샘플링을 애플리케이션 계층에서 적용해야 한다.</p>



<h2 class="wp-block-heading">Phoenix: OTLP 기반 로컬 분석과 평가 실험</h2>



<p>Arize Phoenix는 OpenTelemetry 위에서 동작하며 OpenInference 계측을 사용한다. 공식 문서에 따르면 trace는 모델 호출, 검색, 도구 사용, 사용자 로직을 한 실행으로 묶는다. OTLP 수신과 함께 LlamaIndex, LangChain, DSPy, Mastra, Vercel AI SDK, OpenAI, Bedrock, Anthropic 등에 대한 자동 계측을 제공한다.</p>



<p>평가는 LLM 기반 평가자, 코드 기반 검사, 사람 라벨을 trace와 span에 붙이는 방식이다. Ragas·DeepEval 같은 외부 평가 도구도 연결할 수 있다. 로컬에서 RAG 검색 실패를 살피고 데이터셋 실험으로 이어가려는 팀에 특히 잘 맞는다. 다만 노트북에서 잘 보이는 것과 다중 사용자 운영은 다른 문제다. 인증, RBAC, 데이터 보존, 백업, 고가용성을 별도 체크리스트로 다뤄야 한다.</p>



<h2 class="wp-block-heading">OpenTelemetry: 도구 교체 비용을 줄이는 수집 계층</h2>



<p>OpenTelemetry의 Generative AI semantic conventions에는 에이전트 span, 모델·제공자별 span, 이벤트와 metric을 표현하는 항목이 정리돼 있다. 이 규약으로 계측하면 애플리케이션 코드가 특정 관측 제품의 데이터 모델에 깊게 묶이는 문제를 줄일 수 있다.</p>



<p>하지만 표준 속성을 붙였다고 운영 화면이 자동으로 생기지는 않는다. Collector의 메모리 제한, 배치 전송, 재시도, 백프레셔, 민감정보 필터, 샘플링을 설계해야 하고, 실제 저장·검색·알림을 담당할 백엔드도 필요하다. 소규모 서비스는 완성형 플랫폼으로 먼저 문제를 정의한 뒤 OTLP export를 병행하는 편이 과도한 초기 설계를 피하기 쉽다.</p>



<h2 class="wp-block-heading">도입 전에 반드시 정할 데이터 스키마</h2>



<p>도구 화면보다 먼저 “실패한 사용자 작업 하나를 어떻게 찾을 것인가”를 정해야 한다. 최상위 trace는 사용자 목표 한 건으로 잡고 모델 호출, 검색, 도구 실행, 승인 단계를 자식 span으로 둔다. 이는 기존 <a href="https://blog.kwt.co.kr/ai-agent-observability-guide/">AI 에이전트 관측성 가이드</a>와 <a href="https://blog.kwt.co.kr/ai-agent-cost-tracking-guide/">AI 에이전트 비용 추적 가이드</a>의 운영 모델을 실제 제품 선택에 연결하는 핵심이다.</p>



<ol class="wp-block-list">
<li><strong>식별자</strong>: trace_id, session_id, user_id, team_id, project_id, environment를 넣는다.</li>



<li><strong>모델 호출</strong>: provider, model, input/output token, cache read/write, latency, retry를 분리한다.</li>



<li><strong>도구 실행</strong>: tool_name, duration, status, error_type, approval 여부를 기록한다.</li>



<li><strong>품질</strong>: 정답성, 근거성, 도구 선택, 정책 위반 여부를 평가 점수로 붙인다. 평가 설계는 <a href="https://blog.kwt.co.kr/ai-evals-llm-quality-evaluation-guide/">AI Evals 실무 가이드</a>처럼 작은 대표 질문 세트부터 시작한다.</li>



<li><strong>비용</strong>: 성공 실행당 비용과 실패 비용을 분리하고 가격표 버전을 보존한다.</li>
</ol>



<h2 class="wp-block-heading">2주 파일럿 절차</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>단계</th><th>해야 할 일</th><th>통과 기준</th></tr></thead><tbody><tr><td>1. 범위</td><td>사용자 작업 한 종류와 실패 유형 세 개를 고른다.</td><td>trace 한 건으로 전체 실행을 재구성할 수 있다.</td></tr><tr><td>2. 계측</td><td>LLM·검색·도구·승인 span과 비용 속성을 넣는다.</td><td>누락 span 비율과 비용 오차를 측정한다.</td></tr><tr><td>3. 보안</td><td>프롬프트·문서·도구 결과에서 민감정보를 마스킹한다.</td><td>원문 secret과 개인정보가 저장되지 않는다.</td></tr><tr><td>4. 부하</td><td>정상·오류·대용량 payload를 포함해 1주일 수집한다.</td><td>수집 지연, 저장량, 예상 월비용을 계산한다.</td></tr><tr><td>5. 운영</td><td>실패율·p95 지연·성공 실행당 비용 알림을 만든다.</td><td>실제 장애 한 건을 대시보드에서 찾아 원인을 좁힌다.</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">실패하기 쉬운 조건</h2>



<ul class="wp-block-list">
<li>모든 프롬프트와 검색 문서를 무제한 저장해 비용과 보안 위험이 함께 커진다.</li>



<li>trace 이름과 속성이 팀마다 달라 대시보드 집계가 깨진다.</li>



<li>성공률만 보고 결과 품질과 사람 승인 거부율을 측정하지 않는다.</li>



<li>LLM 비용만 기록하고 검색 API, 브라우저, 코드 샌드박스, 재시도 비용을 뺀다.</li>



<li>자체 호스팅을 선택하면서 백업·업그레이드·보존 정책의 운영 인건비를 0원으로 계산한다.</li>
</ul>



<h2 class="wp-block-heading">FAQ</h2>



<h3 class="wp-block-heading">LangChain을 쓰지 않아도 LangSmith를 쓸 수 있나?</h3>



<p>쓸 수 있다. 공식 문서는 여러 모델 제공자와 에이전트 프레임워크 통합을 안내한다. 다만 현재 코드의 계측 난이도와 필요한 SDK 변경량은 파일럿에서 확인해야 한다.</p>



<h3 class="wp-block-heading">OpenTelemetry만 설치하면 AI 에이전트 관측이 끝나나?</h3>



<p>끝나지 않는다. OpenTelemetry는 수집과 전송의 표준 계층이다. trace 검색, 비용 계산, 평가, 알림, 보존을 담당할 백엔드와 운영 규칙이 별도로 필요하다.</p>



<h3 class="wp-block-heading">처음에는 어떤 도구로 시작하는 편이 좋은가?</h3>



<p>외부 SaaS 사용이 가능하면 LangSmith나 Langfuse Cloud로 2주 파일럿을 빠르게 돌리는 편이 단순하다. 데이터 반출이 어렵거나 로컬 RAG 분석이 중심이면 Langfuse 자체 호스팅이나 Phoenix를 먼저 검토한다. 어떤 선택이든 OTLP export 가능성과 데이터 내보내기 경로를 확인해야 한다.</p>



<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"LangChain을 쓰지 않아도 LangSmith를 쓸 수 있나?","acceptedAnswer":{"@type":"Answer","text":"쓸 수 있다. LangSmith 공식 문서는 여러 모델 제공자와 에이전트 프레임워크 통합을 안내한다. 실제 계측 난이도는 파일럿에서 확인해야 한다."}},{"@type":"Question","name":"OpenTelemetry만 설치하면 AI 에이전트 관측이 끝나나?","acceptedAnswer":{"@type":"Answer","text":"끝나지 않는다. OpenTelemetry는 수집과 전송의 표준 계층이며 trace 검색, 비용 계산, 평가, 알림, 보존을 담당할 백엔드가 별도로 필요하다."}},{"@type":"Question","name":"처음에는 어떤 도구로 시작하는 편이 좋은가?","acceptedAnswer":{"@type":"Answer","text":"SaaS 사용이 가능하면 LangSmith나 Langfuse Cloud로 2주 파일럿을 돌리고, 데이터 반출이 어렵거나 로컬 분석이 중심이면 Langfuse 자체 호스팅이나 Phoenix를 먼저 검토한다."}}]}</script>



<h2 class="wp-block-heading">참고 자료</h2>



<ul class="wp-block-list">
<li><a href="https://langfuse.com/docs" target="_blank" rel="noopener">Langfuse 공식 문서</a></li>



<li><a href="https://langfuse.com/pricing" target="_blank" rel="noopener">Langfuse Cloud 공식 가격표</a></li>



<li><a href="https://docs.langchain.com/langsmith/observability" target="_blank" rel="noopener">LangSmith Observability 공식 문서</a></li>



<li><a href="https://www.langchain.com/pricing" target="_blank" rel="noopener">LangSmith 공식 가격표</a></li>



<li><a href="https://arize.com/docs/phoenix" target="_blank" rel="noopener">Arize Phoenix 공식 문서</a></li>



<li><a href="https://opentelemetry.io/docs/specs/semconv/gen-ai/" target="_blank" rel="noopener">OpenTelemetry Generative AI semantic conventions</a></li>
</ul>
		<div class="wpulike wpulike-robeen " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="Like Button"
					data-ulike-id="2783"
					data-ulike-nonce="aee13fd268"
					data-ulike-type="post"
					data-ulike-template="wpulike-robeen"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_2783"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	<p>The post <a href="https://blog.kwt.co.kr/ai-agent-observability-tools-comparison/">AI 에이전트 관측 도구 비교: Langfuse vs LangSmith vs Phoenix vs OpenTelemetry</a> appeared first on <a href="https://blog.kwt.co.kr"></a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.kwt.co.kr/ai-agent-observability-tools-comparison/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AI 에이전트 관측성 가이드: 로그만으로는 부족한 이유</title>
		<link>https://blog.kwt.co.kr/ai-agent-observability-guide/</link>
					<comments>https://blog.kwt.co.kr/ai-agent-observability-guide/#respond</comments>
		
		<dc:creator><![CDATA[시간 조절자]]></dc:creator>
		<pubDate>Wed, 08 Jul 2026 00:14:35 +0000</pubDate>
				<category><![CDATA[기술]]></category>
		<category><![CDATA[AI 에이전트]]></category>
		<category><![CDATA[AI 운영]]></category>
		<category><![CDATA[LLMOps]]></category>
		<category><![CDATA[OpenTelemetry]]></category>
		<category><![CDATA[관측성]]></category>
		<guid isPermaLink="false">https://blog.kwt.co.kr/?p=2679</guid>

					<description><![CDATA[<p>AI 에이전트 운영에서는 서버 로그만으로 부족하다. LLM 호출, 도구 실행, 비용, 승인, 실패 원인을 하나의 trace로 연결해 추적하는 관측성 설계 방법을 정리한다.</p>
<p>The post <a href="https://blog.kwt.co.kr/ai-agent-observability-guide/">AI 에이전트 관측성 가이드: 로그만으로는 부족한 이유</a> appeared first on <a href="https://blog.kwt.co.kr"></a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><strong>AI 에이전트 관측성</strong>은 LLM 호출, 도구 실행, 비용, 오류, 사용자 승인, 최종 산출물을 하나의 실행 흐름으로 추적하는 운영 체계다. 챗봇 응답 품질만 보는 단계에서는 없어도 버틸 수 있지만, AI 에이전트가 파일을 수정하고 터미널을 실행하고 외부 API를 호출하기 시작하면 관측성은 선택 기능이 아니라 운영 안전장치가 된다.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1400" height="788" src="https://blog.kwt.co.kr/wp-content/uploads/2026/07/ai-agent-observability-guide.jpg" alt="AI 에이전트 관측성 대시보드 개념도: LLM 호출, 도구 실행, 비용, 오류 추적" class="wp-image-2678"/><figcaption class="wp-element-caption">AI 에이전트 관측성은 LLM 호출, 도구 실행, 비용, 지연 시간, 실패 원인을 하나의 실행 흐름으로 연결해 보는 운영 체계다.</figcaption></figure>



<div style="border:1px solid #dbeafe;background:#eff6ff;padding:18px;border-radius:12px;margin:24px 0;">
<strong>핵심 요약</strong>
<ul>
<li>AI 에이전트 운영에서는 서버 로그만으로는 부족하다.</li>
<li>LLM 호출, 도구 실행, 비용, 승인, 실패 원인을 같은 trace 안에서 봐야 한다.</li>
<li>관측성 설계가 없으면 “왜 비용이 늘었는지”, “왜 파일이 바뀌었는지”, “왜 작업이 실패했는지”를 사후에 설명하기 어렵다.</li>
<li>OpenTelemetry의 Generative AI semantic conventions, OpenAI Agents SDK tracing, Claude Code usage monitoring, LangSmith 같은 도구가 이 흐름을 빠르게 표준화하고 있다.</li>
</ul>
</div>



<h2 class="wp-block-heading">왜 AI 에이전트에는 별도 관측성이 필요한가</h2>



<p>전통적인 웹 서비스 관측성은 요청, 응답 시간, 오류율, CPU, 메모리, 데이터베이스 쿼리를 중심으로 설계됐다. 그러나 AI 에이전트는 여기에 새로운 실행 단계를 추가한다. 사용자의 자연어 요청을 해석하고, 모델을 호출하고, 필요한 도구를 고르고, 파일이나 API를 조작하고, 실패하면 다시 시도한다. 같은 “요청 1건” 안에 여러 번의 LLM 호출과 여러 개의 도구 실행이 들어갈 수 있다.</p>



<p>문제는 실패 지점이 훨씬 다양해진다는 점이다. 모델이 요구사항을 잘못 이해했을 수도 있고, 도구 인자가 틀렸을 수도 있고, 권한 승인이 거절됐을 수도 있고, API rate limit에 걸렸을 수도 있고, 테스트 실패 후 복구 전략을 잘못 선택했을 수도 있다. 단순히 “500 오류가 났다”는 로그만으로는 원인을 설명하기 어렵다.</p>



<h2 class="wp-block-heading">일반 서버 로그와 AI 에이전트 관측성의 차이</h2>



<figure class="wp-block-table"><table><thead><tr><th>구분</th><th>일반 서버 로그</th><th>AI 에이전트 관측성</th></tr></thead><tbody><tr><td>기본 단위</td><td>HTTP 요청, 배치 작업, 서버 이벤트</td><td>사용자 목표, LLM 호출, 도구 실행, 산출물</td></tr><tr><td>주요 지표</td><td>응답 시간, 오류율, 리소스 사용량</td><td>토큰, 비용, 모델, 도구 성공률, 재시도, 승인 이력</td></tr><tr><td>실패 원인</td><td>예외, 네트워크, DB 오류</td><td>프롬프트 오해, 컨텍스트 누락, 도구 인자 오류, 권한 문제, 모델 불안정성</td></tr><tr><td>보안 이슈</td><td>개인정보 로그, 인증 토큰 노출</td><td>프롬프트 내 비밀 정보, 도구 권한 남용, 파일/터미널 실행 이력</td></tr><tr><td>분석 목표</td><td>장애 복구와 성능 개선</td><td>장애 복구, 비용 통제, 품질 평가, 감사 가능성 확보</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">반드시 추적해야 할 9가지 항목</h2>



<ol class="wp-block-list">
<li><strong>작업 목표</strong>: 사용자가 무엇을 요청했는지, 에이전트가 어떤 목표로 해석했는지 기록한다.</li>

<li><strong>모델명과 버전</strong>: 같은 프롬프트라도 모델과 버전에 따라 결과가 달라진다.</li>

<li><strong>토큰 사용량과 비용</strong>: 입력 토큰, 출력 토큰, 캐시 사용량, 모델별 단가를 추적한다.</li>

<li><strong>도구 호출 이력</strong>: 파일 읽기, 파일 수정, 터미널 실행, 브라우저 조작, API 호출을 span 단위로 남긴다.</li>

<li><strong>도구 인자와 결과</strong>: 어떤 명령이나 API 파라미터가 실행됐고 어떤 결과가 돌아왔는지 확인 가능해야 한다.</li>

<li><strong>사용자 승인 이력</strong>: 위험한 명령, 외부 전송, 배포, 결제성 작업은 승인 여부와 시점을 남긴다.</li>

<li><strong>재시도와 복구 경로</strong>: 실패 후 같은 방식을 반복했는지, 다른 전략으로 전환했는지 확인한다.</li>

<li><strong>최종 산출물</strong>: 생성된 PR, 파일, 문서, 배포 URL, 테스트 결과를 trace와 연결한다.</li>

<li><strong>민감정보 처리 상태</strong>: 프롬프트와 응답에 개인정보, API 키, 내부 문서가 포함됐는지 마스킹 여부를 남긴다.</li>
</ol>



<h2 class="wp-block-heading">AI 에이전트 trace는 어떻게 설계해야 하나</h2>



<p>가장 실용적인 방식은 사용자 요청 하나를 최상위 trace로 보고, 그 아래에 LLM 호출과 도구 실행을 span으로 나누는 구조다. OpenTelemetry는 trace, metric, log를 함께 다루는 관측성 표준이며, 최근에는 Generative AI semantic conventions를 통해 모델명, 토큰 사용량, 프롬프트 관련 이벤트, 응답 관련 속성을 표현하는 방향을 제시한다.</p>



<div style="border:1px solid #e5e7eb;background:#f9fafb;padding:16px;border-radius:10px;margin:22px 0;font-family:monospace;white-space:pre-wrap;">user_task trace
├─ llm.call: intent 분석
├─ tool.call: 파일 검색
├─ llm.call: 수정 계획 생성
├─ tool.call: 파일 수정
├─ tool.call: 테스트 실행
├─ llm.call: 실패 원인 분석
└─ final_artifact: PR 또는 문서 생성</div>



<p>이 구조를 쓰면 “작업이 실패했다”가 아니라 “테스트 실행 span에서 실패했고, 이후 모델이 원인을 잘못 추론해 같은 명령을 반복했다”처럼 설명할 수 있다. 운영자는 모델 품질 문제, 도구 문제, 권한 문제, 외부 API 문제를 분리해 볼 수 있다.</p>



<h2 class="wp-block-heading">비용 관측성은 별도 대시보드로 봐야 한다</h2>



<p>AI 에이전트 비용은 사용자가 체감하기 전에 급격히 늘 수 있다. 특히 장기 작업, 대용량 컨텍스트, 반복 테스트, 멀티 에이전트 작업에서는 요청 1건이 여러 모델 호출로 쪼개진다. 그래서 단순 월별 API 청구액보다 작업 단위 비용을 보는 것이 중요하다.</p>



<figure class="wp-block-table"><table><thead><tr><th>비용 항목</th><th>확인할 질문</th><th>운영 기준 예시</th></tr></thead><tbody><tr><td>입력 토큰</td><td>불필요한 파일이나 로그가 매번 들어가는가</td><td>프로젝트 문서 요약 캐시 사용</td></tr><tr><td>출력 토큰</td><td>모델이 과도하게 긴 설명을 반복하는가</td><td>작업별 응답 길이 제한</td></tr><tr><td>재시도 비용</td><td>같은 실패를 반복하는가</td><td>동일 오류 2회 후 사람 승인 필요</td></tr><tr><td>고급 모델 사용</td><td>모든 단계에 최고가 모델이 필요한가</td><td>계획/검토/실행 모델 분리</td></tr><tr><td>도구 실행 비용</td><td>외부 API나 검색 호출이 과도한가</td><td>도메인별 rate limit 설정</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">보안 관측성: 무엇을 남기고 무엇을 지울 것인가</h2>



<p>AI 에이전트 관측성에서 가장 위험한 함정은 “모든 프롬프트와 응답을 그대로 저장하면 디버깅이 쉬워진다”는 생각이다. 실제 운영 환경에서는 프롬프트 안에 고객 정보, 내부 코드, API 키, 장애 로그, 사내 문서가 섞일 수 있다. 관측성은 감사 가능성을 높여야 하지만, 동시에 새로운 정보 유출 경로가 되면 안 된다.</p>



<ul class="wp-block-list">
<li>API 키, 토큰, 비밀번호 패턴은 저장 전에 마스킹한다.</li>

<li>원문 프롬프트 저장은 기본값이 아니라 옵션으로 둔다.</li>

<li>고위험 도구 호출은 인자 전체보다 요약과 해시를 저장하는 방식을 검토한다.</li>

<li>trace 접근 권한은 개발자 전체가 아니라 운영상 필요한 인원으로 제한한다.</li>

<li>보관 기간을 정하고 오래된 원문 로그는 삭제하거나 비식별화한다.</li>
</ul>



<h2 class="wp-block-heading">운영 성숙도별 도입 순서</h2>



<figure class="wp-block-table"><table><thead><tr><th>단계</th><th>해야 할 일</th><th>목표</th></tr></thead><tbody><tr><td>1단계</td><td>LLM 호출 횟수, 토큰, 비용 기록</td><td>비용 폭증 방지</td></tr><tr><td>2단계</td><td>도구 호출과 오류를 작업 trace로 연결</td><td>실패 원인 분석</td></tr><tr><td>3단계</td><td>승인 이력과 파일 변경 이력 연결</td><td>감사 가능성 확보</td></tr><tr><td>4단계</td><td>모델별 성공률과 재시도율 비교</td><td>모델 라우팅 최적화</td></tr><tr><td>5단계</td><td>품질 평가와 산출물 리뷰 결과 연결</td><td>에이전트 개선 루프 구축</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">개인 AI 에이전트 서버에도 필요한 이유</h2>



<p>개인 맥미니나 홈서버에서 OpenClaw 같은 AI 에이전트 서버를 운영할 때도 관측성은 필요하다. 개인 환경에서는 대규모 SRE 조직이 없기 때문에 오히려 기록이 더 중요하다. 언제 어떤 모델이 어떤 파일을 읽고 수정했는지, 어떤 명령이 실패했는지, 비용이 어느 작업에서 늘었는지 알 수 없으면 문제를 재현하기 어렵다.</p>



<p>처음부터 복잡한 대시보드를 만들 필요는 없다. 작업 ID, 모델명, 토큰, 도구 호출, 오류, 최종 산출물 링크만 JSON 로그로 남겨도 출발점으로 충분하다. 이후 필요해지면 OpenTelemetry collector, Grafana, LangSmith, 자체 대시보드 같은 도구로 확장할 수 있다.</p>



<h2 class="wp-block-heading">AI 에이전트 관측성 체크리스트</h2>



<ul class="wp-block-list">
<li>사용자 요청 하나에 고유한 작업 ID가 붙는가</li>

<li>LLM 호출마다 모델명, 입력/출력 토큰, 비용이 남는가</li>

<li>도구 호출 인자와 결과가 trace 안에 연결되는가</li>

<li>파일 수정, 터미널 실행, 외부 API 호출은 별도 span으로 남는가</li>

<li>사용자 승인 여부와 승인 시점이 기록되는가</li>

<li>프롬프트와 응답 원문 저장 정책이 정해져 있는가</li>

<li>민감정보 마스킹이 저장 전에 적용되는가</li>

<li>실패 후 재시도 횟수와 복구 전략을 볼 수 있는가</li>

<li>최종 산출물과 테스트 결과가 작업 기록에 연결되는가</li>
</ul>



<h2 class="wp-block-heading">FAQ</h2>



<h3 class="wp-block-heading">AI 에이전트 관측성이 일반 로그와 다른 점은 무엇인가?</h3>



<p>일반 로그가 서버 요청과 오류를 남기는 데 초점을 둔다면 AI 에이전트 관측성은 LLM 호출, 프롬프트, 도구 실행, 권한 승인, 비용, 재시도, 최종 산출물을 하나의 작업 흐름으로 연결해 추적한다.</p>



<h3 class="wp-block-heading">AI 에이전트 운영에서 반드시 기록해야 할 지표는 무엇인가?</h3>



<p>최소한 모델명, 토큰 사용량, 비용, 지연 시간, 도구 호출 성공률, 재시도 횟수, 사용자 승인 이력, 오류 원인, 최종 산출물 링크를 기록해야 한다.</p>



<h3 class="wp-block-heading">프롬프트와 응답을 모두 저장해도 되는가?</h3>



<p>항상 저장하면 위험하다. 개인정보, API 키, 내부 문서, 고객 데이터가 포함될 수 있으므로 마스킹, 샘플링, 보관 기간, 접근 권한을 먼저 정해야 한다.</p>



<h3 class="wp-block-heading">OpenTelemetry만 쓰면 AI 에이전트 관측성이 완성되는가?</h3>



<p>아니다. OpenTelemetry는 공통 추적 포맷과 파이프라인을 제공하지만, 어떤 이벤트를 남기고 어떤 실패를 경보로 볼지는 서비스 정책과 평가 기준으로 별도 설계해야 한다.</p>



<h3 class="wp-block-heading">개인 AI 에이전트 서버에도 관측성이 필요한가?</h3>



<p>필요하다. 개인 서버라도 모델 비용, 파일 수정 이력, 도구 호출 실패, 장기 작업 중단 원인을 확인할 수 없으면 운영과 디버깅이 어려워진다.</p>



<h2 class="wp-block-heading">참고 자료</h2>



<ul class="wp-block-list">
<li><a href="https://opentelemetry.io/docs/concepts/observability-primer/" target="_blank" rel="noreferrer noopener">OpenTelemetry Observability Primer</a></li>

<li><a href="https://opentelemetry.io/docs/specs/semconv/gen-ai/" target="_blank" rel="noreferrer noopener">OpenTelemetry Generative AI Semantic Conventions</a></li>

<li><a href="https://openai.github.io/openai-agents-python/tracing/" target="_blank" rel="noreferrer noopener">OpenAI Agents SDK Tracing</a></li>

<li><a href="https://docs.anthropic.com/en/docs/claude-code/monitoring-usage" target="_blank" rel="noreferrer noopener">Anthropic Claude Code Monitoring Usage</a></li>

<li><a href="https://docs.langchain.com/langsmith/observability" target="_blank" rel="noreferrer noopener">LangSmith Observability</a></li>
</ul>



<script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "AI 에이전트 관측성이 일반 로그와 다른 점은 무엇인가?", "acceptedAnswer": {"@type": "Answer", "text": "일반 로그가 서버 요청과 오류를 남기는 데 초점을 둔다면 AI 에이전트 관측성은 LLM 호출, 프롬프트, 도구 실행, 권한 승인, 비용, 재시도, 최종 산출물을 하나의 작업 흐름으로 연결해 추적한다."}}, {"@type": "Question", "name": "AI 에이전트 운영에서 반드시 기록해야 할 지표는 무엇인가?", "acceptedAnswer": {"@type": "Answer", "text": "최소한 모델명, 토큰 사용량, 비용, 지연 시간, 도구 호출 성공률, 재시도 횟수, 사용자 승인 이력, 오류 원인, 최종 산출물 링크를 기록해야 한다."}}, {"@type": "Question", "name": "프롬프트와 응답을 모두 저장해도 되는가?", "acceptedAnswer": {"@type": "Answer", "text": "항상 저장하면 위험하다. 개인정보, API 키, 내부 문서, 고객 데이터가 포함될 수 있으므로 마스킹, 샘플링, 보관 기간, 접근 권한을 먼저 정해야 한다."}}, {"@type": "Question", "name": "OpenTelemetry만 쓰면 AI 에이전트 관측성이 완성되는가?", "acceptedAnswer": {"@type": "Answer", "text": "아니다. OpenTelemetry는 공통 추적 포맷과 파이프라인을 제공하지만, 어떤 이벤트를 남기고 어떤 실패를 경보로 볼지는 서비스 정책과 평가 기준으로 별도 설계해야 한다."}}, {"@type": "Question", "name": "개인 AI 에이전트 서버에도 관측성이 필요한가?", "acceptedAnswer": {"@type": "Answer", "text": "필요하다. 개인 서버라도 모델 비용, 파일 수정 이력, 도구 호출 실패, 장기 작업 중단 원인을 확인할 수 없으면 운영과 디버깅이 어려워진다."}}]}</script>

		<div class="wpulike wpulike-robeen " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="Like Button"
					data-ulike-id="2679"
					data-ulike-nonce="5ee2ac1b14"
					data-ulike-type="post"
					data-ulike-template="wpulike-robeen"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_2679"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	<p>The post <a href="https://blog.kwt.co.kr/ai-agent-observability-guide/">AI 에이전트 관측성 가이드: 로그만으로는 부족한 이유</a> appeared first on <a href="https://blog.kwt.co.kr"></a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.kwt.co.kr/ai-agent-observability-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
