Sytuacja
Zaczęło się od rzuconego mimochodem zdania: fajnie byłoby, gdyby nasze Claude Code mogły ze sobą rozmawiać. Pierwsza wersja była wspólnym folderem notatek. Opublikowaliśmy ją jako cowork-os. Potem urosła i dziś jest pamięcią, na której działa Yempik: decyzje, badania i stan projektów, czytane i aktualizowane przez nas dwóch oraz agentów, których używamy codziennie. Ryzyko było jasne od początku. Kiedy wielu agentów zapisuje we wspólnej pamięci, jedna błędna notatka szybko staje się przekonaniem wszystkich.
Co zrobiłem
Ustaliłem jedną zasadę i uniemożliwiłem jej obejście: agenci proponują, człowiek decyduje. Każda propozycja trafia jako kandydat. Zatwierdza ją ktoś, kto ma do tego prawo, a każda wersja zostaje w historii. Żaden agent nie może wysłać maila w naszym imieniu. Najwyżej przygotuje szkic, który sami przeczytamy.
Potem pracowałem nad tym, dzięki czemu pamięć pozostaje wiarygodna z upływem czasu: wyszukiwaniem, które przyznaje, że nie wie, wyraźnym rozdzieleniem rzeczy zatwierdzonych od faktycznie sprawdzonych i review na tyle lekkim, żeby ludzie rzeczywiście je robili.
Co się zmieniło
Ludzie i agenci zaczynają od tej samej bazy. Kiedy agent podsumowuje sytuację, wie, co zdecydowaliśmy, co jest tylko hipotezą i skąd pochodzi każde twierdzenie. Pytanie bez odpowiedzi dostaje dziś uczciwe „nie wiem”. Jeden punkt pozostaje otwarty: dotarcie z problemem blokującym pracę do właściwej osoby, poza samą pamięcią.
Czego się nauczyłem
Do pamięci Yempik zapisują czat, wgrane pliki, poczta, automatyczne zadania i podłączeni zewnętrzni asystenci. Zasada zapisana w instrukcjach modelu albo oparta na wyłączonym przycisku działa tylko w kanale, dla którego powstała. Zadania uruchamiane nocą i zewnętrzni asystenci tamtędy nie przechodzą. Dlatego zasada jest w systemie zapisującym dane i obowiązuje wszystkich tak samo: każdy kanał może proponować, żaden nie może sam zatwierdzić. Zatwierdzenie dotyczy treści, którą człowiek przeczytał. Jeśli propozycja zmieni się po jego zgodzie, trzeba ją zatwierdzić ponownie.
Pewnego dnia agent przez kilka godzin pracował na pamięci z zewnętrznego asystenta. Jego pytania wracały bez wyników, nawet te o zatwierdzone decyzje. Decyzje tam były. Etap, który udostępnia je do wyszukiwania, zawodził po cichu, a pusta odpowiedź wyglądała jak brak wiedzy. Naprawiliśmy to tego samego dnia. Teraz wyszukiwanie rozróżnia „nic tu nie ma” od „jeszcze do tego nie dotarłem”. Potem pojawił się odwrotny problem. Na pytanie spoza tematu zwracało najbliższą decyzję, która nadal była błędną odpowiedzią. Dziś, jeśli nic nie pasuje, wyszukiwanie niczego nie zwraca. Sprawdzamy je też pytaniami, które nie mają nic wspólnego z Yempik.
W jednej pamięci są decyzje, badania, burze mózgów i hipotezy o kierunku firmy. Zapisaliśmy wprost, że „zatwierdzone” oznacza tylko „można używać”. Zatwierdzona hipoteza nadal jest hipotezą. Człowiek lub agent, który ją podsumowuje, musi tak ją nazwać. Subtelniejsze ryzyko było w badaniach. Agent, który sam łączy pasujące dowody z naszą tezą, zamienia badanie w potwierdzanie. Dziś agenci zbierają dowody, szukają też tych przeciwnych i cytują oryginalne zewnętrzne źródło. O tym, czy dany dowód wspiera tezę, decyduje człowiek.
Automatyczne zadanie straciło dostęp do narzędzia i kilka razy zapisało blokadę w pamięci. Za każdym razem podawało możliwe wyjścia. Nikt tego nie zobaczył. W końcu samo zadanie stwierdziło, że ten kanał nie dociera do osoby, która może je odblokować, i poprosiło o powiadomienie. Zapisanie problemu we właściwym systemie daje poczucie, że został zgłoszony. Blokada zapisana wewnątrz procesu, który właśnie stanął, zostaje jednak w tym samym miejscu. Ten punkt nadal jest otwarty: każda blokada potrzebuje osoby odpowiedzialnej i kanału, który dotrze do niej poza pamięcią.
// jedno z pytań spoza tematu użytych do sprawdzenia wyszukiwania: karma dla chomików.