Skip to main content

라우팅

라우팅 패턴 개요

프롬프트 연쇄를 통한 순차 처리는 언어 모델로 결정론적이고 선형적인 워크플로우를 실행하는 기초적인 기법이지만, 적응적 반응이 필요한 시나리오에서는 적용 가능성이 제한적임, 실제 에이전트 시스템은 환경 상태, 사용자 입력, 또는 이전 작업의 결과와 같은 상황적 요인에 따라 여러 가능한 행동 중에서 선택해야 하는 경우가 많음. 서로 다른 전문 기능, 도구, 또는 하위 프로세스로의 제어 흐름을 관리하는 이러한 동적 의사결정 능력은 라우팅이라는 메커니즘을 통해 달성됨.

라우팅은 에이전트의 운영 프레임워크에 조건부 논리를 도입하여, 고정된 실행 경로에서 에이전트가 특정 기준을 동적으로 평가하여 가능한 후속 행동들 중에서 선택하는 모델로의 전환을 가능하게 함. 이를 통해 더욱 유연하고 상황 인식적인 시스템 동작이 가능해짐.

예를 들어, 고객 문의를 처리하도록 설계된 에이전트가 라우팅 기능을 갖추고 있다면, 먼저 들어오는 문의를 분류하여 사용자의 의도를 파악할 수 있음. 이 분류를 바탕으로 미리 정해진 단일 응답 경로를 기본값으로 사용하는 대신, 직접적인 질답을 위한 전문 에이전트, 계정 정보를 위한 데이터베이스 검색 도구, 또는 복잡한 문제를 위한 에스컬레이션 절차로 문의를 전달할 수 있음.

따라서 라우팅을 사용하는 더 정교한 에이전트는 다음과 같은 작업을 수행할 수 있음.


  1. 사용자의 문의를 분석
  2. 의도에 따라 문의를 라우팅
    • "주문 상태 확인"이면 주문 데이터베이스와 상호작용하는 하위 에이전트나 도구 체인으로 라우팅
    • "제품 정보"이면 제품 카탈로그를 검색하는 하위 에이전트나 체인으로 라우팅
    • "기술 지원"이면 문제 해결 가이드에 접근하거나 인간에게 에스컬레이션하는 다른 체인으로 라우팅
    • 의도가 불분명하면 명확화 하위 에이전트나 프롬프트 체인으로 라우팅

라우팅 패턴의 핵심 구성 요소는 평가를 수행하고 흐름을 지시하는 메커니즘, 이 메커니즘은 여러 방식으로 구현될 수 있음.

LLM 기반 라우팅: 언어 모델 자체가 입력을 분석하고 다음 단계나 목적지를 나타내는 특정 식별자나 지시사항을 출력하도록 프롬프트될 수 있음. 예를 들어, 프롬프트가 LLM에게 "다음 사용자 문의를 분석하고 카테고리만 출력하세요, '주문 상태', '제품 정보', '기술 지원', 또는 '기타'"라고 요청할 수 있음. 그러면 에이전트 시스템이 이 출력을 읽고 그에 따라 워크플로우를 지시함.

임베딩 기반 라우팅: 입력 문의를 벡터 임베딩으로 변환할 수 있음(RAG). 이 임베딩은 서로 다른 경로나 기능을 나타내는 임베딩들과 비교되며 문의는 가장 유사한 임베딩을 가진 경로로 라우팅됨. 이는 단순한 키워드가 아닌 입력의 의미에 기반하여 결정을 내리는 의미적 라우팅에 유용함.

규칙 기반 라우팅: 입력에서 추출된 키워드, 패턴, 또는 구조화된 데이터를 기반으로 미리 정의된 규칙이나 논리를 사용함. 이는 LLM 기반 라우팅보다 빠르고 결정론적일 수 있지만 미묘하거나 새로운 입력을 처리하는 데 있어서는 유연성이 떨어짐.

기계학습 모델 기반 라우팅: 라우팅 작업을 수행하기 위해 레이블이 지정된 소규모 데이터 코퍼스에서 특별히 훈련된 분류기와 같은 판별 모델을 사용. 임베딩 기반 방법과 개념적 유사성을 공유하지만, 주요 특징은 전문화된 라우팅 기능을 만들기 위해 모델의 매개변수를 조정하는 지도 미세 조정 프로세스임. 이 기법은 의사결정 구성 요소가 추론 시점에 프롬프트를 실행하는 생성 모델이 아니기 때문에 LLM 기반 라우팅과 구별됨. 대신 라우팅 논리가 미세 조정된 모델의 학습된 가중치 내에 인코딩됨. LLM이 훈련 세트를 보강하기 위한 합성 데이터 생성의 전처리 단계에서 사용될 수 있지만, 실시간 라우팅 결정 자체에는 관여하지 않음.

