AI 에이전트 'SentryOn'으로 장애 분석 자동화 및 MTTD 단축

by DD
17시간 전
조회수 2

AWS Strands Agent SDK 기반의 RCA 에이전트 SentryOn을 개발하여 장애 상황 분석 자동화를 목표로 함

초기 Multi Agent 구조의 복잡성 및 TTFT(Time To First Token) 지연 문제로 Single Agent 구조로 전환하여 효율성 확보

사내 도메인 지식 주입, 데이터 정제 기법 적용, Skill Indexing, 프롬프트 캐싱 등으로 LLM 기반 AIOps 시스템 고도화

도입 2개월 만에 MTTD(Mean Time To Detect) 단축 및 MSA 아키텍처 내비게이션 역할 등 부가 효과 확인

Single Agent vs Multi Agent 구조 설계 결정

초기 Multi Agent 구조는 라우팅 규칙 최적화, 프롬프트 및 캐시 설계 복잡성 증가와 TTFT(Time To First Token) 지연 문제를 야기했습니다. 특히 전문 Agent 간 Output 스키마 정의의 어려움은 장애 상황에서 데이터 보존의 중요성과 상충되었습니다. 현재 20개 내외의 도구 규모에서는 단일 에이전트 내 정교한 프롬프트와 Docstring 설계만으로도 충분히 빠르고 정확한 답변을 얻을 수 있어, Single Agent 구조로 전환하여 효율성을 확보했습니다. 이는 모놀리스에서 마이크로서비스로 점진적 전환하는 방식과 유사하게, 에이전트 설계 역시 점진적 복잡성 증가(Incremental Complexity)를 추구하는 전략입니다.

사내 도메인 지식 주입을 통한 RCA 정확도 향상

범용 LLM은 사내 비즈니스 용어, 인프라 구조, 서비스 맥락을 이해하지 못하므로, SentryOn이 시니어 엔지니어 수준의 판단을 내리기 위해 사내 도메인 지식 설계가 필수적이었습니다. 주요 시스템 현황, 트래픽 흐름, 비즈니스 약어 등을 정리한 지식을 XML 태그와 함께 구조화하여 시스템 프롬프트로 주입했습니다. 이는 LLM이 사내 특화된 맥락(Context)을 이해하고 장애 상황에서 더 정확한 판단을 내리도록 돕는 핵심 요소입니다.

데이터 소스별 특성을 고려한 데이터 정제 기법 적용

수십 MB 규모의 WhaTap JSON 데이터는 CLI 도구(jq 라이브러리) 활용을 통해 임계치 초과 데이터를 동적으로 필터링하고, Elasticsearch의 방대한 로그 데이터는 ‘에러 패밀리’ 단위로 압축하여 LLM의 컨텍스트 한계를 극복했습니다. 특히 ES 로그 압축 시 UUID, Timestamp 등 가변 값을 정규식으로 제거(정규화)하여 로그 시그니처(Log Signature)를 추출하고 발생 빈도, 최초/최근 발생 시간 등을 요약하는 방식으로 컨텍스트 낭비 없이 핵심 패턴을 분석하도록 구현했습니다.

Skill Indexing을 통한 Datadog API 호출 최적화

Anthropic의 ‘Agent Skills’ 개념을 활용하여, Datadog 메트릭 조회 규칙을 ‘datadog-metric-playbook’ Skill로 분리했습니다. 이 Skill은 사용자의 자연어 요청을 분석하여 관련 레퍼런스(reference)를 열고, 필요한 메트릭 이름, 필터 태그, 집계 방식 등을 결정한 뒤 `datadog_query_metrics` 도구를 호출합니다. 이는 LLM의 환각(Hallucination) 현상을 방지하고, 불필요한 토큰 소모 없이 정확한 Datadog 쿼리 생성을 지원하는 핵심 메커니즘입니다.

프롬프트 캐싱 적용 및 Strands SDK 충돌 이슈 해결

Bedrock의 프롬프트 캐싱 기능을 활용하여 비용 부담을 완화하고 Latency를 줄였습니다. `cache_config`를 `auto`로 설정하고 도구 스키마 캐싱을 활성화했으나, Strands SDK의 AgentsSkill 플러그인과 충돌하여 캐시 히트율이 급감하는 버그가 발생했습니다. 해당 버그는 v1.38.0 버전에서 패치되었으며, Skill 플러그인 사용 시 버전 호환성 확인이 중요함을 시사합니다.

도입 성과 및 향후 과제: Read-Only 한계와 롱텀 메모리

SentryOn 도입 2개월 만에 MTTD(Mean Time To Detect) 단축 및 MSA 아키텍처 내비게이션 역할 등 기대 이상의 성과를 확인했습니다. 하지만 현재는 Read-Only 형태로 조치 방안 제안에 그치고 있어, 향후 승인 기반 액션 도입을 고려 중입니다. 또한, 반복되는 에러 패턴 분석을 위해 워크로드별 롱텀 메모리(Long-Term Memory) 부재 문제를 해결하고 운영 노하우를 누적할 필요가 있습니다.

Agentic AIOps — RCA 에이전트 ‘SentryOn’ 도입기 (feat. Strands SDK)