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: Setting per-agent and per-module cost ceilings, model routing (high-risk = strong model, low-risk = lightweight), token budget management. When cost is unpredictable or spiking.
---
# 비용 통제 (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;
```
## 안티패턴
**고객 응대**: 비용 추적 없이 운영하면 "이번 달 지출이 왜 두 배인지" 답할 수 없다. 모든 에이전트가 같은 모델을 쓰면 단순 분류에도 비싼 추론을 태운다. 예산 상한이 없으면 트래픽 급증이 곧 무한 비용이 된다.
**검색/RAG 시스템**: 매 질의마다 임베딩을 재계산하면 비용이 선형으로 증가한다. 자주 사용되는 질의·문서의 임베딩을 캐시하고 무효화 규칙을 추가해 변경된 문서만 재처리하라.
## 호출 예시
```
"지금 모든 에이전트가 같은 강한 모델을 써서 월간 비용이 예산의 3배다.
reopt-cost-control을 적용해줘: Intake는 경량 모델, Response는 강한 모델을
유지, 에이전트별 토큰 예산과 80% 시점 폴백 경로를 추가해줘."
```
## 관련 패턴
- 모듈 계약 — 모듈별 비용 데이터를 계약에 선언
- 평가와 가드레일 — 품질 손실 없이 비용 최적화