Numbat

在终端设备上实现 AI Agent 活动可视化:本地检测、可选的动作前拦截、以及事后取证重建。

Star 数
★ 1.1k
最近更新
3 天前
License
Apache-2.0
主语言
Go

30 秒速览

运行形态
命令行工具
可在哪里用
通用 · 跨平台Codex · Claude Code
费用
免费,无需付费服务
上手难度
低 · 几分钟可跑通
开始前需要
Go 1.26.6+(仅用于源码安装)Shell / 命令行网络访问本地文件系统
典型场景
安全团队在开发者工作机上部署监控,实时发现 Agent 访问云元数据端点(如 169.254.169.254)等高危网络行为。
不适合
  • 需要开箱即用阻断能力的团队:所有内置规则仅监控,阻断需手动改规则并重装钩子
  • 需要磁盘或内存取证、或恢复代理未落盘活动的调查场景
  • 期望在未受支持代理或未覆盖存储上获得完整可见性的团队

这个 Agent 能做什么,适合哪些场景?

Numbat 是 Perplexity 开源的终端侧 AI Agent 安全监控工具,通过本地钩子(hooks)、插件、OTLP/HTTP 日志和磁盘上的会话产物来观察受支持的桌面、CLI、IDE 和网关类 Agent。它将实时与静态活动统一规范化为同一事件模型,并用同一套 CEL 规则引擎进行检测,检测完全在本机运行。记录以带版本的 NDJSON 格式输出,可写入 stdout、本地文件或通过 HTTP 外送,事件与发现均保留原始来源引用。拦截(enforce)默认关闭,仅对受支持的同步 pre-action 钩子生效,且自带的全部规则均为仅监控模式。工具以单二进制形式分发,覆盖 macOS、Linux 和 Windows(amd64/arm64),构建时不依赖 cgo。

numbat 通过三条路径采集数据:为支持的 Agent 安装本地钩子/插件(如 Codex、Claude Code 的 pre-action 回调)、接收 OTLP/HTTP 日志、以及扫描磁盘上已有的会话产物(无需事先安装 numbat 即可重建历史活动)。所有活动被规范化为统一事件模型后,由内置 CEL 规则、多步序列规则和自定义 YAML 规则在本机评估,产出事件、发现(findings)、执行决策(enforcement decisions)、指标(indicators)和扫描摘要五类带版本 NDJSON 记录。命令行覆盖:numbat agents(只读发现)、numbat scan(扫描产物)、numbat hook install/status/uninstall 与 numbat collect(实时捕获)、numbat ship(记录外送)、numbat rules check/list/test(规则开发)、numbat timeline(会话时间线)、numbat case build/verify(带 SHA-256 清单的便携案件包)。扫描为只读并做密钥脱敏;启用拦截时,匹配 enforce: true 规则的 pre-action 调用会按 Agent 类型返回拒绝响应。

  1. 安全团队在开发者工作机上部署监控,实时发现 Agent 访问云元数据端点(如 169.254.169.254)等高危网络行为。
  2. 事件响应人员对未提前部署监控的机器进行事后取证,从 Codex、Claude Code 等工具遗留的会话产物重建多步攻击链(如先读密钥文件再外传数据)。
  3. 平台工程团队将一批自定义 YAML 规则通过 --rules-dir 下发到研发终端,实现统一的 Agent 行为策略。
  4. 合规审计人员使用只读的 scan 和 timeline 命令生成带 SHA-256 清单的案件包,用于留档和审查。
  5. 希望阻断特定行为(如写入 SSH authorized_keys)的管理员,将内置规则复制为 enforce: true 版本并安装到受支持的 pre-action 钩子上。
  6. 构建 Agent 安全工具链的工程师接入 OTLP/HTTP 日志导出,将现有 Agent 日志纳入同一检测管线。

如何安装或部署这个 Agent?

