Memory, Skills & Subagents
Context Engineering menutup dengan masalah: konteks itu fana β habis sesi, hilang semua. Halaman ini membahas tiga mekanisme yang membuat agent "tumbuh" melampaui satu sesi: memory, skills, dan subagents.
Memory: fakta yang bertahan antar sesiβ
Memory = file yang ditulis agent tentang apa yang ia pelajari, dimuat kembali di sesi berikutnya. Implementasinya sederhana (direktori berisi Markdown) tapi efeknya besar: agent yang minggu lalu belajar "deploy staging suka gagal karena env var X" tidak mengulang kesalahan yang sama minggu ini.
Hierarki pengetahuan persisten, dari yang paling kamu kendalikan:
| Lapisan | Siapa menulis | Isi | Contoh |
|---|---|---|---|
| AGENTS.md | Kamu | Aturan & peta repo | "test: npm test, jangan sentuh folder legacy/" |
| Memory | Agent (di-review kamu) | Fakta yang dipelajari | "API staging lambat, timeout harus 30 s" |
| Skills | Kamu atau agent | Prosedur lengkap | "cara release versi baru" (lihat bawah) |
:::warning Memory perlu dikebersihankan Memory yang salah lebih buruk dari tidak ada memory β agent akan percaya diri berdasar fakta basi. Jadwalkan review isi memory (bisa oleh agent lain β pola di Automation Lanjutan), dan hapus entri yang tidak lagi benar. :::
Skills: prosedur dalam bentuk Markdownβ
Skill = file Markdown berisi instruksi lengkap untuk satu jenis task, dimuat hanya saat relevan (progressive disclosure β deskripsi singkatnya selalu terlihat, isi penuh dibaca saat dibutuhkan). Ini format yang dipopulerkan Claude Code (Agent Skills) dan diadopsi luas β Hermes Agent bahkan menulis skill-nya sendiri: tiap kali menyelesaikan task baru, ia menyimpan prosedurnya sebagai skill file untuk dipakai ulang.
---
name: release
description: Rilis versi baru ke npm - bump versi, changelog, tag, publish
---
# Cara rilis
1. Pastikan `main` hijau: `npm run check && npm test`
2. Bump versi: `npm version <patch|minor|major>` sesuai isi perubahan
3. Update CHANGELOG.md: pindahkan Unreleased ke versi baru
4. `git push --follow-tags` lalu tunggu CI publish
5. Verifikasi: `npm view <paket> version` menunjukkan versi baru
Bedanya dengan AGENTS.md: AGENTS.md = aturan yang selalu berlaku (dimuat tiap sesi); skill = prosedur yang kadang dipakai (dimuat saat task cocok). Memindahkan prosedur dari AGENTS.md ke skills menjaga konteks tetap ramping.
Pola pertumbuhan yang disarankan: setiap kali kamu menjelaskan prosedur yang sama ke agent untuk kedua kalinya, jadikan skill. Setelah terbiasa, balik arahnya β minta agent menulis draft skill dari task yang baru ia selesaikan, kamu tinggal review. Ini cara "team AI"-mu menumpuk pengetahuan institusional seperti team manusia.
Subagents: membagi kerja tanpa mengotori konteksβ
Subagent = agent yang dispawn oleh agent utama untuk satu sub-task, dengan konteks terpisah, lalu melapor ringkasannya saja.
ββ subagent A: "cari semua pemakaian API lama" ββ
agent utama βββββββΆβ (baca 40 file, konteks sendiri) ββββΆ laporan 10 baris
(orchestrator) ββββββββββββββββββββββββββββββββββββββββββββββββββ
β ββ subagent B: "audit test coverage modul auth" ββ
ββββββββββββΆβ (jalankan coverage, konteks sendiri) ββββΆ laporan 5 baris
ββββββββββββββββββββββββββββββββββββββββββββββββββ
Dua alasan memakai subagent:
- Isolasi konteks. Pencarian yang menyentuh 40 file akan meracuni konteks agent utama dengan puluhan ribu token; subagent menyerap kebisingan itu dan mengembalikan kesimpulannya saja.
- Paralelisme. Sub-task independen berjalan bersamaan β riset, audit, atau eksplorasi multi-arah.
Kapan tidak memakai subagent:
- Task yang butuh konteks penuh percakapan (subagent baru tidak tahu apa yang sudah dibicarakan β kecuali tool-mu mendukung fork/inherit context).
- Task tulis-menulis di file yang sama β dua agent mengedit file yang sama = konflik. Untuk paralelisme penulisan kode, pakai git worktrees, bukan subagents.
- Task kecil yang selesai dalam 2β3 tool call β overhead spawn lebih mahal dari manfaatnya. Jangan jadi "subagent maximalist"; mayoritas task harian tidak butuh fan-out.
- Claude Code
- opencode
- oh-my-pi
Subagent bawaan (Explore, Plan, general-purpose) dipakai otomatis; custom subagent didefinisikan sebagai Markdown di .claude/agents/<nama>.md dengan frontmatter (deskripsi, tools, model). Claude memilihnya berdasarkan deskripsi, atau kamu sebut eksplisit.
Mendukung agent utama + subagent yang dikonfigurasi di opencode.json (bagian agent), masing-masing dengan model, prompt, dan permission sendiri. Panggil dengan menyebut @<nama-agent> di prompt.
Mendukung subagents dan hindsight memory (agent menuliskan pelajaran setelah task). Konfigurasi mengikuti pola pi; cek dokumentasi repo untuk sintaks terkini.
Tiga mekanisme, satu gambarβ
SESI HARI INI SESI BESOK
βββββββββββββββββββββββββββββ βββββββββββββββββββββββββ
β konteks (fana) β β konteks (baru, bersih)β
β ββ AGENTS.md βββββββββββΌββ kamu βββΌββΆ AGENTS.md β
β ββ memory/*.md βββββββββββΌβ agent βββΌββΆ memory/*.md β
β ββ skills/ βββββββββββΌββ siapa ββΌββΆ skills/ β
β ββ kerja + subagents β saja β β
βββββββββββββββββββββββββββββ βββββββββββββββββββββββββ
yang tidak ditulis ke file = hilang saat sesi berakhir
Prinsipnya satu: yang ingin bertahan, tuliskan ke file. Git adalah database memory terbaik yang sudah kamu punya.
Kenapa ini penting untuk playbookβ
Pola "satu orang = satu team" berdiri di atas tiga hal ini: skills adalah SOP team-mu, memory adalah pengalaman kolektifnya, subagents (plus worktrees) adalah anggota team-nya. Review loop di playbook bahkan memakai subagent sebagai reviewer independen β konteks bersih membuat review-nya jujur, tidak terkontaminasi asumsi si penulis kode.
Lanjutβ
β MCP: protokol standar yang memberi agent-mu tools baru tanpa menulis integrasi sendiri.