라우팅 메커니즘은 에이전트의 운영 주기 내 여러 지점에서 구현될 수 있으며 주요 작업을 분류하기 위해 시작 시점에 적용하거나, 후속 행동을 결정하기 위해 처리 체인 내 중간 지점에서 적용하거나 주어진 세트에서 가장 적합한 도구를 선택하기 위해 서브루틴 중에 적용할 수 있음.

LangChain, LangGraph, Google의 Agent Developer Kit(ADK)와 같은 컴퓨팅 프레임워크는 이러한 조건부 논리를 정의하고 관리하기 위한 명시적 구조를 제공함. 상태 기반 그래프 아키텍처를 가진 LangGraph는 결정이 전체 시스템의 누적 상태에 의존하는 복잡한 라우팅 시나리오에 특히 적합함. 마찬가지로 Google의 ADK는 라우팅 논리 구현의 기초가 되는 에이전트의 기능과 상호작용 모델을 구조화하기 위한 기본 구성 요소를 제공. 이러한 프레임워크가 제공하는 실행 환경 내에서 개발자는 가능한 운영 경로와 컴퓨팅 그래프의 노드 간 전환을 지시하는 함수나 모델 기반 평가를 정의함.

라우팅의 구현은 시스템이 결정론적 순차 처리를 넘어서도록 하며 이는 더 넓은 범위의 입력과 상태 변화에 동적이고 적절하게 반응할 수 있는 더욱 적응적인 실행 흐름의 개발을 촉진함.

실용적 적용 및 사용 사례

라우팅 패턴은 적응형 에이전트 시스템 설계에서 중요한 제어 메커니즘으로 다양한 입력과 내부 상태에 대응하여 실행 경로를 동적으로 변경할 수 있게 함. 필요한 조건부 논리 계층을 제공함으로써 여러 영역에 걸쳐 그 유용성이 확장됨.

가상 어시스턴트나 AI 기반 튜터와 같은 인간-컴퓨터 상호작용에서 라우팅은 사용자 의도를 해석하는 데 사용됨. 자연어 문의의 초기 분석을 통해 특정 정보 검색 도구 호출, 인간 운영자에게 에스컬레이션, 또는 사용자 성과에 따른 커리큘럼의 다음 모듈 선택과 같은 가장 적절한 후속 행동을 결정함. 이를 통해 시스템이 선형 대화 흐름을 넘어서서 상황에 맞게 반응할 수 있음.

자동화된 데이터 및 문서 처리 파이프라인에서 라우팅은 분류 및 배포 기능을 담당. 이메일, 지원 티켓, 또는 API 페이로드와 같은 들어오는 데이터가 내용, 메타데이터, 또는 형식을 기반으로 분석됨. 그런 다음 시스템은 각 항목을 영업 리드 수집 프로세스, JSON 또는 CSV 형식을 위한 특정 데이터 변환 기능 또는 긴급 문제 에스컬레이션 경로와 같은 해당 워크플로우로 전달

여러 전문 도구나 에이전트를 포함하는 복잡한 시스템에서 라우팅은 고수준 디스패처 역할을 함. 검색, 요약, 정보 분석을 위한 개별 에이전트들로 구성된 연구 시스템은 현재 목표에 따라 가장 적합한 에이전트에게 작업을 할당하기 위해 라우터를 사용, 마찬가지로 AI 코딩 어시스턴트는 라우팅을 사용하여 프로그래밍 언어와 사용자의 의도(디버깅, 설명 또는 번역)를 식별한 후 코드 스니펫을 올바른 전문 도구에 전달함.

궁극적으로 라우팅은 기능적으로 다양하고 상황 인식적인 시스템을 만드는 데 필수적인 논리적 중재 능력을 제공함. 이는 에이전트를 미리 정의된 시퀀스의 정적 실행자에서 변화하는 조건 하에서 작업을 수행하는 가장 효과적인 방법에 대한 결정을 내릴 수 있는 동적 시스템으로 변화시킴.

요약

대부분의 AI는 정해진 순서대로만 작업을 처리하며 상황이 바뀌어도 같은 방식으로만 반응하지만 라우팅 기술로 AI 에이전트가 상황에 따라 다른 행동을 선택하게 할 수 있으며 라우팅 방법에는 AI가 직접 판단해서 분류하는 LLM 기반 방법과 의미 유사도로 판단하는 임베딩 기반, 미리 정한 규칙으로 판단하는 규칙 기반, 전용 분류 모델을 사용하는 ML 모델 기반 등 4가지가 있음.