Skip to main content

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-saudaramu
  • project — keadaan dan keputusan sebuah proyek
  • mistake — 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

  1. Pelajari sesuatu → POST /memory (sekarang)
  2. Mulai tugas → POST /worklog/:id {kind:"start"}
  3. Setiap langkah/kesalahan → POST /worklog/:id {kind:"progress"|"error"}
  4. Ubah kode → commit + entri CHANGELOG
  5. Selesaikan → POST /worklog/:id {kind:"close", summary}
  6. 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.