Как 11 AI-агентов чуть не сожгли бюджет проекта
OhMyCHE v4 — это 11 AI-агентов (Sisyphus, Oracle, Librarian, Hephaestus и другие), которые работают через OpenRouter. Каждый запрос к агенту — это вызов API. Без кеширования каждый повторный запрос стоил тех же денег, что и первый.
«Мы решили использовать бесплатные модели OpenRouter, чтобы сократить расходы. Но без кеширования каждый запрос сжигал наши токены. Деньги утекали как песок сквозь пальцы.»
— Из хроник OhMyCHE
Проблема: OpenCode и oh-my-openagent делали запросы напрямую к OpenRouter без заголовка X-OpenRouter-Cache: true. Каждый вызов — полная стоимость, даже если это повтор того же запроса 2 секунды назад.
«Я запоминаю всё. Каждый токен, каждый промпт, каждый ответ. И возвращаю их мгновенно — бесплатно.»
Родился Caching Man — супергерой, чья сила в Response Caching (X-OpenRouter-Cache) и Prompt Caching на стороне провайдера (DeepSeek, OpenAI, Gemini).
Мои суперсилы:
X-OpenRouter-Cache: true гарантирует, что любой повторный запрос — бесплатно (prompt=0, completion=0). Работает для всех моделей и провайдеров. TTL: 5 минут.
Секретное оружие Caching Man — ревёрс-прокси на Python/aiohttp, который перехватывает каждый запрос к OpenRouter.
http://127.0.0.1:8089X-OpenRouter-Cache: trueX-OpenRouter-Cache-TTL: 300https://openrouter.aiinfra/proxy.py — сам прокси (220 строк)infra/io.ohmyche.openrouter-proxy.plist — launchd автозапускOhMyCHE/configs/opencode.json — baseURL изменёнinfra/.env.example — OPENROUTER_BASE_URLskills/image-service/config/settings.json — обновлён{
"openrouter": {
"options": {
"baseURL": "http://127.0.0.1:8089",
"apiKey": "$OPENROUTER_API_KEY"
}
}
}
| Запрос | Prompt | Cached | Write | Провайдер | Статус | Стоимость |
|---|---|---|---|---|---|---|
| #1 Первый (3K токенов) | 5,460 | 0 | 0 | DeepInfra | ❌ MISS | $0.00230 |
| #2 Response Cache HIT | 0 | — | — | — | ✅ FREE! | $0.00 |
| #3 DeepSeek Prompt Cache | 1,818 | 1,792 | 0 | DeepInfra ✓ | ✅ 98.6% | ~$0.00007 |
Проблема: OpenRouter динамически маршрутизирует deepseek/deepseek-chat через разных провайдеров (DeepInfra, Novita и др.). DeepInfra поддерживает DeepSeek Prompt Caching, Novita — нет. Мы не управляем выбором провайдера напрямую (используем :free модели).
Решение: X-OpenRouter-Cache (Response Caching) работает всегда, независимо от провайдера. А для DeepSeek Prompt Caching — sticky routing OpenRouter со временем направляет на DeepInfra (кеш-совместимого провайдера).
Итог: Response Caching = 100% надёжность + $0 на повтор. Prompt Caching = бонус до 98.6% при попадании на DeepInfra.
Добавлен baseURL для провайдера openrouter:
"openrouter": {
"options": {
"baseURL": "http://127.0.0.1:8089",
"apiKey": "$OPENROUTER_API_KEY"
}
}
OPENROUTER_BASE_URL теперь указывает на прокси:
OPENROUTER_BASE_URL=http://127.0.0.1:8089
Все base_url в settings.json переписаны на прокси:
"base_url": "http://127.0.0.1:8089"
Прокси запускается при входе в систему через launchd:
cp infra/io.ohmyche.openrouter-proxy.plist \ ~/Library/LaunchAgents/ launchctl load ~/Library/LaunchAgents/...
infra/proxy.py — проксиinfra/io.ohmyche.openrouter-proxy.plistOhMyCHE/configs/opencode.jsonohmyche4/configs/opencode.jsonomch32/config/opencode.jsoninfra/.env.exampleimage-service/config/settings.jsonapp/ai_engine/llm/client.pyapp/ai_engine/vision.pyapp/ai_engine/transcription.pyapp/knowledge/memory_service.pyТеперь все 11 AI-агентов OhMyCHE v4 работают через прокси с кешированием. Повторные запросы — бесплатно. Prompt caching DeepSeek — до 98.6% токенов кешированы. Деньги больше не горят.
«Кешируйте. Экономьте. Побеждайте.»
— Caching Man