피드로 돌아가기
Stop Stuffing Context Windows: Dynamic Tool Pruning with Spring AI Vector Routing
Dev.toDev.to
AI/ML

Vector Routing 기반 Dynamic Tool Pruning으로 LLM Context 최적화 및 Hallucination 제거

Stop Stuffing Context Windows: Dynamic Tool Pruning with Spring AI Vector Routing

Machine coding Master2026년 6월 8일2intermediate

Context

수천 개의 @Tool 정의를 LLM Context에 하드코딩하는 Global Registry Anti-Pattern으로 인한 비용 증가와 Latency 상승 발생. Tool 개수 증가에 따른 LLM 정확도 급감 및 JSON Schema 메타데이터 오버헤드로 인한 시스템 처리량 저하 문제 직면.

Technical Solution

  • Tool 정의를 Semantic Document로 취급하여 PgVector 또는 Milvus 등 VectorStore에 인덱싱하는 구조 설계
  • 사용자의 Prompt를 기반으로 Top-K 유사도 검색을 수행하여 최적의 Tool 3~5개만 추출하는 2단계 Agentic Pipeline 구현
  • Similarity Threshold 설정을 통한 단순 대화 시 불필요한 Tool 주입 방지 및 Context Window 효율화
  • Spring AI의 VectorStore와 FunctionCallback Registry를 결합하여 Tool 확장성과 코어 에이전트의 디커플링 달성
  • 런타임 시점에 선택된 Tool 정의만 ChatOptions에 동적으로 주입하여 LLM의 인지 부하 감소

- Tool 정의 개수가 10개 이상으로 증가 시 Vector-based Dynamic Routing 도입 검토 - 단순 Top-K 추출 외에 적절한 Similarity Threshold를 설정하여 Tool 호출의 Precision 확보 - LLM Context Window 점유율을 낮추기 위해 JSON Schema 메타데이터의 동적 주입 구조 설계

원문 읽기