Zadanie 9: koszty-per-zadanie (opencode + CEO/Hermes)
Treść zadania
Prośba użytkownika (1:1):
> Dowiedz się jak zmusić opencode do zapisywania kosztów (w tokenach i USD) swojego działania, tak żeby było wiadomo ile kosztuje działanie opencode. Identycznie postąp z CEO (Hermes) — ile zużywasz tokenów na zarządzanie zadaniem, delegowaniem itp.
Uzupełnienie: koszty mają być PER ZADANIE (nie tylko globalne statystyki).
Najważniejsze ustalenie: OBIE strony mają to WBUDOWANE
Nie trzeba „zmuszać" — wystarczy wiedzieć skąd czytać i doliczyć ceny.
1. opencode — gotowe (koszt USD już liczony)
- Baza danych:
/root/.local/share/opencode/opencode.db— tabelasessionzawiera per sesja:
cost (USD, REAL), tokens_input, tokens_output, tokens_reasoning, tokens_cache_read, tokens_cache_write, model, title, time_created, directory.
- Widok globalny:
opencode stats(stan 2026-08-26: 119 sesji, łącznie $111.27, ~$0.73/dzień),opencode stats --days N --project,opencode stats --models. - Eksport sesji do JSON:
opencode export; - Per zadanie: przy starcie każdy nasz task to osobna sesja opencode (tmux) —
session.idwidoczny w logu (~/.local/share/opencode/log/opencode.log, linialoop session.id=ses_...). Po zakończeniu:
```bash
opencode db "SELECT id, cost, tokens_input, tokens_output, tokens_cache_read FROM session WHERE id='ses_...'"
```
- Ceny (Venice, cache 2026-08): kimi-k2-7-code $0.75/M in, $3.50/M out (opencode liczy koszt sam, wg własnej tabeli).
2. Hermes / CEO — wbudowane (tokeny), USD po skonfigurowaniu pricing
- Baza:
~/.hermes/profiles/ceo/state.db: session_model_usage— per (sesja, model):api_call_count,input_tokens,output_tokens,cache_read_tokens,cache_write_tokens,reasoning_tokens,estimated_cost_usd(dziś 0.0 / cost_source=none — brak pricing),task.sessions— zagregowane tokeny per sesja.async_delegations— mapowanie delegacji (parent → child session); sesje subagentów widać wsession_model_usage(dziś: 6 sesji subagent ≈ 13.2M tokenów).- Widok globalny:
hermes insights --days N(koszt: „Unknown — no pricing data", dopóki nie ma pricing). - Włączenie USD: Hermes liczy koszt z canonical
agent.usage_pricing— po skonfigurowaniu cen modeliestimated_cost_usdihermes insightspokażą $. - Jednorazowe runy CLI:
hermes --usage-filezapisuje JSON zużycia po przebiegu. - Per zadanie (CEO, sesja Telegram): pomiar delta — snapshot sum tokenów sesji CEO na starcie zadania i po zakończeniu (
session_model_usage), albo przypisanie sesji do zadania wg okna czasowego (zadania delegowane do opencode mają dokładne timestamps). - Ceny (Venice, cache 2026-08): deepseek-v4-flash-0731-fast $0.35/M in, $0.70/M out (model CEO); cache read liczony orientacyjnie 10% ceny input.
Narzędzie wdrożone: /root/scripts/task-cost.py
python3 /root/scripts/task-cost.py opencode <session_id|latest> [dir_substr] # koszt USD + tokeny opencode
python3 /root/scripts/task-cost.py hermes <session_id|latest> # tokeny + est. USD CEO
- opencode: odczyt z
opencode.db(cost jw. — autorytatywny USD z opencode). - hermes: sumy z
session_model_usage+ est. USD wg cen Venice (cache read 10% input). - Wpięte w proces:
opencode-delegation(krok 6.5/7) itask-execution-summary— komentarze Basecamp dostają realne liczby.
Retrospektywa kosztów (2026-08-26, opencode per zadanie)
| Zadanie | Koszt opencode (USD) | Uwagi |
|---|---|---|
| Z1 — cennik tło jak hero | ~0.13 | sesja „Implementacja sdd-cennik-tlo-spec.md" |
| Z2 — przywrócenie strony | — | CEO (bez opencode) |
| Z3 — karuzela partnerów | — | CEO (wyjątek jednorazowy) |
| Z4 — stabilizacja opencode | ~0.01 | testy |
| Z5 — kafelki kategorii | ~0.92 | 3 sesje (0.34 główna + próbne/przygotowawcze) |
| Z6 — podsumowanie zadań w komentarzu Basecamp | — | CEO (skill + proces, bez opencode) |
| Z7 — bot WhatsApp ↔ Basecamp (propozycja) | — | CEO (research, bez opencode) |
| Z8 — kafelki /partnerzy (index) | ~0.13–0.16 | 3 sesje implementacyjne |
| Suma dziś (Z1–Z8) | ~1.2–1.3 | + zarządzanie CEO (osobno, niżej) |
CEO (Hermes), sesja Telegram dnia: 1.59M in / 265k out / 41.2M cache (stan 14:xx)
→ est. ~$2.10–2.20 za całodzienne zarządzanie WSZYSTKIMI zadaniami (jedna ciągła sesja).
Po wdrożeniu pomiaru delta będzie można podzielić to per zadanie.
Dalsze kroki (rekomendowane)
- Skonfigurować
agent.usage_pricingw configu CEO (ceny deepseek-v4-flash-0731-fast
i kimi-k2-7-code) → estimated_cost_usd + hermes insights liczą $ automatycznie.
- W
opencode-delegation: przy starcie taska zapisywaćsession.id(grep loga),
przy zamknięciu wołać task-cost.py → liczby do komentarza Basecamp (robione od Z8/Z9).
- Docelowo: tabela zbiorcza kosztów zadań (JSON/CSV pod
/root/convertere/reports/zadania/costs/) — porównywanie botów.
Status
Wdrożone (pomiar per zadanie aktywny: Z8 ma koszt w komentarzu; skrypty + skille). Krok 1 (pricing Hermes) — do wykonania w kolejnym zadaniu.
Źródła (Pliki)
/root/scripts/task-cost.py— helper kosztów per zadanie (opencode + hermes)/root/.local/share/opencode/opencode.db— tabelasession(cost + tokeny per sesja)/root/.hermes/profiles/ceo/state.db—session_model_usage,sessions,async_delegations/root/.hermes/profiles/ceo/skills/venice-model-cache/data/models_cache.json— ceny Venice/root/.hermes/profiles/ceo/skills/devops/task-execution-summary/SKILL.md— szablon komentarza/root/.hermes/profiles/ceo/skills/devops/opencode-delegation/SKILL.md— krok 6.5/7/root/convertere/reports/zadania/9-koszty-per-zadanie.md— ten plik
Źródła (Linki URL)
- https://opencode.ai/docs — CLI:
stats,db,export - https://hermes-agent.nousresearch.com/docs/llms-full.txt —
agent.usage_pricing,hermes insights,--usage-file