에이전트는 관측하지 않으면 블랙박스다
자동 연구 루프와 자기개선 파이프라인은 여러 LLM 호출과 도구 실행이 얽혀 돌아갑니다. 어느 단계가 느렸는지, 어떤 도구가 실패했는지, 왜 그런 판단을 했는지를 볼 수 없으면 개선도 디버깅도 불가능합니다. 관측성은 자동화의 부가 기능이 아니라 운영의 전제입니다.
OpenTelemetry의 GenAI 시맨틱 컨벤션은 이 문제를 표준으로 해결합니다. 프롬프트, 모델 응답, 토큰 사용량, 도구·에이전트 호출을 공통 스팬 속성으로 정의해, LangChain 에이전트의 스팬과 원시 OpenAI 호출의 스팬이 동일하게 보이도록 만듭니다.
스팬 트리 구조
트레이스는 스팬 트리로 드러납니다. 최상위 invoke_agent 스팬 아래에 각 LLM 호출마다 chat 자식 스팬이, 각 도구 실행마다 execute_tool 스팬이 붙습니다. 스팬 이름은 execute_tool {도구명} 규칙을 따르고, 토큰 사용량과 공급자 메타데이터가 표준 속성으로 기록됩니다. 최근에는 MCP 도구 호출을 위한 컨벤션도 추가되었습니다.
A4 분량 상세 가이드: 기획부터 운영까지
기획 단계에서는 관측 목표를 수치로 정의합니다. 예를 들어 트레이스 커버리지 95% 이상, 스팬 누락률 1% 이하, 단계별 p95 지연 상한을 지표로 둡니다. 처음부터 표준 컨벤션을 채택하면 벤더에 종속되지 않습니다. Datadog, Honeycomb, New Relic 같은 백엔드가 이미 이 컨벤션을 지원하고, LangChain·CrewAI·AutoGen이 OTel 호환 스팬을 기본 또는 계측 패키지로 내보내므로, 표준을 따르면 도구를 바꿔도 관측이 유지됩니다.
실패 패턴은 대개 스팬 단절과 컨텍스트 전파 누락에서 옵니다. 도구 호출이나 비동기 작업에서 트레이스 컨텍스트가 끊기면 부모-자식 관계가 깨져 원인 추적이 어려워집니다. 이를 막으려면 컨텍스트 전파를 도구 경계와 큐 경계까지 일관되게 적용하고, 각 스팬에 요청 ID와 단계 식별자를 남깁니다. 복구 전략으로, 스팬 누락률이 임계값을 넘으면 계측 회귀로 보고 배포를 게이트에서 막습니다. 프롬프트와 응답을 스팬에 남길 때는 민감 정보를 마스킹하거나 참조만 저장합니다.
운영 체크리스트에는 표준 속성의 일관성을 포함합니다. 도구명, 토큰 사용량, 모델명, 지연, 오류 코드를 컨벤션대로 채우고, 추론 단계도 구조화 이벤트로 남겨 사후 분석에 씁니다. 관측 항목으로는 트레이스 커버리지, 스팬 오류율, 도구별 지연 분포, 토큰 비용 귀속을 기록합니다.
지속 개선 루프는 주간 단위로 지연 상위 스팬과 오류 상위 도구를 분석합니다. 병목이 반복되는 단계는 캐시나 라우팅으로 개선하고, 자주 실패하는 도구는 계약을 손봅니다. 트레이싱은 한 번 설치하고 끝나는 계측이 아니라, 관측 공백을 메우며 계속 확장되는 체계여야 합니다.
실행 요약
정리하면 에이전트는 표준 트레이싱 없이는 블랙박스입니다. OTel GenAI 컨벤션으로 invoke_agent·chat·execute_tool 스팬을 표준화하고, 컨텍스트 전파를 도구·큐 경계까지 이어야 합니다. 트레이스 커버리지와 스팬 오류율을 관측하고 병목을 반복 개선하면 자동 루프의 성능과 원인을 투명하게 볼 수 있습니다.