方式一:从 GitHub Releases(https://github.com/perplexityai/numbat/releases)下载 macOS、Linux 或 Windows 的 amd64/arm64 单二进制,每版附带 SHA-256 校验和。方式二:用 Go 1.26.6 或更新版本安装:go install github.com/perplexityai/numbat/cmd/numbat@latest。方式三:本地静态构建(macOS/Linux):CGO_ENABLED=0 go build -trimpath -o numbat ./cmd/numbat;Windows PowerShell:$env:CGO_ENABLED = "0"; go build -trimpath -o numbat.exe ./cmd/numbat。无需额外凭据或云服务。

如何使用这个 Agent?

  1. 只读盘点与扫描(不安装钩子、不改 Agent 配置):numbat agents 列出发现的 Agent;numbat scan 扫描所有发现的 Agent 产物,或用 numbat scan --agent codex 限定范围。2. 实时监控(以 Codex 为例):numbat hook install --agent codex --emit all 安装仅监控模式钩子,记录写入 ~/.numbat/records.nd;用 numbat hook status --agent codex 检查状态。注意安装后需在 Agent 的钩子设置(如 Codex CLI 的 /hooks 或 Settings > Hooks)中审查并信任钩子定义。3. 启用拦截:将 rules/ 下的完整 YAML 复制到自管目录、保持相同 id、添加 enforce: true 并递增版本,然后 numbat rules check --rules-dir ./numbat-policy 校验,再 numbat hook install --agent codex --emit all --rules-dir ./numbat-policy --enforce。4. 其他:numbat timeline 查看会话时间线,numbat ship 外送记录,numbat case build / case verify 构建与校验案件包。运行 numbat --help 查看全部命令。

这个 Agent 有哪些优点和局限?

优点
  • 检测完全在本机运行,规则引擎(CEL)与事件模型对实时钩子和静态产物扫描统一复用,一套规则两种场景生效。
  • 支持多步序列规则(如"读密钥后外传"链式检测),发现记录引用具体事件 ID 和 ATT&CK 标签,证据链可审计。
  • 拦截默认关闭且所有出厂规则均为仅监控模式,部署风险低;拦截仅在受支持的同步 pre-action 钩子上生效,语义清晰。
  • 单二进制分发,覆盖三大操作系统和两种架构,构建不依赖 cgo,适合大规模终端部署。
  • 记录格式有版本化 JSON Schema(v0.3.0),事件与发现保留来源引用,便于下游 SIEM 集成。
局限
  • 拦截能力仅覆盖受支持的同步 pre-action 钩子,且需要管理员手工改写规则(保持 id、加 enforce: true、递增版本)并重新安装钩子,开箱即用的出厂规则全部只监控不阻断。
  • 静态产物重建无法恢复 Agent 未持久化的活动,也不等同于磁盘或内存取证;发现只是规则匹配,不构成入侵证明。
  • 各 Agent 的覆盖程度由覆盖矩阵决定,存在已知的延迟写入、保真度限制和 root 覆盖问题;Windows 原生与 WSL 的路径处理也不同。
  • 钩子信任要求因 Agent 和范围而异(如 Codex 用户钩子需手动信任,--managed 钩子策略信任),且 hook status 只验证配置、不验证实际执行与送达。
  • 记录即使脱敏后仍可能保留敏感的终端与 Agent 上下文;案件包未签名,不能证明来源真实性或完整性。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Numbat 当前 70 · 存在缺口 命令行工具免费 ★ 1.1k 3 天前 Go Codex · Claude Code
AiSOC:开源自托管 AI 安全运营中心 77 · 表现良好 命令行工具免费 + 模型费 ★ 2.8k 1 天前 Python —
Tracecat 安全自动化平台 55 · 缺口较多 自托管服务免费版 + 付费版 ★ 3.9k 今天 Python Codex · Claude Code
CyberStrikeAI——AI 原生网络安全作战系统 44 · 缺口较多 命令行工具免费 + 模型费 ★ 8k 2 天前 Go OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
70/ 100 五分制 3.5 / 5
本评测基于 2026年9月7日 的源码;此后该项目发布了 1 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 18/29
可靠稳定 9/14
适用触发 14/18
规范维护 14/18
有效结果 10/13
证据核验 5/8
查看各维度的扣分理由
信任安全18 / 29 · 3.1/5

证据显示默认只读、monitor-only、阻断需操作者显式开启且仅限标记 enforce 的规则,SECURITY.md 明确外发仅限配置的 HTTP sink 且默认强制 HTTPS;扣除点:hook 卸载/恢复路径仅在命令列表中提及,未说明状态与 hook 配置的完整回滚语义;发布者身份未经验证,仓库内未见维护者归属信息,故 least_privilege/rollback/source_attribution 不给满分。

可靠稳定9 / 14 · 3.2/5

CI 覆盖三平台测试、race、fuzz 与 go mod tidy 一致性检查,SECURITY.md 逐项说明失败时的行为(解码错误不阻断、4MiB 限制等),失败消息设计有据可查;但本文档集未包含实际错误消息样例或 hook 状态核验以外的失败恢复细节,故不给 3。

适用触发14 / 18 · 3.9/5

范围一节与 coverage matrix 明确各 agent 支持边界、已知缺口、WSL/Windows 路径差异,并明确不执行 artifacts 中的命令,边界声明非常完整(3);受众与触发精度仅能从规则与文档结构间接推断,未见触发误报率或针对不同环境的具体适配验证,故相关项为 2。

规范维护14 / 18 · 3.9/5

文档结构(coverage、event model、CLI、deployment、enforcement、rules、rule catalog、schemas)完整,安装说明含下载校验、go install 与源码构建三条路径(3);但证据中无 CHANGELOG、无维护者名单/CODEOWNERS,仅'最近 minor 版本获安全修复'一句话承担维护责任说明,versioning_changelog 与 maintenance_responsibility 仅给 1。

有效结果10 / 13 · 3.8/5

版本化 NDJSON、JSON Schema、SHA-256 清单的 case bundle 使输出可直接消费(3);但本文档集无法证实实际检测质量与误报水平,marginal_value 与 cost_benefit 只能按宣称特性与同类方案定性评估,未见过基准或实测数据,不给 3。

证据核验5 / 8 · 3.1/5

记录含 evidence_refs、cited_event_ids、schema_version 与规则版本,且明确声明'findings 是规则匹配而非入侵证明',事实与推断分离做得很好(3);README 大量引用的 docs 文件不在本次证据集中,跨来源交叉验证不可行,示例均为'受控回放'而非实际运行结果,claim_traceability 与 cross_source_corroboration 相应扣分。

风险与缓解建议
  • 发布者身份未经验证,企业环境采用前应独立确认来源与供应链。
  • collect 默认绑定 127.0.0.1:4318 且无客户端认证;换绑到其他接口即无 TLS/认证,需网络层隔离。
  • 脱敏仅为模式掩码,project-path 哈希为无盐稳定连接键;分享记录或 case bundle 前必须人工复核。
  • enforce 模式失败时(解码/评估错误)不拒绝动作,宿主才是最终执行点;不应将 numbat 视为 fail-closed 控制面。
  • 静态审查未执行任何命令,检测质量、误报率与 hook 实际加载情况需在部署前实测验证。
证据充分度:低 评估于 2026年9月7日 审查版本 f0778c09dc48 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.3.0
    发布说明摘录
    Highlights - Muse Code support: Live monitoring, opt-in enforcement, and forensic scanning of saved sessions ([#59](https://github.com/perplexityai/numbat/pull/59)). - Richer tool visibility: Retained tool inputs and results for rules and optional content export, plus improved MCP/browser context and subagent attribution ([#64](https://github.com/perplexityai/numbat/pull/64), [#58](https://github.com/perplexityai/numbat/pull/58), [#48](https://github.com/perplexityai/numbat/pull/48)). …
    在 GitHub 查看 ↗
  2. v0.2.0
    发布说明摘录
    Changelog * f0778c09dc48281aa93a3887d05096c0a1f3f9f7 docs(hook): correct Cursor enforcement comment (#40) * 5d100d394830a650313ee065c939cb87b1253743 fix(rules): narrow agent config tamper scope (#39) * cf71bc72364970c4acfd43e602864ef248602b30 fix(rule): harden PowerShell projection and fuzz coverage (#38) * 583db778b76959810415c76c105a402ce338ab8d Merge pull request #37 from perplexityai/adel/checked-cel-builtins * ab318c0bc649d16c03b03de65d244d538a2ddac4 perf(rules): embed checked CEL expressions …
    在 GitHub 查看 ↗
  3. v0.1.2
    发布说明摘录
    Changelog * 0e41ad66f5557f412eae330576271f2ee809d3de Merge pull request #19 from perplexityai/codex/redaction-credential-positions * c82215370de8565459bfd08408397d7704c1f8b2 fix: handle ampersand URI boundaries * 996ca4ead2c76814cc36b63e609a9621d01578aa fix: disambiguate URI authority boundaries * 264bb8f185543832ef17ac419c3e1b9709383d9b fix: handle URI credentials and hosts * 1e5375d975546d87cf6010e33f97d38dad1507cd refactor(redact): clarify userinfo naming * 28142e9592759140bd816629846435ee172c2530 test(redact): avoid credential taint source …
    在 GitHub 查看 ↗

常见问题

启用后会不会拦截或干扰 Agent 的正常操作?
不会,除非你主动启用 enforce。拦截默认关闭,出厂规则全部为仅监控模式;只有当你复制规则、添加 enforce: true 并以 --enforce 安装钩子后,匹配规则的 pre-action 调用才会被拒绝。
是否需要联网或云服务?
检测在本地运行,不需要云服务。记录可写到 stdout 或本地文件;只有在你配置了 HTTP 外送(ship/HTTP sink)时才会有出站请求,numbat 仅向配置的 HTTP sink 发起出站请求。
支持哪些 Agent 和操作系统?
支持 macOS、Linux、Windows(amd64/arm64)的单二进制。Agent 覆盖范围(桌面、CLI、IDE、网关类,含 Codex 和 Claude Code)以 docs/agent-coverage.md 的覆盖矩阵为准,各 Agent 的产物、实时捕获、拦截支持程度和已知缺口不同。
能否在没有提前部署监控的机器上取证?
可以。numbat scan 和 timeline 可从支持的磁盘会话产物做只读重建,无需事先安装钩子;但这不是磁盘/内存取证,Agent 未持久化的活动无法恢复。
如何添加自己的检测规则?
编写自定义 YAML 规则(CEL 字段、序列规则均有文档),通过 --rules-dir(可重复)传入 scan、collect、hook、rules check 等命令;可用 --no-builtin-rules 只使用自有规则集,并可用 numbat rules test 做测试。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents