Historia tylko dla członków
Kompletna architektura OpenClaw, która faktycznie się skaluje — pamięć, zadania crona, dashboard i błędy, które popełniają wszyscy
90% konfiguracji OpenClaw umiera w ten sam sposób. Nie z powodu naruszeń bezpieczeństwa (choć tak, do tego jeszcze dojdziemy). Nie z powodu kosztów API. Umierają, bo po dwóch tygodniach wrzucania każdego spotkania, każdego zadania, każdej przypadkowej myśli do pamięci agenta — zaczyna zapominać twoje imię.
Na przykład plik zapisu Skyrima, który został uszkodzony, bo zainstalowałeś 200 modów i liczyłeś na najlepsze.
⚡ Aktualizacja (20 lutego 2026): Ten przewodnik architektoniczny został napisany zanim Anthropic zbanował tokeny Claude Max OAuth. Poniższe wzorce (pamięć, cron, dashboard, umiejętności) się nie zmieniły — ale warstwa modelu tak.
Co się teraz zmieniło: Mój stack obsługuje Kimi K2.5 primary + MiniMax M2.5 fallback, przez OpenRouter na dwóch VPS za 5 dolarów miesięcznie (Hostinger + Hetzner). 200 dolarów miesięcznie → 15 dolarów. Architektura stała się prostsza — bez zarządzania OAuth, bez tańca z limitem cen. Pełna migracja: odbudowana za 15 dolarów.
Codziennie uruchamiam OpenClaw odkąd nazywał się jeszcze Clawdbot. Przebudowywałem architekturę trzy razy. Pierwsza wersja to bałagan płaskich plików markdown, które po 10 dniach zawaliły się pod własnym ciężarem. Druga była lepsza, ale nie miała poczucia czasu — mój agent pewnie odnosił się do spotkania ze stycznia, jakby miało miejsce dziś rano. Trzecią wersję dzielę się dziś i działa solidnie od tygodni.
Pełny szczegół: struktura pamięci, zadania cron, dashboard, szkolenie głosowe, zarządzanie API oraz kwestie bezpieczeństwa, które większość osób pomija. Brak teorii. To tylko system, którego używam codziennie do uruchamiania projektów z wiadomości na Slacku.
Dlaczego twój OpenClaw ciągle zapomina
Więc co się właściwie dzieje. Instalujesz OpenClaw, łączysz go ze Slackiem lub WhatsAppem, zaczynasz przekazywać informacje — spotkania, zadania, preferencje, kontekst projektu — i przez pierwsze kilka dni to jak magia. Twój własny Jarvis. Wtedy okno kontekstowe się zapełnia, zaczyna się kompresja pamięci i nagle twój agent myśli, że twój projekt Supabase to przepis kulinarny, który gdzieś sobie wymyślił.
To, co wszystko łączy, to plik indeksowy
Dodanie więcej pamięci tylko powiększa bałagan. To, co naprawdę zadziałało, to organizacja na maksa. Pomyśl o tym jak o zarządzaniu ekwipunkiem w każdym RPG — możesz nieść 200 przedmiotów, ale jeśli wszystko wrzucisz do jednej torby, nigdy nie znajdziesz eliksiru zdrowia, gdy zaczyna się walka z bossem.
Moja architektura używa sześciu folderów z wyraźną hierarchią:
- Soul/ — pliki tożsamości. Kim jest agent, jak się zachowuje, do jakich narzędzi ma dostęp. Karta postaci.
- user/ — kim jestem, moja strefa czasowa, moje preferencje, mój stos. Rzeczy, które nigdy się nie zmieniają. Informacje o zadaniach NPC.
- Daily/ — Living Daily Briefs. Jeden na dzień, aktualizowany w ciągu dnia, archiwizowany po 7 dniach.
- Projekty/ — szczegółowy kontekst aktywnych projektów. Praca agencyjna, buildy SaaS, pipeline treści.
- spotkania/ — podkategorizowane według typu (agencja, treść, wewnętrzna, zewnętrzna). Każde spotkanie otrzymuje podsumowanie, a nie pełny zapis.
- archiwum/ — wszystko starsze niż 7 dni. Niższy priorytet przy pobieraniu, nadal dostępny. Chłodnia. Poczekalnia /dev/null.
To, co wszystko łączy, to plik indeksowy. Znajduje się u podstawy folderu pamięci, działa jak spis treści.
Za każdym razem, gdy agent przetwarza nowe dane wejściowe, najpierw aktualizuje indeks — więc zawsze wie, gdzie szukać, zanim zacznie szukać.
Bez tego twój agent zasadniczo zajmuje się 400 plikami i liczy na najlepsze. (Spoiler: nie znajduje tego, czego potrzebujesz. Znajduje listę zakupów sprzed 2 tygodni i niedokończony prompt z crona.)grep -r
Teraz codzienne briefingi. Zasługują na osobny akapit, bo bez nich OpenClaw zapominał rzeczy między rankiem a wieczorem tego samego dnia. Wyobraź sobie, że mówisz swojemu programistowi o krytycznym błędzie o 10:00, a o 16:00 pyta cię, nad jakim projektem pracujesz. Tak wygląda bez codziennych briefingów.
Brief to dokument na żywo: tworzony o 7 rano z priorytetami, aktualizowany co 3 godziny z postępami, a na koniec dnia kończyny wynikami. Daje agentowi kotwicę czasową — poczucie "co się dziś wydarzyło", którego płaska pamięć po prostu nie potrafi zapewnić.
Potwierdzam to w Supabase zamiast polegać wyłącznie na obniżkach:
-- daily_briefs table
create table daily_briefs (
id uuid default gen_random_uuid() primary key,
brief_date date not null unique,
priorities jsonb default '[]',
completed jsonb default '[]',
notes text,
meeting_summaries jsonb default '[]',
archived boolean default false,
created_at timestamptz default now(),
updated_at timestamptz default now()
);
-- Auto-archive after 7 days
create or replace function archive_old_briefs()
returns void as $$
update daily_briefs
set archived = true
where brief_date < current_date - interval '7 days'
and archived = false;
$$ language sql;Po co się martwić bazą danych, skoro OpenClaw samodzielnie obsługuje pamięć
Ponieważ pliki markdown są cicho kompaktowane przez LLM. Jednego dnia twoje notatki ze spotkań są dostępne, następnego zostały połączone w niejasne podsumowanie, które ledwo rozpoznajesz. To jak git squash, ale nikt o to nie prosił i nie ma żadnego reflogu. Supabase daje mi dane do zapytań, które nie znikają. Poza tym mogę budować na tym dashboardy. (A jeśli potrzebujesz VPS-a, żeby uruchomić wszystko 24/7, korzystam z konfiguracji OpenClaw Contabo na jedno kliknięcie — więcej o tym później.)
Prace Crona, które uruchamiają wszystko, gdy śpię
Prace crona to moment, w którym OpenClaw przechodzi od "zaawansowanego chatbota" do prawdziwego agenta. Pomyśl o tym jak o programowaniu swojego NPC, żeby grindował, gdy jesteś offline. Oczywiście działa to tylko wtedy, gdy Twój agent działa 24/7 — dedykowany VPS zamiast laptopa, który przechodzi w tryb uśpienia za każdym razem, gdy zamykasz pokrywę. Mój harmonogram:
# openclaw cron config
crons:
- name: "morning-brief"
schedule: "0 7 * * *"
prompt: "Create today's daily brief. Pull my top 3 priorities
based on yesterday's incomplete tasks and today's calendar.
Save to daily/ folder and update the index."
- name: "brief-update"
schedule: "0 */3 * * *"
prompt: "Update today's daily brief with completed items,
new inputs, and any changes. Keep it concise."
- name: "meeting-sync"
schedule: "0 21 * * *"
prompt: "Pull today's meetings from Fathom. Categorize by
project. Save summaries to meetings/ folder. Cross-reference
with active projects."
- name: "day-wrap"
schedule: "0 3 * * *"
prompt: "Wrap up today. Archive briefs older than 7 days.
Summarize key outcomes. Prep context for tomorrow."
- name: "content-draft"
schedule: "0 9 * * 0"
prompt: "Draft this week's content based on recent projects,
wins, and observations. Use voice profile. Output to content/."
- name: "heartbeat"
schedule: "*/30 * * * *"
prompt: "Check Slack for unanswered messages. Rotate emails.
Flag calendar items in the next 2 hours."
- name: "weekly-compaction"
schedule: "0 2 * * 1"
prompt: "Consolidate last week's memory into a single weekly
summary. Remove redundant files. Update the index."Zakończenie o 3:00 nad ranem zamiast północy — celowe. Jeśli pracujesz do późna, nie chcesz, żeby wieczorna sesja była podzielona na dwa zadania. Ustawiłem to na 3 w nocy, bo, cóż, zdarza mi się pushować commity o 2:47 w nocy we wtorek i nie jestem z tego dumny, ale nie zamierzam udawać, że to się nie dzieje.
To cotygodniowe zagęszczenie uratowało mój zestaw przed samym sobą. Po 3 tygodniach bez niego moja pamięć/folder urosł do 400+ plików, a OpenClaw zaczynał się mylić, o którą "aktualizację projektu" chodziło mi o "aktualizację projektu". To było jak zapytać kogoś, o którym "John" mówisz w firmie, gdzie 40% pracowników nazywa się John. Poniedziałek 2 w nocy, skonsolidować wszystko z zeszłego tygodnia w jeden plik podsumowujący, posprzątaj resztę. Różnica jak dzień i noc.
W bardziej złożonych sprawach (jak potoki meeting-to-task) kieruję przez n8n webhooki zamiast prosić OpenClaw o bezpośrednie wywołania API. Agent wysyła ustrukturyzowany ładunek JSON do n8n, n8n obsługuje → powiadomień Fathom → Supabase. To znacznie bardziej niezawodne niż żeby LLM żonglował czterema endpointami naraz — najpierw próbowałem odwrotnie i poszło mniej więcej tak dobrze jak produkcyjne wdrożenie w piątkowe popołudnie.
Poprawka "API Amnesia"
# tools-reference.md (in soul/)
## Available APIs
- **Supabase**: REST at [URL], key in env, RLS enabled
- **n8n webhooks**: POST to [webhook-url] for complex flows
- **GitHub**: token in env, repos: [list]
- **Fathom**: meeting transcripts via /api/v1/meetings
## Rules
- NEVER ask me for API keys. They are in your environment.
- For database writes, ALWAYS use the Supabase REST API.
- For multi-step automations, trigger the n8n webhook.
- When unsure about a tool, check this file FIRST.Ten plik rozwiązał jeden z najbardziej irytujących problemów, jakie miałem. OpenClaw po prostu... czasem zapomina o własnych narzędziach. W trakcie sesji, po kompakcie kontekstu, agent poprosi cię o klucz API, którego używał dosłownie 20 minut temu. Jak deweloper, który zrobił własny i zastanawia się, dlaczego nic nie działa.rm -rf.env
Ponieważ ten plik znajduje się w soul/ (warstwie tożsamości agenta), jest ładowany z wysokim priorytetem w każdej sesji. To w zasadzie plik dla mózgu twojego agenta. Agent przestał prosić mnie o dane poświadczenia tego samego dnia, kiedy je dodałem. Czułem się głupio, że nie zrobiłem tego wcześniej..env
Debata o pulpitach
Powiem coś, co może mnie zniechęcić w społeczności OpenClaw: przestań budować dashboardy za pomocą narzędzi no-code, jeśli już umiesz programować.
Ostatnio jest fala tego zjawiska. Połącz się z Supabase, przeciągnij i upuść tablicę Kanban, podłącz API, wyślij tutorial na YouTube. Demonstracje wyglądają świetnie, filmy mają wyświetlenia, każdy buduje swój "system operacyjny".
Działa dobrze. Widziałem dema, wyglądają czysto.
Ale jeśli masz już Supabase w swoim stacku i wiesz, jak napisać komponent React, to dlaczego dodajesz zależność, której nie kontrolujesz? To jak instalowanie rozszerzenia VS Code, żeby napisać pętlę for. Za każdym razem, gdy platforma no-code aktualizuje swoje API lub zmienia ceny, to problem, który teraz musisz rozwiązać. Na dashboard.
Moje podejście — Next.js czytanie z tej samej instancji Supabase:
// app/dashboard/page.tsx
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
)
export default async function Dashboard() {
const { data: tasks } = await supabase
.from('tasks')
.select('*')
.order('updated_at', { ascending: false })
const columns = {
todo: tasks?.filter(t => t.status === 'todo') || [],
in_progress: tasks?.filter(t => t.status === 'in_progress') || [],
done: tasks?.filter(t => t.status === 'done') || [],
}
return (
<div className="grid grid-cols-3 gap-4 p-6">
{Object.entries(columns).map(([status, items]) => (
<Column key={status} title={status} tasks={items} />
))}
</div>
)
}Ten sam Kanban. Pełna kontrola. Wyruszyć do Vercel za 30 sekund. OpenClaw zapisuje do Supabase, dashboard odczytuje z Supabase. Bez middleware, bez dodatkowego okablowania, bez modlitwy, żeby usługa zewnętrzna nie zrezygnowała z Twojej ulubionej funkcji w przyszły wtorek.
Może jestem stronniczy, bo naprawdę lubię tworzyć frontendy w Claude Code i narzędzia bez kodu są dla mnie frustrujące — za każdym razem, gdy ich używam, czuję się, jakbym grał w przygodówkę point-and-click, gdzie logika łamigłówek nie ma sensu dla nikogo. Ale sedno pozostaje — jeśli potrafisz programować, to chyba powinieneś po prostu to zakodować. O jedną rzecz mniej, która może się zepsuć o 3 nad ranem, gdy już debugujesz coś innego.
Trening głosu: Nauka agenta, by nie brzmiał jak post 🤓 na LinkedIn
Moja praca przy tworzeniu treści przez pierwsze 2 tygodnie polegała na produkcji śmieci. W każdą niedzielę rano dostawałem szkic, który brzmiał jak "Cieszę się, że mogę ogłosić" a "Myśli? 👇 " — takie, które sprawiają, że przewijasz szybciej niż baner zgody na ciasteczka. Problem polegał na tym, że właśnie wrzuciłem 50 postów do pamięci i powiedziałem "naucz się mojego głosu." To tak nie działa.
Rozwiązały to adnotacje. Serio, to jest cały trik. Nie wyrzucaj po prostu surowych postów.
# voice-profile.md (in soul/)
## Style rules
- Short paragraphs. 2-3 sentences max.
- Open with a result or contrarian take, never a question
- Code examples from real projects, not toy demos
- Humor: dry, self-deprecating, dev references
- No dashes. No corporate speak.
## Top posts (annotated)
### Post 1 (2,400 impressions - worked because specific $ numbers)
[content]
### Post 2 (1,800 impressions - worked because unexpected analogy)
[content]
### Post 3 (900 impressions - thread structure carried it)
[content]Bez adnotacji agent uśrednia Twój styl — a średnia wszystkich twoich postów to najbardziej nijaka wersja ciebie. Dzięki nim wyczuwa to, co faktycznie działa — wzory, struktury, otwory, które przyciągają ludzi.
Proza wciąż wymaga poprawki, powiedziałbym, że doprowadza mnie do 70% drogi, ale jako pierwszy szkic oszczędza mi godziny w każdą niedzielę. To godziny, które mogę spędzić robiąc dosłownie cokolwiek innego, włącznie z wpatrywaniem się w terminal i udając, że jestem produktywny.
O viralowej architekturze 🦞 za 250 tys. dolarów
Być może widzieliście ten szum w tym tygodniu. Tweet wybuchł popularnością, twierdząc, że agencja o wartości 250 tys. dolarów miesięcznie działa całkowicie na konfiguracji OpenClaw — struktury pamięci, szablony zadań cron, szkolenie głosowe, niestandardowy dashboard. Tysiące osób komentuje, żeby wysłać im architekturę na priv. Szczyt energii "daj mi meta build".
Nikt nie zarabia 250 tys. dolarów miesięcznie dzięki konfiguracji OpenClaw
Spojrzałem na to. Architektura jest naprawdę solidna — wiele pomysłów na organizację pamięci pokrywa się z tym, co opisałem powyżej, a wzorce zadań cron są niemal identyczne jak moje. Dobre rzeczy, naprawdę przydatne.
Ale bądźmy szczerzy. Nikt nie zarabia 250 tys. dolarów miesięcznie dzięki swojej konfiguracji OpenClaw. To tak, jakby powiedzieć, że wygrałeś turniej dzięki klawiaturze. Osiągają sukces, bo mają klientów, dostarczają wyniki i finalizują transakcje. Agent AI sprawia, że jesteś szybszy. Nie zastępuje cię. Ludzie spieszący się z przepisywaniem dokładnej struktury folderów, myśląc, że to jakiś kod oszustwa — tak ta gra nie działa.
What is worth stealing from these setups: the memory hierarchy, the temporal anchoring with daily briefs, the API reference pattern. Borrow the principles, adapt them to your own stack and workflow. That’s what I did and it worked way better than when I tried to copy someone elses setup one-to-one.
Security. Please Actually Read This Part.
I know, I know. Security sections are the terms & conditions of tech articles — everybody scrolls past them. But this one’s different because the numbers are genuinely terrifying.
SecurityScorecard found over 135,000 OpenClaw instances exposed to the public internet this week.
Over 50,000 vulnerable to a known remote code execution bug. Yesterday — literally yesterday — OpenClaw pushed version 2026.2.12 patching 40+ vulnerabilities. SSRF in the gateway, directory traversal in skills, session hijacking via webhooks. Forty. Plus. That’s not a patch, that’s a rescue mission.
If you’re running anything like the setup I described, with Supabase creds, API keys, meeting transcripts, and business data flowing through your agent — you need to do this today:
- Bind to localhost, not . Default config exposes your agent to the entire internet. It's like leaving your SSH key in a public GitHub repo except the repo is your entire digital life.
0.0.0.0 - Enable gateway authentication. Default is wide open.
- Keep Row Level Security on in Supabase. Don’t disable RLS because “the API needs it.” Use service role keys with proper scoping.
- Audit your skills. Bitdefender found ~900 malicious packages on ClawHub. Install from source, verify before you trust.
- Run right now. The 2026.MM.DD patch is not optional.
openclaw update
Your agent has your meeting recordings, your database credentials, your business context. If the gateway is exposed, all of that is exposed too. Not trying to scare you, just — do it now, not “later this weekend.” Takes 10 minutes. 🔒
The Short Version
- Memory: 6 folders + index file. Daily briefs updated every 3 hours. Archive after 7 days. Back it up in Supabase so the LLM can’t silently delete your context.
- Automation: 6–7 cron jobs covering morning brief, updates, meeting sync, wrap-up, content drafting, heartbeat, weekly compaction.
- Dashboard: build it yourself if you can code. Next.js + Supabase + Vercel. Skip the no-code layer, it’s one more thing to maintain.
- Security: localhost, auth, RLS, audited skills, latest patches. Do it before you do anything else. If you need a VPS that handles all this out of the box, Contabo has a one-click OpenClaw deploy that comes pre-configured — it’s what I use.
The architecture isn’t the moat. Showing up every day and actually using it is. 🧱
Some links in this article may be affiliate links. If you sign up through them, I may earn a small commission at no extra cost to you.
The memory hierarchy, the agent constraints, and the production CLAUDE.md pattern from this article are all in a free kit. 3 files, 10 minutes.