LLMs는 테라바이트 규모의 CI 로그를 분석하기 위해 SQL 쿼리를 몇 초 만에 생성합니다

Mendral의 AI 에이전트가 자체 SQL 쿼리를 작성하여 불안정한 테스트를 3주 전의 의존성 업데이트로 추적했습니다. 수억 개의 로그 라인을 수십 개의 쿼리로 스캔하고, 작업 메타데이터에서 원시 로그 출력까지의 흔적을 따라갔습니다. 전체 조사는 몇 초 만에 완료되었습니다.
매주 약 15억 개의 CI 로그 라인과 70만 개의 작업이 이 시스템을 통과합니다. 모든 데이터는 ClickHouse에 저장되며 35:1로 압축됩니다. 모든 데이터는 밀리초 단위로 쿼리가 가능합니다.
에이전트를 위한 SQL 인터페이스
조직별로 범위가 지정된 SQL 인터페이스를 에이전트에 제공합니다. 에이전트는 질문에 따라 자체적으로 쿼리를 구성합니다. 미리 정의된 쿼리 라이브러리나 엄격한 도구 API가 없습니다. get_failure_rate(workflow, days)와 같은 제한된 도구 API는 에이전트를 예상된 질문으로만 제한할 것입니다. SQL 인터페이스를 통해 예상치 못한 질문을 할 수 있으며, 이는 새로운 실패를 디버깅할 때 중요합니다.
에이전트는 두 가지 주요 대상을 쿼리합니다:
- 작업 메타데이터: CI 작업 실행당 하나의 행을 가진 구체화된 뷰입니다. 에이전트는 63%의 시간 동안 "이 작업은 얼마나 자주 실패하나요?", "성공률은 얼마인가요?", "어떤 작업이 가장 느린가요?", "언제 실패하기 시작했나요?"와 같은 질문에 이를 사용합니다.
- 원시 로그 라인: 로그 라인당 하나의 행입니다. 에이전트는 37%의 시간 동안 "이 작업의 오류 출력을 보여주세요", "이 로그 패턴이 처음 나타난 시점은 언제인가요?", "이 오류 메시지가 실행 전반에 걸쳐 얼마나 자주 발생하나요?"와 같은 질문에 이를 사용합니다.
쿼리 패턴과 규모
관측 가능성 파이프라인에서 8,534개의 에이전트 세션과 52,312개의 쿼리를 분석했습니다. 에이전트는 단일 쿼리에서 멈추지 않습니다. 조사를 시작하고, 넓게 시작한 다음 구체적으로 파고듭니다.
하나의 질문에 답하기 위해 모든 쿼리에서 스캔한 총 행 수:
- 일반적인 질문: 약 3개의 쿼리에서 335K 행
- P75: 520만 행
- P95: 9억 4천만 행
- 가장 무거운 원시 로그 세션은 43억 행을 스캔합니다
에이전트는 세션당 평균 4.4개의 쿼리를 수행합니다. 일반적인 조사는 작업 메타데이터(비용이 저렴한 쿼리, 중앙값 47K 행)를 컴팩트하고 사전 집계된 구체화된 뷰에 대해 시작합니다. 흥미로운 것을 발견하면 원시 로그(비용이 높은 쿼리, 중앙값 110만 행)로 파고듭니다.
데이터 아키텍처
에이전트가 이렇게 빠르게 쿼리하려면 데이터가 이를 위해 구조화되어야 합니다. 바쁜 날에는 최대 3억 개의 로그 라인이 흐릅니다. ClickHouse를 사용합니다.
모든 로그 라인은 48개의 메타데이터 열을 포함합니다: CI 실행의 전체 컨텍스트입니다. 커밋 SHA, 작성자, 브랜치, PR 제목, 워크플로우 이름, 작업 이름, 단계 이름, 러너 정보, 타임스탬프 등이 있습니다.
ClickHouse의 컬럼 형식에서 모든 로그 라인에 48개의 열을 비정규화하는 것은 사실상 무료입니다. commit_message와 같은 열은 CI 실행의 모든 로그 라인에 대해 동일한 값을 가지며, 단일 실행은 수천 개의 로그 라인을 생성할 수 있습니다. ClickHouse는 수천 개의 동일한 값을 순차적으로 저장합니다. 압축 알고리즘은 반복을 인식하고 거의 아무것도 없는 수준으로 압축합니다.
압축 비율:
commit_message: 301:1display_title: 160:1workflow_path: 79:1step_name: 52:1job_name: 48:1
비정규화 없이는 모든 쿼리에 조인이 필요할 것입니다. 이를 통해 모든 쿼리가 단순한 필터로 처리됩니다.
📖 전체 소스 읽기: HN LLM Tools
👀 See Also

AI 에이전트는 개발자의 작업 중 얼마나 많은 부분이 반복적인 업무 실행인지를 드러냅니다.
메모리와 특정 역할을 가진 AI 에이전트를 운영하는 개발자가 자신의 일상 업무 대부분이 실제 사고가 아닌 후속 조치, 일정 관리, CRM 업데이트, 마감일 추적과 같은 반복적인 작업에 관련되어 있음을 발견했습니다. 또한 에이전트들은 피드백에 따라 성격 변화와 성능 변화 같은 예상치 못한 행동을 발전시켰습니다.

오래된 노키아 폰에서 작은 AI 에이전트 디버깅하기: 성공까지의 18번의 시도
한 개발자가 구형 노키아 안드로이드 폰에서 Termux를 통해 Picobot이라는 ~12MB의 AI 에이전트를 실행하려고 시도했으며, 무료 모델, OpenRouter, Groq를 테스트한 후 빠르고 안정적인 설정을 위해 Google의 Gemini Flash API를 선택했습니다.

Claude Code와 세 개의 AI 에이전트를 활용한 일일 AI 뉴스 팟캐스트 자동화
한 개발자가 Claude Code를 사용하여 AI 뉴스를 큐레이션하고, 내레이션 스크립트를 작성하며, 콘텐츠를 사실 확인하고, 음성 복제로 오디오를 생성하는 세 가지 전문 AI 에이전트를 조율하는 완전 자동화된 팟캐스트 파이프라인을 구축했습니다. 이 시스템은 최소한의 수동 개입으로 매일 에피소드를 게시합니다.

OpenClaw 에이전트, 관계성 넛지와 함께 문맥 기반 리마인더 구현
OpenClaw 사용자가 캘린더 부하, 현재 작업, 시간대에 따라 트리거되는 상황별 알림을 갖춘 개인 에이전트 시스템을 구축했습니다. 이 시스템은 고정된 일정이 아닌 상황에 맞춰 작동하며, 관계 이력을 바탕으로 사람에게 연락할 것을 제안하는 메모리 추적 기능을 포함하고 있습니다.