에이전트 자기개선 하네스 (12/12) — Router_Control은 왜 통합되지 않았나

공통 인프라 자체 제작 vs 외부 프레임워크 위임 — 라우팅 계층 설계 판단


핵심 요약

  • Router_Control은 OpenAI 호환 프록시(/v1/chat/completions, port 3939)로, 14차원 복잡도 분류로 모델을 자동 라우팅해 70~80% 비용 절감을 목표로 설계된 구조다.
  • 설계와 코드가 완성된 시점에 상위 프레임워크(Hermes)가 같은 추상 수준의 라우팅 계층을 이미 제공하고 있었고, 자체 프록시는 통합되지 않은 채 HOLD 상태로 유지됐다.
  • 이 글이 전달하는 것: (1) 14차원 복잡도 분류 스키마, (2) "공통 인프라는 직접 만들지 말고 빌려라"는 아키텍처 판정 기준, (3) 통합하지 않은 결정이 마이그레이션 횟수에 미치는 영향.

Router_Control의 구조

Router_Control은 OpenAI 호환 프록시 형태로 설계됐다. 클라이언트는 OPENAI_BASE_URL만 바꾸면 된다.

  • 엔드포인트: /v1/chat/completions
  • 포트: 3939
  • 동작: 요청 수신 → 14차원으로 복잡도 점수화 → 점수 구간별 모델 매핑 → 해당 모델로 포워딩
  • 목표 효과: 70~80% 비용 절감 (간단한 요청일수록 저가 모델로 다운시프트)

핵심은 "분류 로직"과 "전송 계층"이 하나의 프로세스 안에 묶여 있다는 점이다. 뒤에서 보겠지만, 이 결합이 통합 판단에서 결정적 변수가 된다.

14차원 복잡도 분류 스키마

각 차원에 0~3점을 매기고, 점수 구간별로 모델을 매핑하는 방식이다.

  1. 입력 토큰 수
  2. 코드 / 자연어 비율
  3. 다국어 여부
  4. 요청 유형 (질문 / 생성 / 변환)
  5. 출력 길이 기대치
  6. 도메인 특수성
  7. 추론 깊이 추정
  8. 도구 호출 필요 여부
  9. 컨텍스트 의존도
  10. 응답 시간 민감도
  11. 사용자 라벨 (실험 / 프로덕션)
  12. 과거 동일 패턴 결과
  13. 토큰 캐시 적합도
  14. 출력 결정성 요구

개념은 단순하다. 차원별 점수의 합(또는 가중합)이 임계값 이하면 저가 모델, 이상이면 고가 모델로 보낸다. 가중치는 프로덕션 데이터로 후튜닝하는 걸 전제로 한다.

통합 보류 판정의 근거

설계가 완료된 시점에 두 조건이 동시에 성립했다.

  1. 상위 프레임워크의 동일 계층 존재. Hermes의 smart_model_routing.py가 같은 추상 수준에서 라우팅을 수행하고 있었다. 분류 차원 수가 다를 뿐, 라우팅 계층 자체는 동일.
  2. 마이그레이션 비용의 이중화. Router_Control을 OpenClaw에 통합한 뒤 Hermes로 옮기면 라우팅 계층만 두 번 이식해야 한다. 첫 번째는 OpenClaw→Router_Control, 두 번째는 Router_Control→smart_model_routing.py.

이 조건에서 통합을 보류하는 게 총 이식 비용이 낮다. 그래서 Router_Control은 설계·코드 완성 상태로 멈췄고, HOLD 상태로 유지됐다.

통합했다면 어떤 비용이 발생했을까

가정: Router_Control을 OpenClaw에 먼저 통합했다면.

  • OpenClaw 코드 11곳이 Router_Control에 의존. 각 의존점은 Hermes 이동 시 개별 수정 대상.
  • Hermes로 옮길 때 smart_model_routing.py 어댑터를 14차원 스키마에 맞춰 재작성. 기존 어댑터 재사용 불가.
  • 결과: 14차원 분류 스키마가 자산으로 남는 게 아니라 OpenAI 호환 프록시 구현이 자산이 돼버림. 후자는 외부 프레임워크가 압승하는 영역.

자산 분리 원칙

이 판단의 일반화 가능한 형태는 다음과 같다.

  • 판단 로직(14차원 분류, 가중치): 도메인 특수 지식. 자산. 문서·정책 파일로 유지.
  • 전송 계층(OpenAI 호환 프록시, 포워딩): 범용 인프라. 외부 프레임워크에 위임.

Hermes 통합 시 코드 이식은 0줄, 정책 이식은 약 20줄(14차원 가중치를 smart_model_routing.py의 라우팅 정책 파일에 프롬프트 휴리스틱으로 옮기는 작업).

한계와 미측정 항목

미통합 상태에서 감수한 비용은 명확하다.

  • 70~80% 비용 절감은 목표치. 자체 프록시가 가동되지 않은 기간 동안 이 절감은 Router_Control 쪽에선 발생하지 않음.
  • Hermes의 smart_model_routing.py가 다른 휴리스틱으로 같은 효과를 내고 있으나, 정확한 절감률은 아직 측정 전(확인 필요).
  • 14차원 스키마의 각 차원별 가중치는 프로덕션 데이터 기반 후튜닝이 필요하며, 현재 버전은 초기 추정치.

적용 가능 범위

이 패턴은 다음 조건에서 재사용 가능하다.

  • 자체 개발 중인 인프라 컴포넌트가 외부 프레임워크의 기존 계층과 추상 수준이 같은 경우.
  • 두 번의 이식을 피하고 싶을 때 — 첫 이식 비용이 후속 이식을 무효화시킬 가능성이 있는 경우.
  • 자체 구현의 판단 로직전송 계층이 분리 가능한 경우 (분리 불가라면 애초에 자체 제작이 정당화될 수 있음).

열린 질문

  • 14차원 중 실제 비용 절감에 기여하는 차원은 몇 개인가. 3~4개만 유효하다면 스키마를 단순화할 수 있다.
  • 프롬프트 휴리스틱으로 이식한 정책이 코드 기반 라우팅 대비 얼마나 열화되는가. 열화 폭이 크다면 외부 프레임워크의 라우팅 계층 자체를 패치하는 경로가 더 나을 수 있다.
  • "공통 인프라는 빌려라"의 경계선은 어디인가. 판단 로직과 전송 계층이 섞여 있어 분리가 어려운 케이스에선 이 원칙이 어떻게 적용되는가.

시리즈 전체 안내: 시리즈 목차

댓글

이 블로그의 인기 게시물

"LLM 핵심 학습 (1/6) — 기본: 토큰화·임베딩·어텐션·위치 인코딩"

"LLM 핵심 학습 (2/6) — 파인튜닝: LoRA·QLoRA·증류·Adapter"

"ML 기초 학습 (1/9) — 머신러닝과 sklearn: 학습의 좌표계"