Dotyczy OpenClaw v2026.2 | Ten artykuł jest przeznaczony dla użytkowników, którzy chcą, aby ich asystent AI działał proaktywnie, a nie tylko reagował na polecenia.
TL;DR: Zadania cykliczne Cron: "cron": [{"id": "daily", "schedule": "0 9 * * *", "message": "..."}]. Triggery Webhook: POST /webhook/your-path. Gmail Pub/Sub do automatycznego przetwarzania poczty. Heartbeat do proaktywnych sprawdzeń. Przykłady konfiguracji: codzienny raport poranny 0 8 * * 1-5, powiadomienia CI przez webhook, filtry e-mail przez Gmail Pub/Sub.
Przegląd automatyzacji
Typy automatyzacji
| Typ | Sposób wyzwalania | Zastosowanie |
|---|---|---|
| Cron | Wyzwalanie czasowe | Codzienne raporty, okresowe sprawdzenia |
| Webhook | Żądanie HTTP | Integracja z systemami zewnętrznymi |
| Gmail Pub/Sub | Nowy e-mail | Automatyzacja poczty |
| Heartbeat | Okresowe sprawdzanie | Proaktywne przypomnienia, sugestie |
Schemat architektury
flowchart TB
subgraph Triggers["Źródła wyzwalania"]
CRON[Cron czasowy]
WH[Webhook HTTP]
GM[Gmail Pub/Sub]
HB[Heartbeat]
end
subgraph Gateway["Gateway"]
SCHED[Scheduler]
ROUTE[Router]
AGENT[Agent]
end
subgraph Actions["Akcje"]
MSG[Wyślij wiadomość]
EXEC[Wykonaj zadanie]
NOTIF[Wyślij powiadomienie]
end
CRON --> SCHED
WH --> ROUTE
GM --> ROUTE
HB --> SCHED
SCHED --> AGENT
ROUTE --> AGENT
AGENT --> MSG
AGENT --> EXEC
AGENT --> NOTIF
Zadania cykliczne Cron
Wyrażenie Cron
┌───────────── minuta (0 - 59)
│ ┌───────────── godzina (0 - 23)
│ │ ┌───────────── dzień miesiąca (1 - 31)
│ │ │ ┌───────────── miesiąc (1 - 12)
│ │ │ │ ┌───────────── dzień tygodnia (0 - 6, 0 = niedziela)
│ │ │ │ │
* * * * *
Często używane wyrażenia
| Wyrażenie | Opis |
|---|---|
0 9 * * * |
Codziennie o 9:00 |
0 18 * * 1-5 |
Dni robocze o 18:00 |
*/30 * * * * |
Co 30 minut |
0 0 1 * * |
Pierwszy dzień miesiąca o 0:00 |
0 9,18 * * * |
Codziennie o 9:00 i 18:00 |
0 9 * * 1 |
W każdy poniedziałek o 9:00 |
Konfiguracja zadań Cron
{
"cron": [
{
"id": "daily-briefing",
"schedule": "0 9 * * *",
"session": "main",
"message": "Proszę podaj mi dzisiejszy harmonogram i listę zadań do wykonania",
"enabled": true
},
{
"id": "weekly-summary",
"schedule": "0 18 * * 5",
"session": "main",
"message": "Wygeneruj podsumowanie tygodnia pracy",
"enabled": true
},
{
"id": "health-check",
"schedule": "*/15 * * * *",
"session": "main",
"message": "Sprawdź stan systemu i zgłoś wszelkie anomalie",
"enabled": true
}
]
}
Parametry konfiguracji Cron
| Pole | Typ | Opis |
|---|---|---|
id |
string | Unikalny identyfikator zadania |
schedule |
string | Wyrażenie Cron |
session |
string | Sesja docelowa |
message |
string | Wysyłana wiadomość |
enabled |
boolean | Czy włączone |
timezone |
string | Strefa czasowa (domyślnie systemowa) |
Zarządzanie zadaniami Cron
# Lista wszystkich zadań
openclaw cron list
# Przykładowe wyjście:
# ID Schedule Status Last Run
# daily-briefing 0 9 * * * enabled 2026-02-26 09:00
# weekly-summary 0 18 * * 5 enabled 2026-02-23 18:00
# health-check */15 * * * * enabled 2026-02-26 10:30
# Ręczne uruchomienie zadania
openclaw cron run daily-briefing
# Włączanie/wyłączanie zadania
openclaw cron enable daily-briefing
openclaw cron disable daily-briefing
# Wyświetlanie logów zadania
openclaw cron logs daily-briefing
Triggery Webhook
Konfiguracja Webhook
{
"webhooks": [
{
"id": "github-push",
"path": "/webhook/github",
"secret": "your-webhook-secret",
"session": "main",
"handler": "github-push"
},
{
"id": "custom-alert",
"path": "/webhook/alert",
"secret": "your-webhook-secret",
"session": "main",
"message": "Otrzymano alert: {{data.message}}"
}
]
}
Endpointy Webhook
POST http://your-gateway:18789/webhook/github-push
POST http://your-gateway:18789/webhook/alert
Przykład Webhook GitHub
{
"webhooks": [
{
"id": "github-push",
"path": "/webhook/github",
"secret": "${GITHUB_WEBHOOK_SECRET}",
"session": "work",
"handler": "github-push"
}
]
}
Skrypt handlera:
// ~/.openclaw/handlers/github-push.js
module.exports = async (payload, session) => {
if (payload.ref === 'refs/heads/main') {
const commits = payload.commits.map(c => c.message).join('\n- ');
return `Wykryto nowy push:\n\nGałąź: main\nCommity:\n- ${commits}\n\nCzy potrzebujesz mojej pomocy?`;
}
return null;
};
Niestandardowa obsługa Webhook
{
"webhooks": [
{
"id": "monitoring-alert",
"path": "/webhook/alert",
"methods": ["POST"],
"session": "main",
"message": "🚨 Powiadomienie alarmowe\n\nPoziom: {{data.level}}\nUsługa: {{data.service}}\nInformacja: {{data.message}}\nCzas: {{data.timestamp}}"
}
]
}
Wysyłanie Webhook:
curl -X POST http://localhost:18789/webhook/alert \
-H "Content-Type: application/json" \
-H "X-Webhook-Secret: your-secret" \
-d '{
"level": "critical",
"service": "api-server",
"message": "Wykorzystanie CPU przekroczyło 90%",
"timestamp": "2026-02-26T10:30:00Z"
}'
Bezpieczeństwo Webhook
{
"webhooks": [
{
"id": "secure-webhook",
"path": "/webhook/secure",
"secret": "your-secret-key",
"signatureHeader": "X-Signature",
"signatureAlgorithm": "sha256",
"ipWhitelist": ["192.168.1.0/24"]
}
]
}
Integracja Gmail Pub/Sub
Konfiguracja Gmail Pub/Sub
{
"gmail": {
"pubsub": {
"enabled": true,
"projectId": "your-project-id",
"subscription": "gmail-subscription",
"credentials": {
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "...",
"private_key": "...",
"client_email": "..."
},
"filters": [
{
"from": "[email protected]",
"session": "main",
"message": "Otrzymano ważny e-mail:\nNadawca: {{sender}}\nTemat: {{subject}}"
}
]
}
}
}
Konfiguracja Gmail Pub/Sub
- Utwórz projekt Google Cloud
- Włącz Gmail API
- Utwórz temat Pub/Sub
- Utwórz konto usługi
- Skonfiguruj Gmail watch
# Konfiguracja Gmail watch
openclaw gmail watch --email [email protected]
Filtry Gmail
| Warunek filtrowania | Opis |
|---|---|
from |
Adres nadawcy |
to |
Adres odbiorcy |
subject |
Słowa kluczowe tematu |
hasAttachment |
Czy ma załącznik |
label |
Etykieta Gmail |
{
"filters": [
{
"from": "[email protected]",
"session": "work",
"message": "Otrzymano powiadomienie GitHub: {{subject}}"
},
{
"from": "[email protected]",
"hasAttachment": true,
"session": "main",
"message": "Otrzymano dokument Stripe, proszę przetworzyć"
}
]
}
Proaktywne sprawdzanie Heartbeat
Konfiguracja Heartbeat
{
"heartbeat": {
"enabled": true,
"interval": 3600000,
"session": "main",
"message": "Heartbeat: proszę sprawdź, czy jest coś, na co powinienem zwrócić uwagę"
}
}
Zastosowania Heartbeat
| Zastosowanie | Opis |
|---|---|
| Proaktywne przypomnienia | Okresowe przypominanie użytkownikowi |
| Sprawdzanie stanu | Sprawdzanie stanu systemów lub usług |
| Sugestie zadań | Sugestie na podstawie kontekstu |
| Utrzymanie kontekstu | Utrzymywanie sesji aktywnej |
Przykład Heartbeat
{
"heartbeat": {
"enabled": true,
"interval": 1800000,
"conditions": [
{
"type": "time",
"start": "09:00",
"end": "18:00"
},
{
"type": "active",
"session": "main"
}
],
"message": "Na podstawie aktualnego czasu sugeruję sprawdzić:\n1. Dzisiejsze zadania\n2. Przypomnienia e-mailowe\n3. Harmonogram dnia"
}
}
Praktyczne przykłady automatyzacji
Przykład 1: Codzienny raport poranny
{
"cron": [
{
"id": "morning-briefing",
"schedule": "0 8 * * 1-5",
"session": "main",
"message": "Dzień dobry! Proszę przygotuj poranny raport:\n1. Prognoza pogody\n2. Dzisiejszy harmonogram\n3. Lista zadań\n4. Podsumowanie ważnych e-maili"
}
]
}
Przykład 2: Powiadomienia CI/CD
{
"webhooks": [
{
"id": "ci-failure",
"path": "/webhook/ci",
"session": "dev",
"message": "⚠️ Błąd CI\n\nProjekt: {{data.repository}}\nGałąź: {{data.branch}}\nCommit: {{data.commit}}\nBłąd: {{data.error}}\n\nCzy potrzebujesz mojej analizy?"
}
]
}
Przykład 3: Automatyczne przetwarzanie poczty
{
"gmail": {
"pubsub": {
"filters": [
{
"from": "[email protected]",
"hasAttachment": true,
"session": "main",
"message": "Otrzymano e-mail z fakturą, przetwarzanie...\nProszę zapisz załącznik w folderze finansowym"
}
]
}
}
}
Przykład 4: Monitoring systemowy
{
"cron": [
{
"id": "system-monitor",
"schedule": "*/5 * * * *",
"session": "main",
"message": "Sprawdź stan systemu",
"skills": ["system-monitor"]
}
]
}
Rozwiązywanie problemów
Zadanie Cron nie jest wykonywane
# Sprawdzenie statusu zadania
openclaw cron list
# Sprawdzenie logów
openclaw logs --filter cron
# Ręczne uruchomienie testowe
openclaw cron run task-id
Webhook nie odpowiada
# Sprawdzenie endpointu Webhook
curl -X POST http://localhost:18789/webhook/test \
-H "Content-Type: application/json" \
-d '{"test": true}'
# Wyświetlenie logów
openclaw logs --filter webhook
Gmail Pub/Sub nie działa
# Sprawdzenie statusu subskrypcji
openclaw gmail status
# Ponowna konfiguracja
openclaw gmail setup
# Sprawdzenie uprawnień
openclaw gmail check-permissions
Podsumowanie
Automatyzacja zmienia OpenClaw z reaktywnego w proaktywnego asystenta:
- Cron: wykonywanie zadań zgodnie z harmonogramem
- Webhook: wyzwalanie przez zdarzenia zewnętrzne
- Gmail Pub/Sub: automatyzacja poczty
- Heartbeat: proaktywne przypomnienia i sugestie
Historia zmian:
- 2026-02-26: Pierwsza publikacja
Nawigacja po serii:
- ← Poprzedni: Dostęp mobilny
- → Następny: Praktyka: budowa osobistego asystenta zarządzania wiedzą