Lewati ke konten utama
Versi: 1.1

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:

LapisanSiapa menulisIsiContoh
AGENTS.mdKamuAturan & peta repo"test: npm test, jangan sentuh folder legacy/"
MemoryAgent (di-review kamu)Fakta yang dipelajari"API staging lambat, timeout harus 30 s"
SkillsKamu atau agentProsedur 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.

.claude/skills/release/SKILL.md
---
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:

  1. Isolasi konteks. Pencarian yang menyentuh 40 file akan meracuni konteks agent utama dengan puluhan ribu token; subagent menyerap kebisingan itu dan mengembalikan kesimpulannya saja.
  2. 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.

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.

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.