Skip to content
siggu edited this page Nov 27, 2025 · 1 revision

🚀 Agent Flow

→ 세션 관리 → 라우팅 → 정보 추출 → 검색 → 답변 생성 → 저장(메인 파이프라인)


🧠 메인 파이프라인

🧱 설계 원칙

  1. 서로 다른 작업은 독립 노드 구성
  2. 한 번의 LLM 호출로 가능한 작업은 단일 노드로 통합
  3. 모든 유저 입력은 정보 입력 / 정책 요청 / 복합 입력 중 하나

🪜 핵심 단계 요약

단계 노드 LLM 주요 기능
1 🎥 Session Orchestrator X 세션 생성/삭제 + persist trigger
2 🎮 Query Router GPT-4o 쿼리 라우팅 / 태그 부여
3 💉 Info Extractor GPT-4o 유저 정보 추출 및 제거 / synthetic query
4 🏗️ User Context Node X Profile + Memory 조립
5 🔎 Policy Retriever GPT-4o Hybrid 정책 검색
6 🔠 LLM Answer Creator Gemini-2.0-flash 최종 답변 생성
7 💾 Persist Pipeline BGE-m3-ko DB 저장 (Long-term memory)

🎥 Session Orchestrator

역할

  • 세션 생성 / 불러오기 / 삭제
  • 유저 요청 시 persist pipeline 실행

🎮 Query Router

태그 종류

태그 의미 동작
save_info 저장할 정보 포함 False → Info Extractor 스킵
use_info 답변 시 유저 정보 필요 False → Answer Creator에서 무시
use_rag 정책 검색 필요 False → Retriever 스킵
이미지 이미지

💉 Info Extractor

기능

  • 유저 입력에서 정보 파트 추출 및 제거
  • 정책 요청 쿼리 형태로 통일
  • 맞춤형 요청 시 synthetic query 생성
  • 정보는 Profile / Collection 으로 분류
이미지 이미지

🏗️ User Context Node

기능

기능 설명
Profile 병합 DB Profile + Memory Profile
Profile Summary 자연어 요약
Rolling Summary 이전 대화 요약 관리

🔎 Policy Retriever

5단계 검색 파이프라인

단계 이유 사용 데이터
1. 지역 Hard Filter 지역 외 정책 제거 Profile_region
2. Rule-based Filter AND 조건 검사 Profile
3. Vector Search 정책 제목 의미 검색 Embedding
4. BM25 Re-Ranking OR 형태 키워드 포함 점수 Collections
5. Hybrid Score 의미 + 키워드 결합 최종 ranking

🔠 LLM Answer Creator

  • 정책 Top-k 기반 최종 답변 생성
  • User profile + Context + RAG 데이터 활용

💾 Persist Pipeline

기능 설명
Memory → DB 저장 요청 시 long-term 저장
충돌 관리 최신 값 우선 merge

🧱 데이터베이스 & 메모리 구조

데이터베이스 이미지 세션/메모리 이미지

👤 사용자 데이터 구조

이름 설명 타입 방식
Profile 정적 정보 나이/성별/지역/소득 update
Collections 이벤트성 Boolean/Text upsert

📑 정책 데이터 구조

필드 설명 방식
id 고유 정책번호 seq
title 제목 LLM 요약
requirements 자격요건 LLM
benefits 혜택 LLM
raw_text 원문 Crawling
url 링크 Crawling
policy_id 동일 정책 ID 상위 기관 기반
region 지역 URL
sitename 사이트명 URL
weight 우선도 지역 기반
eval_target 자격 요약 점수 LLM
eval_content 혜택 점수 LLM
llm_reinforced 보강 결과 Reinforcement
llm_sources 근거 문서 Top-3

🧠 Memory Structure

이름 설명
Ephemeral_Profile 현재 추출된 정보
Collection_L0~2 중요도별 가중
Profile_summary 문장형 프로필
rolling_summary 대화 요약
Rag_Snippets 큐레이션된 정책
Search Text 최종 입력 쿼리
save_info / use_info / use_rag 제어 플래그

🏁 전체 흐름 (Flow Sequence)

전체 파이프라인