[
  {
    "rule_id": "r01",
    "priority": 10,
    "match_request_type": "ttsql",
    "match_condition": "input_tokens < 8000",
    "target_model_id": "claude-haiku-4.5",
    "max_tool_retries": 2,
    "streaming": true,
    "note": "짧은 정형 질의는 가벼운 모델로 유지합니다"
  },
  {
    "rule_id": "r02",
    "priority": 20,
    "match_request_type": "market_brief",
    "match_condition": "*",
    "target_model_id": "claude-haiku-4.5",
    "max_tool_retries": 2,
    "streaming": true,
    "note": "정형 브리핑은 가벼운 모델로 내려 비용을 줄여 봅니다"
  },
  {
    "rule_id": "r03",
    "priority": 30,
    "match_request_type": "earnings_qa",
    "match_condition": "input_tokens >= 30000",
    "target_model_id": "claude-sonnet-4.5",
    "max_tool_retries": 3,
    "streaming": true,
    "note": "긴 실적 질의는 현행 모델을 유지합니다"
  },
  {
    "rule_id": "r04",
    "priority": 40,
    "match_request_type": "dd_report",
    "match_condition": "*",
    "target_model_id": "claude-sonnet-4.5",
    "max_tool_retries": 3,
    "streaming": true,
    "note": "실사 리포트를 오푸스에서 소넷으로 내려 비용을 봅니다"
  },
  {
    "rule_id": "r05",
    "priority": 50,
    "match_request_type": "dd_report",
    "match_condition": "input_tokens >= 80000",
    "target_model_id": "claude-opus-4.1",
    "max_tool_retries": 3,
    "streaming": true,
    "note": "아주 긴 실사만 오푸스로 남기려는 규칙입니다"
  },
  {
    "rule_id": "r06",
    "priority": 60,
    "match_request_type": "market_brief",
    "match_condition": "team == '채권팀'",
    "target_model_id": "claude-sonnet-4.5",
    "max_tool_retries": 2,
    "streaming": true,
    "note": "채권팀 브리핑만 현행 모델로 남깁니다"
  },
  {
    "rule_id": "r07",
    "priority": 70,
    "match_request_type": "*",
    "match_condition": "tool_retries >= 2",
    "target_model_id": "claude-sonnet-4.5",
    "max_tool_retries": 1,
    "streaming": true,
    "note": "재시도가 잦은 요청은 상한을 1회로 조입니다"
  },
  {
    "rule_id": "r08",
    "priority": 80,
    "match_request_type": "earnings_qa",
    "match_condition": "*",
    "target_model_id": "claude-sonnet-4.6-preview",
    "max_tool_retries": 3,
    "streaming": true,
    "note": "미계약 프리뷰 모델을 후보로 올려 둔 규칙입니다"
  },
  {
    "rule_id": "r09",
    "priority": 90,
    "match_request_type": "dd_report",
    "match_condition": "*",
    "target_model_id": "claude-opus-4.1-batch",
    "max_tool_retries": 3,
    "streaming": false,
    "note": "야간 실사 리포트를 배치로 돌려 단가를 절반으로 낮춥니다"
  },
  {
    "rule_id": "r10",
    "priority": 100,
    "match_request_type": "ttsql",
    "match_condition": "*",
    "target_model_id": "claude-haiku-4.5-batch",
    "max_tool_retries": 1,
    "streaming": false,
    "note": "정형 질의를 배치로 돌려 단가를 더 낮춥니다"
  }
]