에이전트 자기개선 하네스 (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점을 매기고, 점수 구간별로 모델을 매핑하는 방식이다.
- 입력 토큰 수
- 코드 / 자연어 비율
- 다국어 여부
- 요청 유형 (질문 / 생성 / 변환)
- 출력 길이 기대치
- 도메인 특수성
- 추론 깊이 추정
- 도구 호출 필요 여부
- 컨텍스트 의존도
- 응답 시간 민감도
- 사용자 라벨 (실험 / 프로덕션)
- 과거 동일 패턴 결과
- 토큰 캐시 적합도
- 출력 결정성 요구
개념은 단순하다. 차원별 점수의 합(또는 가중합)이 임계값 이하면 저가 모델, 이상이면 고가 모델로 보낸다. 가중치는 프로덕션 데이터로 후튜닝하는 걸 전제로 한다.
통합 보류 판정의 근거
설계가 완료된 시점에 두 조건이 동시에 성립했다.
- 상위 프레임워크의 동일 계층 존재. Hermes의
smart_model_routing.py가 같은 추상 수준에서 라우팅을 수행하고 있었다. 분류 차원 수가 다를 뿐, 라우팅 계층 자체는 동일. - 마이그레이션 비용의 이중화. 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개만 유효하다면 스키마를 단순화할 수 있다.
- 프롬프트 휴리스틱으로 이식한 정책이 코드 기반 라우팅 대비 얼마나 열화되는가. 열화 폭이 크다면 외부 프레임워크의 라우팅 계층 자체를 패치하는 경로가 더 나을 수 있다.
- "공통 인프라는 빌려라"의 경계선은 어디인가. 판단 로직과 전송 계층이 섞여 있어 분리가 어려운 케이스에선 이 원칙이 어떻게 적용되는가.
시리즈 전체 안내: 시리즈 목차
댓글
댓글 쓰기