Pattern Skills

reopt-cost-control

비용 통제

토큰 예산·모델 선택·호출 빈도를 구조적으로 관리해 비용 곡선을 통제한다.

OCLS LAYER

설치

cp skills/patterns/reopt-cost-control/SKILL.md <your-project>/.claude/skills/reopt-cost-control/SKILL.md

이 레포의 파일을 당신의 프로젝트에 복사하면 Claude Code 세션에서 바로 활성화된다.

markdownskills/patterns/reopt-cost-control/SKILL.md
---
name: reopt-cost-control
description: 에이전트·모듈별 비용 한도 설정, 모델 라우팅(고위험=고성능, 저위험=경량), 토큰 예산 관리. 비용이 예측 불가능하거나 급증할 때.
---

# 비용 통제 (Cost Control)

OCLS 단계: **LAYER** · 토큰 예산·모델 선택·호출 빈도를 구조적으로 관리해 비용 곡선을 통제한다.

## 핵심 규칙

- **경로별 모델 선택**: 고위험 결정 경로에는 고성능 모델, 분류·필터링 같은 저위험 경로에는 경량 모델.
- **에이전트별 예산 할당**: 각 에이전트·모듈에 토큰 예산을 부여하고 사용량을 실시간 추적. 소진 시 경량 모델로 폴백하거나 인간에게 에스컬레이션.
- **캐시·배치 전략**: 동일 입력 패턴의 결과 캐시, 비동기 가능 작업은 배치 처리.
- 비용 데이터는 OCLS SHARPEN 루프의 핵심 입력. 비용 이상 감지 시 모델 배정·예산 경계를 재조정한다.

## 판단 질문

**이 추론에 이 모델이 정말 필요한가?**

## 적용 체크

1. 경로별 모델 배정이 명시되어 있는가?
2. 에이전트·모듈별 토큰 예산이 설정되어 있는가?
3. 캐시 정책(어떤 입력을, 얼마나 오래)이 정의되어 있는가?
4. 예산 초과 시 폴백 경로가 있는가?

## 코드 예시

```typescript
// 경로별 모델 라우팅
type Risk = "high" | "medium" | "low";

function selectModel(route: { risk: Risk }): string {
  if (route.risk === "high") return "claude-opus-4-7";     // 법적·결제·보안
  if (route.risk === "medium") return "claude-sonnet-4-6"; // 응답 생성
  return "claude-haiku-4-5";                               // 분류·필터
}

// 에이전트별 예산 + 폴백
class BudgetedAgent {
  private used = 0;
  constructor(private budget: number, private llm: LLMClient) {}

  async call(input: Input): Promise<Output> {
    if (this.used > this.budget * 0.8) {
      return this.fallback(input); // 80% 도달 시 경량 모델로 폴백
    }
    const model = selectModel(input.route);
    const r = await this.llm.call(model, input);
    this.used += r.tokensUsed;
    return r;
  }

  private async fallback(input: Input) {
    return this.llm.call("claude-haiku-4-5", input);
  }
}

// 캐시 — 동일 입력 패턴은 TTL 동안 재사용
const cacheKey = hash(input);
const cached = await cache.get(cacheKey);
if (cached && !cached.expired) return cached.result;
```

## 안티패턴

**고객 상담**: 비용 추적 없이 운영하면 "이번 달 비용이 왜 2배가 되었는가"에 답할 수 없다. 모든 에이전트에 동일 모델을 쓰면 단순 분류에도 고비용 추론이 발생한다. 예산 한도 없이 운영하면 트래픽 급증 시 비용이 무제한 증가한다.

**검색·RAG 시스템**: 매 쿼리마다 전체 임베딩을 재계산하면 비용이 선형 누적된다. 자주 쓰는 쿼리·문서 임베딩을 캐시하고, 변경된 문서만 재처리하도록 invalidation 규칙을 둔다.

## 호출 예시

```
"현재 모든 에이전트가 동일한 고성능 모델을 써서 월 비용이 예산의 3배야.
reopt-cost-control 적용: Intake는 경량, Response는 고성능 유지하되
에이전트별 토큰 예산 설정 + 80% 도달 시 폴백 경로 추가."
```

## 관련 패턴

- Module Contract — 모듈별 비용 정보의 계약 명시
- Evaluation and Guardrails — 품질 유지하며 비용 최적화

연결된 패턴

Cost Control비용 통제토큰 예산, 모델 선택, 호출 빈도를 구조적으로 관리하여 비용 곡선을 통제한다.