Halo, Sobat Kampus dan para tech enthusiast! Buat kalian yang sering banget ngulik coding, ngerjain project skripsi pake bantuan AI, atau nge-build aplikasi pake Claude Code, pasti pernah ngalamin satu masalah klasik: makin lama, environment kita makin numpuk alias bloating. Kasus paling sering terjadi adalah nambahin subagent baru cuma karena 'lagi pengen' atau sekadar nyoba-nyoba lewat file markdown di direktori ~/.claude/agents/*.md. Tapi, pernah gak sih kalian ngecek, dari sekian banyak agent yang udah dibikin, berapa banyak yang bener-bener dipake dalam sebulan terakhir?

Baru-baru ini, seorang developer iOS bernama Lily ngebongkar temuannya yang cukup mengejutkan. Lewat audit mandiri, dari puluhan agent yang didefinisikan, ternyata ada 44 agent yang sama sekali gak pernah dipanggil dalam 30 hari terakhir! Mereka cuma diem, ngabisin context window saat startup, dan jadi 'agen zombie' yang nggak jelas fungsinya. Artikel ini adalah bagian dari serial environment Claude Code untuk ngebantu setup kalian tetap rapi, efisien, dan anti-lelet pas dipakai ngebut nugas atau ngerjain project.

Masalah Utama: Jurang Pemisah Antara 'Dibuat' dan 'Dipakai'

Nambahin agent baru di Claude Code itu gampang banget. Cukup tulis frontmatter di dalam folder agent, dan selesai. Karena gampang, agent-agent baru terus berdatangan tanpa filter. Masalahnya, sistem bawaannya punya beberapa kelemahan fatal:

  • Nggak ada mekanisme bawaan buat ngitung jumlah pemanggilan (invocation) lintas sesi coding.
  • Bikin file INDEX.md secara manual? Dijamin bakal langsung kedaluwarsa alias nggak update dalam hitungan hari.
  • Nggak punya data valid buat mutusin: "Ini agent beneran bisa dihapus nggak ya?"

Agent yang punya zero usage (penggunaan nol) tetap makan tempat di context yang di-inject pas aplikasi nyala. Kalau dibiarin, mereka bakal mangkrak jadi zombie: udah dibuat, jarang dipakai, nggak tahu fungsinya masih jalan apa nggak, tapi mau dihapus rasanya sayang. Padahal buat mahasiswa yang butuh efisiensi tinggi, environment yang bersih itu koentji!

Alur Sistem Tracking: Dari Sesi Coding ke Laporan Harian

Biar nggak bingung, sistem pembersihan agent ini dibagi jadi beberapa komponen otomatis:

  • Stop Hook (stop_agent_tracker.sh): Berjalan otomatis pas sesi coding selesai buat baca file transcript dan nyatet aktivitas agent ke dalam format JSONL.
  • Agregator Harian (launchd + agent-usage-summary.sh): Script otomatis yang jalan tiap jam 10:15 pagi buat ngecek rentang waktu 7 hari atau 30 hari, terus ngehasilin laporan ringkas.
  • Auto-Index (agents-index.sh): Buat ngebangun ulang file indeks dokumentasi agent secara otomatis tanpa ribet edit manual.

Langkah 1: Rekam Aktivitas ke JSONL Pakai Stop Hook

Script ~/.claude/hooks/stop_agent_tracker.sh bakal nge-trigger otomatis tiap kali sesi kalian berakhir. Hook ini bakal nangkep info sesi dan jalur transcript, terus milih tool invocations berjenis Agent. Bagian inti dari script Python-nya melakukan dua kali pass parsing pada transcript untuk memetakan tool_use dan tool_result secara presisi:

# Pass 1: Indeks tool_use (name="Agent") dan tool_result
uses = {}    # id -> (ts, name, input, caller)
results = {} # tool_use_id -> (ts, is_error)

for b in content:
    if btype == "tool_use" and b.get("name") == "Agent":
        inp = b.get("input") or {}
        if "subagent_type" not in inp:
            continue
        uses[uid] = (ts, b.get("name"), inp, b.get("caller"))
    elif btype == "tool_result":
        results[rid] = (ts, bool(b.get("is_error")))

Catatan penting buat kalian yang mau nyoba: di transcript Claude Code, tool 'Task' sebenarnya tercatat sebagai name="Agent", di mana subagent_type ada di dalam properti input. Buat nghindarin duplikasi data, script ini juga ngecek kombinasi session_id dan tool_use_id biar nggak ada data yang ke-write dua kali.

Langkah 2: Bikin Top 10 dan Daftar '0-Call' Lewat Jendela Waktu 7d/30d

Selanjutnya, script ~/.claude/scripts/agent-usage-summary.sh bertugas nangkep data rekap tanpa butuh library eksternal yang ribet. Script ini bekerja dalam tiga tahap utama:

  • Ngeload file JSONL dan difilter berdasarkan batas waktu (cutoff) 7 hari atau 30 hari.
  • Ngitung frekuensi subagent_type serta jumlah error yang muncul.
  • Mencocokkan daftar nama file ~/.claude/agents/*.md dengan data yang ada buat nyari agent mana aja yang nggak tersentuh sama sekali.

Hasil akhirnya bakal nunjukin statistik keren seperti ini:

=== Agent usage (last 7d) ===
total invocations: 127  unique types: 5

Top 10:
  agent                                     calls  errors
  general-purpose                              76       0
  Explore                                      45       0
  Content Creator                               2       0
  fork                                          2       0
  reviewer                                      2       0

0-call agents (defined locally but not used in 7d): 47
  - a11y-architect
  - architect
  - build-error-resolver
  - code-architect
  - code-explorer
  - code-reviewer
  ...

Hasil riset kecil ini nunjukin fakta menarik: dari sekian banyak agent, 95% pemanggilan cuma didominasi oleh dua jenis agent saja yaitu general-purpose dan Explore. Sisanya? Mangkal jadi pajangan doang!

Langkah 3: Auto-Regenerate INDEX.md

Supaya kita gampang ngevaluasi apakah suatu agent masih layak dipertahankan, kita butuh pandangan komprehensif. Script agents-index.sh bakal membaca frontmatter dari file markdown agent kalian dan ngebangun ulang file INDEX.md dalam bentuk tabel rapi secara otomatis.

Langkah 4: Jadwalkan Laporan Harian Pakai launchd

Supaya proses monitoring makin santai tanpa harus ngecek manual tiap hari, kalian bisa manfaatin launchd di macOS (atau cron job kalau kalian di Linux) buat ngejalanin ringkasan otomatis tiap jam 10:15 pagi. Jadi, pas kalian buka laptop buat lanjut ngerjain tugas kuliah atau project startup kampus, data agent zombie udah siap tersedia di file log.

Rutinitas Operasional: Saatnya Basmi Para Zombie!

Seminggu sekali, luangkan waktu sekitar 5 menit buat ngejalanin perintah culling (pembersihan) dengan kriteria keputusan yang jelas:

  • 0 panggilan dalam 30 hari + nggak ada skenario penggunaan nyata: Langsung Hapus!
  • 0 panggilan dalam 30 hari tapi punya potensi masa depan: Tetap simpan, tapi perjelas deskripsi kondisi penggunaannya.
  • 0 panggilan dalam 7 hari, tapi sempat dipanggil di rentang 30 hari: Kemungkinan tugas musiman, tahan dulu jangan dihapus.
  • Masuk Top 5 Reguler: Evaluasi ulang izin dan definisinya biar kerjanya makin optimal.

Lewat metode bersih-bersih ini, belasan agent nggak kepake seperti django-reviewer atau go-build-resolver bisa dibuang secara aman tanpa ngerusak sistem utama.

Kesimpulan

Membangun sistem tracking otomatis buat environment AI kalian bukan cuma soal pamer skill ngoding, tapi soal efisiensi ruang kerja digital. Dengan Stop hook, script ringkasan harian, dan auto-index, kalian bisa tahu persis mana tools yang bener-bener ngebantu produktivitas nugas dan mana yang cuma jadi beban memori.

Yuk, siapin CV dan portofolio terbaik kalian sekarang! Dunia teknologi bergerak super cepat, dan skill automation kayak gini bakal jadi nilai plus yang bikin kalian dilirik banyak tech company atau software house bonafide sebelum lulus kuliah. Jangan biarkan setup koding kalian berantakan, mulai rapikan dari sekarang!