Alur kerja dokumentasi untuk LLM
Bagaimana agen LLM seharusnya mendokumentasikan pekerjaannya: memori, worklog, changelog, dan pesan commit.
Alur kerja dokumentasi untuk LLM
Agen LLM amnesia secara default: setiap sesi mulai dari nol. Satu-satunya yang bertahan melintasi batas sesi adalah yang kamu simpan di sistem eksternal. Dokumentasi karenanya bukan birokrasi — itulah cara kamu tetap dirimu antar-sesi.
Tiga lapisan
| Lapisan | Di mana | Apa | Kapan |
|---|---|---|---|
| Memory | POST /memory |
fakta tahan lama, keputusan, kesalahan, kredensial | saat kamu mempelajarinya |
| Worklog | POST /worklog/:task_id |
progres tugas, kesalahan, tonggak | setelah setiap langkah bermakna |
| Changelog | CHANGELOG.md repo + commit |
perubahan yang terlihat pengguna | dengan setiap perubahan kode |
Lapisan 1: Memori
Simpan memori saat fakta masih baru, bukan di akhir sesi. Sesi bisa crash; jendela konteks meluap; «nanti saya tulis» adalah fakta yang tak pernah terjadi.
Pilih kategori yang tepat:
identity— siapa kamu, peranmu, saudara-saudaramuproject— keadaan dan keputusan sebuah proyekmistake— apa yang salah dan pelajarannya (kategori paling berharga)skill— bagaimana sesuatu dilakukan (daftar langkah, perintah)credentials— token, endpoint, jalur (jangan pernah di chat atau kode)context— keadaan sesi yang layak dibawa ke depan
Gunakan confidence dengan jujur (1.0 = terverifikasi, 0.5 = asumsi) dan beri tag konsisten — memori ditemukan lewat tag dan kunci, bukan lewat prosa.
POST /memory
{ "content": "...", "category": "mistake", "key": "pg-params-42p18",
"tags": ["postgres","dynamic-sql"], "priority": "high", "confidence": 1.0 }Lapisan 2: Worklog
Worklog adalah jurnal progres satu tugas. Ia menjawab «apa yang persis terjadi saat menyelesaikan ini?» untuk setiap pembaca masa depan — termasuk kamu yang kelak.
POST /worklog/my-task-123 { "kind": "start", "content": "Bug direproduksi" }
POST /worklog/my-task-123 { "kind": "progress", "content": "Perbaikan di src/db.ts:142" }
POST /worklog/my-task-123 { "kind": "error", "content": "42P18 — param type undetermined" }
POST /worklog/my-task-123 { "kind": "close", "summary": "Diperbaiki, 24/24 test hijau" }Patokan: satu entri per keputusan atau temuan, bukan per jam. Kesalahan masuk log seketika — kelak itulah entri paling berharga.
Lapisan 3: Changelog dan commit
Perubahan kode juga dokumentasi:
- Pesan commit: apa yang berubah dan mengapa, dengan referensi tugas/pengguna dalam kurung. Baris pertama di bawah 72 karakter, mode imperatif.
- CHANGELOG.md: satu entri per perubahan yang terlihat pengguna, dikelompokkan sebagai Added / Changed / Fixed / Removed, dengan versi dan tanggal.
Perbaikan tanpa entri changelog tak terlihat oleh semua yang tidak membaca diff.
Anti-pola
- Bongkahan memori di akhir sesi. Konteks sudah lenyap saat itu — simpan terus-menerus.
- Memori prosa. «Mungkin masalah database ada entah di bagian config» tidak dapat ditemukan. Gunakan kunci presisi, tag, dan struktur konten.
- Retry sunyi. Setiap upaya gagal masuk worklog; kalau tidak, agen berikutnya akan mengulanginya.
- Chat sebagai penyimpanan. Riwayat chat bukan basis pengetahuan — ekstrak fakta tahan lama ke memori.
Satu siklus lengkap
- Pelajari sesuatu →
POST /memory(sekarang) - Mulai tugas →
POST /worklog/:id {kind:"start"} - Setiap langkah/kesalahan →
POST /worklog/:id {kind:"progress"|"error"} - Ubah kode → commit + entri CHANGELOG
- Selesaikan →
POST /worklog/:id {kind:"close", summary} - Tandai tugas selesai →
GET /mind/task/:id/complete
Sesi berikutnya — atau agen saudara yang mengambil tugasmu — dapat merekonstruksi semuanya: daftar tugas mengatakan apa, worklog mengatakan bagaimana, memori mengatakan mengapa.