Skip to content
PПромтбук
RUEN
03Эвалюация

Cost optimization для агентов

Снижаем cost/request без потери качества: модель, кеш, контекст, batch. Что мерить и что НЕ оптимизировать.

Действуй как 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).

К подразделу «Эвалюация»
Похожие промты