소개
시도하고자 했던 것
저는 전통 한국 명리학(사주 분석)을 AI로 디지털 보존하는 프로젝트를 6개월째 풀타임으로 진행하고 있습니다. LangGraph 11노드 파이프라인이 Dify RAG를 호출하여 통변 근거를 검색하는데, 현재 의미 유사도 평균이 0.5395입니다. 목표는 0.80이지만, 60갑자(일주) × 4단계 분석 = 240개 조합을 사람이 수동으로 진단하는 건 비현실적이었습니다.
그 이유
Hermes Agent의 Cron 자동실행과 스킬 자가진화 기능을 활용하면, 240개 조합을 매일 새벽 자동 순찰하고 약점을 리포트하는 "승인형 품질 개선 루프"를 만들 수 있겠다고 판단했습니다. 핵심 원칙은 명확합니다 — 자동 진단은 에이전트가, 최종 반영은 사람이 승인하는 구조입니다.
진행 방법
3.1 사용한 도구
도구
역할
Hermes Agent
Cron 스케줄링 + 스킬 실행 + 장기 메모리 (자동 순찰자)
LangGraph
11노드 4단계 분석 파이프라인 (기존 시스템, 변경 없음)
Dify RAG
hybrid_search API 호출 대상 (128+ 문서)
Claude Opus API
유사도 측정용 LLM (동일 모델·프롬프트·temperature 0 고정)
PostgreSQL
평가 결과 정본 저장 + 더미 DB 1만건 테스트베드
3.2 평가를 3층위로 분리했습니다
처음에는 단일 semantic similarity만 추적했는데, 낮은 점수가 "검색이 잘못된 건지, 답변 생성이 잘못된 건지, 운영 문제인지" 구분이 안 됐습니다. 그래서 평가를 세 층위로 나눴습니다.
Retrieval 층위 — Dify가 가져온 문서가 질문에 적합한지 (문맥 관련성), 240셀 중 0.50 미만 비율이 얼마인지 측정합니다.
Generation 층위 — 답변이 검색된 근거에 충실한지 (근거성), 원래 질문에 적합한지 (답변 관련성), 기준 통변문과의 의미 유사도를 봅니다.
Operation 층위 — API 호출 지연시간, 실패율, query당 비용을 모니터링합니다.
TruLens의 RAG Triad(문맥 관련성 + 근거성 + 답변 관련성) 개 념을 수기 평가에 적용했고, 자동화 도구(RAGAS/DeepEval)는 다음 Phase에서 검토할 예정입니다.
3.3 저품질 셀 원인 분해
관찰 패턴
해석
우선 수정 대상
문맥 관련성 낮음 + 답변 관련성 낮음
검색 실패
query, metadata filter, rerank, Top K
문맥 관련성 높음 + 근거성 낮음
생성 단계 근거 이탈
system prompt, citation rule
문맥 관련성 높음 + 근거성 높음 + 답변 관련성 낮음
질문 해석 오류
질문 분해, 단계별 프롬프트 구조
품질 상승 + latency·cost 급등
과검색/rerank 비용 과다
Top K 축소, Cron 분산
3.4 Step 1 — RAG 품질 히트맵 자동 생성
60갑자 × 4단계 분석의 RAG 검색 품질을 자동 측정하는 Hermes 스킬을 만들었습니다. 각 일주 × 4단계로 Dify를 호출(240회)하고, relevance score를 기록한 뒤, 이전 결과와 비교합니다. 출력물은 240셀 히트맵(JSON + 마크다운)과 하위 10개 셀 리포트입니다.
4단계 분석의 표준 질의 템플릿은 이렇게 설계했습니다:
분석 단계
쿼리 템플릿
1단계
{일주}일주 음양 분석 양과 음의 균형
2단계
{일주}일주 천간 지지 관계 합충형파해
3단계
{일주}일주 육신 비겁 식상 재성 관성 인성
4단계
{일주}일주 신살 도화살 역마살 귀문관살
3.5 Step 2 — Hermes Cron 매일 새벽 자동 실행
매일 04:00 KST에 자동 실행됩니다. DB 조회 → Dify 호출 → 매트릭스 생성 → JSON 저장 → 이전 비교 → Telegram 알림 → 로그 기록. API 호출 실패 시 해당 셀만 'N/A' 처리하고 나머지는 계속 진행합니다.
3.6 Step 3 — 쿼리 + Retrieval 설정 A/B 테스트
하위 10개 취약 셀에 대해 쿼리 변형 5종과 retrieval 설정 변형을 함께 실험했습니다. 처음에는 쿼리 문구만 바꿔봤는데, 실제로는 Top K·rerank·metadata filter 같은 retrieval 설정이 품질에 더 큰 영향을 미쳤습니다.
실험축
변형 예시
metadata filtering
계통·source·일주 기준 on/off
rerank
off / on (모델 버전 명시)
semantic vs keyword weight
0.3 / 0.5 / 0.7
Top K
3 / 5 / 8
전체 240셀에 모든 변형을 적용하면 비용이 급증합니다. 하위 10개 셀만 집중하되, 비용·지연시간도 함께 기록하는 것이 현실적이었습니다.
3.7 Step 4 — 3대 자료 계통 교차 검증
매주 토요일 03:00에 프로젝트의 3대 자료 계통 간 일관성을 자동 측정합니다. 같은 일주에 대해 세 계통이 서로 다른 해석을 내놓으면(일관성 < 0.5) 모순 의심 리포트가 올라오고, 높으면(> 0.8) 통변 신뢰도 높음으로 판정합니다.
3.8 3층 데이터셋 설계
데 이터셋
규모
용도
골드셋
소규모 (수기 검토)
임계값 보정, 승인 판정 기준
더미 DB
1만건 (60갑자 각 167건)
240셀 커버리지 벤치마크, 자동화 검증
실DB
732건 + Cron 로그
회귀 검증, 현장성 확인
더미 DB는 커버리지 분석에 유리하지만, 최종 품질 판단은 골드셋 + 실DB 기준입니다. 데이터 분리 원칙은 절대 준수했습니다.
결과와 배운 점
기대 효과
지표
현재
1개월 목표
3개월 목표
유사도 평균
0.5395
0.65
0.80
≥0.5 달성률
68.4%
80%
90%+
수동 진단 시간/주
4시간+
30분
15분
위 수치는 목표치입니다. 실측 결과에는 측정일·데이터셋 버전·모델 버전·비용을 함께 기록합니다.
꿀팁 5가지
1. 스킬의 쓰임새를 좁게 잡아라 — "RAG 품질 개선"이 아니라 "60갑자 히트맵 생성"처럼 좁게 만들어야 자동 호출이 정확했습니다.
2. memory에는 포인터만, 자료는 DB로 — 240셀 원본은 PostgreSQL에, memory에는 "최신 리포트 경로"만 저장했습니다. 처음에 둘 다 넣었다가 동기화 지옥을 경험했습니다.
3. 더미 DB는 커버리지 진단용으로만 — 60갑자 전체를 빈칸 없이 점검하는 데 유용하지만, 최종 품질 판단은 골드셋 + 실DB 기준으로 해야 했습니다.
4. A/B 테스트는 retrieval 설정까지 확장하라 — 쿼리 문구보다 Top K·rerank·metadata filter가 품질에 더 큰 영향을 미칠 수 있었습니다.
5. 자동 반영보다 승인 루프를 유지하라 — Hermes가 제안하고, 사람이 승인한 뒤 반영. 명리학 통변은 해석 체계가 중요하므로 자동 반영은 위험합니다.
시행착오
Dify API를 240회 연속 호출했더니 rate limit에 걸렸습니다. 0.5초 sleep + exponential backoff을 넣어서 해결했습니다.
쿼리 변형을 10종 이상 만들었더니 비용이 급증했습니다. 5종 이하 + retrieval 설정 변형 병행이 현실적이었습니다.
memory와 PostgreSQL에 이중 저장했더니 동기화 문제가 생겼습니다. PostgreSQL을 정본으로, memory는 포인터만 두는 것으로 정리했습니다.
단일 유사도만 추적했을 때는 검색 실패와 생성 실패를 구분할 수 없었습니다. 3층위 평가로 전환하니 원인 분해가 가능해졌습니다.
< 앞으로의 계획 >
주차
작업
완료 기준
1주차
Hermes 설치 + 히트맵 스킬 + 더미 DB 240셀
240셀 JSON/Markdown 생성
2주차
Cron 등록 + 실DB 전환 + 골드셋 구축
production baseline 확정
3주차
A/B 테스트 (쿼리 + retrieval 설정)
하위 10셀 개선 후보 선정
4주차
교차 검증 + 개선 전후 비교
유사도 0.65 달성 확인
도움 받은 글 (옵션)
DECK 스터디장 — Hermes 메가진화 소개 영상 (스킬 자가진화·장기 메모리)
Hermes 공식 문서 — Installation & Quickstart, Security
Dify 공식 문서 — Knowledge Retrieval, Retrieval Settings
TruLens — RAG Triad (Context Relevance, Groundedness, Answer Relevance)
Es et al. (2023) — RAGAS: Automated Evaluation of RAG
한바둑 프로젝트 보고서 v2.0, 더미DB 구축보고서 v1.3