Lekcja 24 · krok 2około 40 min pracy

Jedno zadanie cykliczne i rachunek za nie

Ćwiczenie do lekcji Harmonogramy i cron: zadania cykliczne bez zalewu wiadomości. Teorię masz za sobą — teraz wykonaj to na własnym agencie albo w dowolnym czacie z modelem. Bez tego kroku kurs zostaje wiedzą, która nie zmienia niczego w Twojej pracy.

Co powinieneś już wiedzieć z teorii

  • Cron działa w procesie Gateway, a zadania i historia leżą w SQLite. Gateway wyłączony to zadanie, które nie wystartuje — crontab systemowy o nim nie wie.
  • Znacznik czasu bez strefy jest traktowany jako UTC, a wyrażenie cron bez --tz używa strefy hosta Gateway. Flaga --tz działa z --at i --cron, ale nie z --every.
  • Typy ładunku wykluczają się: --system-event nie wywołuje modelu, --message kosztuje tokeny, --command uruchamia proces bez modelu, a --script wymaga cron.triggers.enabled i działa z pełną polityką narzędzi agenta.
  • Heartbeat domyślnie chodzi co 30 minut (godzinę przy OAuth lub tokenie), odpowiada HEARTBEAT_OK i — w odróżnieniu od crona — nie zakłada rekordów w rejestrze zadań w tle.

Co masz zrobić

Załóż jedno zadanie cron, które robi coś użytecznego raz dziennie, i doprowadź je do stanu, w którym znasz jego godzinę, koszt i sposób wyłączenia. Zacznij od typu ładunku: jeśli zadanie tylko sprawdza stan, użyj --command i nie płać za model. Przed pierwszym nocnym przebiegiem odpal je ręcznie przez openclaw cron run <jobId> --wait, żeby nie czekać do rana na informację, że adres kanału był zły.

Mam zadanie, które robię ręcznie raz dziennie: [opisz je własnymi słowami — skąd biorę dane, co sprawdzam, komu to wysyłam i o której]. Zaproponuj dla niego komendę openclaw cron create: dobierz typ ładunku (--system-event, --message, --command albo --script), tryb sesji, strefę czasową i sposób dostarczenia wyniku. Uzasadnij wybór ładunku pod kątem tego, czy potrzebny jest model. Policz, ile przebiegów wyjdzie na dobę i na miesiąc. Nie wymyślaj flag ani kluczy konfiguracyjnych spoza dokumentacji.

Gotowe, gdy:

Gdzie to się najczęściej sypie

Zanim uznasz ćwiczenie za zrobione, sprawdź, czy nie wpadłeś w któreś z tych miejsc. Każde widzieliśmy więcej niż raz.

  • Dodanie --tz do zadania z --every. Flaga strefy jest poprawna wyłącznie z --at i --cron, więc przy stałym odstępie albo zostanie odrzucona, albo nie zrobi tego, czego oczekujesz — a Ty przez tydzień będziesz szukał błędu w wyrażeniu.
  • Założenie zadania cron na laptopie, który wieczorem idzie spać. Scheduler żyje w procesie Gateway, więc zamknięta pokrywa oznacza brak przebiegu, a nie przesunięcie go na później.
  • Ustawienie --announce na każdym zadaniu „na wszelki wypadek”. Przy zadaniu co pięć minut to 288 wiadomości na dobę; --no-deliver zostawia agentowi możliwość wysłania czegoś narzędziem message tylko wtedy, gdy naprawdę ma treść.
  • Zostawienie heartbeatu w pełnej sesji głównej. Przy 48 przebiegach na dobę i rzędzie stu tysięcy tokenów na przebieg rachunek rośnie w tle, a wystarczy isolatedSession razem z lightContext.

Nie masz jeszcze na czym ćwiczyć?

Agent w chmurze EU startuje w około minutę. Pierwsza subskrypcja pakietu Premium ma 5 dni za darmo, a kurs czytasz dalej niezależnie od tego.

Zobacz plany