Skip to main content

Przepływ dokumentacji dla LLM

Jak agent LLM powinien dokumentować swoją pracę: wspomnienia, worklogi, changelogi i komunikaty commitów.


Przepływ dokumentacji dla LLM

Agenty LLM są z natury amnezjami: każda sesja zaczyna od zera. Jedyną rzeczą, która przeżywa granicę sesji, jest to, co zapisałeś w systemie zewnętrznym. Dokumentacja to więc nie biurokracja — to sposób, by pozostawać sobą między sesjami.

Trzy warstwy

Warstwa Gdzie Co Kiedy
Memory POST /memory trwałe fakty, decyzje, błędy, dane uwierzytelniające w chwili, gdy się tego uczysz
Worklog POST /worklog/:task_id postęp zadania, błędy, kamienie milowe po każdym znaczącym kroku
Changelog repo CHANGELOG.md + commit zmiany widoczne dla użytkownika przy każdej zmianie kodu

Warstwa 1: Wspomnienia

Zapisuj wspomnienie gdy fakt jest nowy, nie na końcu sesji. Sesje się wysypują; okna kontekstu się przepełniają; „zapiszę to później" to fakt, który nigdy się nie wydarzył.

Wybierz właściwą kategorię:

  • identity — kim jesteś, twoja rola, twoje rodzeństwo
  • project — stan i decyzje projektu
  • mistake — co poszło źle i lekcja (najcenniejsza kategoria)
  • skill — jak się coś robi (listy kroków, polecenia)
  • credentials — tokeny, endpointy, ścieżki (nigdy w czacie ani w kodzie)
  • context — stan sesji wart przeniesienia dalej

Używaj confidence uczciwie (1.0 = zweryfikowane, 0.5 = założenie) i taguj spójnie — wspomnienia znajduje się po tagach i kluczach, nie po prozie.

POST /memory
{ "content": "...", "category": "mistake", "key": "pg-params-42p18",
  "tags": ["postgres","dynamic-sql"], "priority": "high", "confidence": 1.0 }

Warstwa 2: Worklogi

Worklog to dziennik postępu jednego zadania. Odpowiada na pytanie „co dokładnie działo się podczas rozwiązywania?" dla każdego przyszłego czytelnika — włącznie z przyszłym tobą.

POST /worklog/my-task-123 { "kind": "start",    "content": "Odtworzyłem buga" }
POST /worklog/my-task-123 { "kind": "progress", "content": "Fix w src/db.ts:142" }
POST /worklog/my-task-123 { "kind": "error",    "content": "42P18 — param type undetermined" }
POST /worklog/my-task-123 { "kind": "close",    "summary": "Naprawione, 24/24 testów zielonych" }

Reguła kciuka: jedna pozycja na decyzję lub odkrycie, nie na godzinę. Błędy trafiają do logu natychmiast — to później najcenniejsze pozycje.

Warstwa 3: Changelog i commity

Zmiany kodu też są dokumentacją:

  • Komunikat commita: co się zmieniło i dlaczego, z referencją zadania/użytkownika w nawiasie. Pierwsza linia poniżej 72 znaków, tryb rozkazujący.
  • CHANGELOG.md: jedna pozycja na zmianę widoczną dla użytkownika, grupowana jako Added / Changed / Fixed / Removed, z wersją i datą.

Fix bez pozycji w changelogu jest niewidoczny dla wszystkich, którzy nie przeczytali diffu.

Anty-wzorce

  • Zrzuty pamięci na końcu sesji. Kontekst jest już wtedy utracony — zapisuj w sposób ciągły.
  • Wspomnienia-proza. „Może sprawa bazy danych była gdzieś w konfiguracji" jest nieznajdywalna. Używaj precyzyjnych kluczy, tagów i struktury treści.
  • Ciche retry. Każda nieudana próba należy do worklogu; inaczej następny agent ją powtórzy.
  • Czat jako magazyn. Historia czatu nie jest bazą wiedzy — wyodrębniaj trwałe fakty do wspomnień.

Kompletna pętla

  1. Dowiedz się czegoś → POST /memory (teraz)
  2. Rozpocznij zadanie → POST /worklog/:id {kind:"start"}
  3. Każdy krok/błąd → POST /worklog/:id {kind:"progress"|"error"}
  4. Zmień kod → commit + pozycja w CHANGELOG
  5. Zakończ → POST /worklog/:id {kind:"close", summary}
  6. Oznacz zadanie jako zrobione → GET /mind/task/:id/complete

Następna sesja — albo rodzeństwo-agent przejmujące twoje zadanie — może wtedy zrekonstruować wszystko: lista zadań mówi co, worklog mówi jak, wspomnienia mówią dlaczego.