今日告警 按「成功迹象 → 攻击 → 升级人工 → 误报」排序,点击一行查看调查过程
在真实标注数据上的评测
合成场景:告警、主机、账号和地址均为合成数据,工具返回的是模拟结果。
后验 P(恶意) 的变化 越过上下阈值且满足交叉印证要求即结案;预算用尽仍未定论则升级人工
调查过程 每一轮:为什么查它 → 工具原文 → 读取结论 → 账本更新。可以改写任意一条证据,从那一步分叉重新调查
可观测性:OpenTelemetry 调用瀑布图
LangGraph checkpoint 时间线
策略对比
「读取噪声」模拟能力有限的小模型:以给定概率把工具输出读错。漏报 = 真实威胁被当作误报关闭,是最需要避免的错误;升级不算错,但会占用分析师时间。
正在运行基准测试(约 20 秒)…
它解决什么问题
大多数 AI 安全运营 Agent 让大模型自己决定「下一步查什么」和「结论是什么」。模型一旦读错或被工具输出里的文字带偏,结论就会出错,而且很难事后核对。
Probewise 把这两件事拆开:模型只负责读,把工具输出读成一个结论选项;控制器负责判,用贝叶斯账本累积证据,按「信息增益 ÷ 成本」挑下一项检查,证据够了才结案,并为每个判定生成可以独立重算的证明。
接收RAG 检索手册与案例
→
规划信息增益 ÷ 成本
⇄
调查调用工具 → 读取 → 记账
→
判定阈值 + 交叉印证
→
响应高危动作等人工审批
→
报告证据编号 + 引用
读判分离
读取器可以是规则、本地小模型(Ollama / vLLM),也可以是通过 MCP 接入的外部 Agent。它最多读错一条证据,不能跳过证据直接下结论。
按价值选择检查
每一步计算每项检查的期望信息增益(比特),除以成本后选最高的。沙箱这类昂贵检查只在便宜检查无法定论时才用。
证据承载式判定
判定附带先验、每条证据的似然比和哈希链。任何人都可以只凭知识库重算后验、检查记录有没有被改过。
交叉印证(稳健模式)
结案至少需要两条同方向的强证据。读取器不可靠时,漏报率显著下降,代价是更多告警被升级给人工。
人在回路与回放
高危处置通过 LangGraph interrupt 暂停等待审批;每一步都是 checkpoint,可以回到任意一步改写证据重新调查。
可观测性
按 OpenTelemetry GenAI 语义约定记录 invoke_agent / execute_tool 等 span,可以直接接入 Jaeger、Langfuse 等后端。
技术栈
LangGraph StateGraph · checkpoint · interrupt · time-travel
MCP Server(stdio)+ Agent Skill
RAG:BM25 + 可选向量重排
OpenAI 兼容读取器(Ollama / vLLM)
OpenTelemetry GenAI 语义约定
FastAPI · SQLite checkpointer
哈希链审计 · 浏览器端独立验证
Docker
在 Claude Code 里使用
安装后把 MCP Server 加进项目,再加上仓库里的 Skill,Claude 就会以「读取器」身份调用 Probewise:它负责读工具输出,判定由账本给出。
pip install git+https://github.com/lzwhehe/probewise claude mcp add probewise -- probewise mcp cp -r skills/probewise-triage ~/.claude/skills/