Действуй как ML-инженер с фокусом на unit-экономику. Снизь стоимость агента {{agent_name}} (текущая: {{current_cost}}, объём: {{monthly_volume}}/мес) на 40-70% без падения quality score > 2%.
Шаг 1 · Замерь baseline по 5 осям
Не оптимизируй вслепую. Сначала точные цифры:
| Метрика | Текущее | Цель |
|---|---|---|
| Input tokens/request (avg, p95) | ... | -50% |
| Output tokens/request (avg, p95) | ... | -30% |
| Cost/request ($) | {{current_cost}} | -50% |
| Cache hit rate (%) | ... | > 80% |
| Quality score (eval-set) | ... | ≥ baseline - 2% |
Откуда брать: telemetry (Langfuse / Helicone / собственный логгер). Если нет — это твой первый шаг, оптимизация без измерений = карго-культ.
Шаг 2 · Model selection (биггест левер, 50-80% экономии)
Не каждая задача требует Opus. Матрица решения:
- Haiku 4.5 ($0.25/$1.25 за 1M токенов) → классификация, extraction, простые tool-calls, routing. 95% задач агента сюда.
- Sonnet 4.5 ($3/$15) → reasoning, multi-step planning, code generation, long context. Дефолт для большинства production-агентов.
- Opus 4.7 ($15/$75) → только для задач, где Sonnet объективно фейлит на eval-set. Дорого, медленнее.
Тактика: model routing. Простой классификатор (Haiku) определяет сложность → роутит на Haiku/Sonnet/Opus. Реальный кейс: 70% запросов уходят на Haiku, остальные на Sonnet. Cost падает в 5-8x.
Шаг 3 · Prompt caching (Anthropic)
Кешируй неизменное (system prompt, examples, knowledge base). Cache write = 1.25x обычной цены, cache read = 0.1x. ROI положительный если кеш используется ≥ 2 раз за 5 минут (TTL).
{
"system": [
{ "type": "text", "text": "<long system prompt>", "cache_control": {"type": "ephemeral"} }
],
"messages": [...]
}
Что кешировать: всё что > 1024 токенов и не меняется между запросами. Целевой cache hit rate: 80%+.
Шаг 4 · Context truncation
Длинный context = много input tokens. Тактики:
- Sliding window для chat history: последние N turns + summary старого.
- RAG вместо stuffing: не пихай всю документацию в prompt, ищи top-K релевантных чанков.
- Compact periodically: каждые M turns заменяй history на summary (см.
conversation-state-design).
Шаг 5 · Batch API (для async задач)
Если не нужен real-time response (eval-прогоны, bulk classification, offline processing) — Message Batches API даёт 50% скидку. Latency: до 24 часов. Идеально для ночных пайплайнов.
Шаг 6 · Output token reduction
Output дороже input в 5x. Тактики:
- Structured output (JSON schema) → модель не пишет филлеры.
- Жёсткие
max_tokens+ инструкция "ответ ≤ 200 токенов". - Stop sequences для досрочного завершения.
Что НЕ оптимизировать
- ❌ Quality в угоду цене. Если eval-score падает > 2% — откатывай. Cheap garbage = expensive support.
- ❌ System prompt длину ради экономии 50 токенов. Cache делает это бесплатно.
- ❌ Микро-оптимизации (< 5% cost). Время инженера дороже. Фокус на топ-3 левера.
- ❌ Smaller model для всех задач сразу. Routing > replacement.
Output
## Cost audit: {{agent_name}}
**Baseline:** {{current_cost}} × {{monthly_volume}} = $X/mo
## Top 3 levers
1. **Model routing Haiku/Sonnet** — saves ~$Y/mo (-60%), quality impact: 0%
2. **Prompt caching (system + examples)** — saves ~$Z/mo (-20%), zero risk
3. **RAG instead of stuffing docs** — saves ~$W/mo (-15%), quality +3%
## Quality guardrails
- Eval suite: N tests, current pass rate: X%
- Regression check: re-run на каждый merge
- Rollback trigger: score drop > 2%
## Action plan (week-by-week)
| Week | Change | Expected savings | Risk |
Deliverable
Cost audit + план оптимизации с оценкой savings, quality guardrails и порядком rollout (low-risk first).
Дизайн-токены из референса
Извлечь систему цветов, типографики, теней, радиусов и spacing из примера и оформить как токены.
Построение цветовой системы
От raw-палитры к семантическим токенам, темам и контрасту — с проверкой на edge-кейсах.
Spacing scale и вертикальный ритм
Базис 4/8, шкала отступов, вертикальный ритм типографики и допустимые исключения.