工作方式

本地优先、单一编排核心、四个薄入口——理解 FlowLens 如何组织你的流量数据。

设计原则

四条贯穿整个系统的不变量,任何功能都不能绕过。

确定性核心

匹配、diff、统计、规则与指纹计算全部由确定性算法完成, 相同输入必得相同输出,结果可复现、可逐字段核对; AI 只是受门控的辅助面,不参与核心判定路径。

单一核心

所有业务逻辑收敛在 Rust 编排层 flowlens-app, 四个入口只做薄适配,不在入口层复制分析逻辑。

证据链

artifact + provenance + 追加式审计, 每一次转换的输入输出哈希、来源引用都完整可追溯。

能力门控

AI 与自动化入口默认只读,写操作需显式授权, 删除与密钥能力永不开放给 agent;所有数据留在本机, 不依赖云端服务。

分层架构

依赖方向自上而下:入口层 → 编排层 → 能力层 → 基础设施。

入口层四个薄入口,只做 transport / UI 适配
apps/desktop · 桌面工作台(React 19 + Tauri)apps/server · HTTP 服务(Axum)apps/mcp · MCP 服务(stdio / Streamable HTTP)apps/cli · 命令行
编排层唯一业务编排层,对外统一 service_api
flowlens-app · 项目 / 分析 / 基线 / finding / 规则治理 / 账号
能力层算法 crate,只依赖领域模型
flowlens-import · 导入flowlens-matcher · 配对flowlens-diff · 结构化 diffflowlens-baseline · 基线flowlens-finding · 异常发现 DSLflowlens-transform · 转换 / pipeline / WASM 宿主flowlens-policy · 策略 / 脱敏 / 审计flowlens-storage · 持久化
基础设施领域模型与横切支撑
flowlens-domain · 领域模型flowlens-http · 受限 HTTPS 客户端flowlens-tracing · 结构化日志flowlens-wasm-sdk · 插件 ABI

能力层 crate 只依赖领域模型,互不横向依赖;入口不重写分析核心, 只把请求翻译成编排层调用;MCP 的工具抽象(flowlens-mcp)与后端实现 分离,外部会话与内嵌 AI 助手共享同一套注册表、策略与审计通道。

关键数据流

三条主干路径:Pair Diff、基线与异常发现、转换与证据链。

Pair Diff 流水线

Pair Diff 主回路:导入 → 配对 → 对比 → 复核 → 锁定重跑

导入

自动探测 HAR / JSONL / Spider JSONL / PCAP 等格式, 归一化为 Session / Exchange 领域模型,body 写入内容寻址的 blob store。

配对

五种策略自动对齐两侧会话,每条匹配携带 score / confidence / ambiguity,支持人工复查与锁定。

结构化 diff

逐字段生成字段树 DiffReport,可选开启表示层信号 (header 顺序、query 编码等被归一化抹掉的差异)。

持久化

session / match_set / diff_report 全部落库, 锁定的人工配对在后续重跑时自动继承。

复核

语义视图、文本 diff、协议指纹三种证据面板交叉验证, 每条结论都能回链到原始 exchange 证据。

重跑

调整匹配或 diff 参数后按已有锁定结果重跑, 人工复核的投入不会丢失。

基线与异常发现

从正常样本构建基线:endpoint 出现频次、转移概率与 7 个域的字段统计。扫描时合并四类信号——规则命中、字段统计偏离、 内置高确定性检查、序列异常——按规则 / 统计 / 序列 / AI 四维贡献合成 finding 评分,用户可反馈状态, 也可对单条 finding 显式触发 AI 判定(第四维)。

转换与证据链

转换、pipeline 与插件的输出一律写成不可变 artifact, 附带输入输出哈希、provenance 链与敏感级别; 后续的 diff、finding 与 AI 解释都引用这条证据链, 而不是直接暴露裸明文。原始输入字节始终保留在 blob store, 归一化过程中被抹掉的差异由独立的表示层信号层记录, 可追溯不丢失。

基线与异常发现:基线 → 并联扫描 → 四维评分 → 人工反馈与可选 AI 判定

规则从哪里来:AI 辅助生成与人工演进

FlowLens 的规则可以由人手工编写,也可以由 AI 辅助产出, 但所有规则演进都经过显式人工确认与证据门禁,不存在自动晋升路径。

三条来源通道汇入同一条提案管线:accept 只产 Draft,serving 晋升永远需要执行证据。

生命周期状态机

解析规则与规则提案各自的状态迁移,全部以追加式 revision 与事件留痕。

解析规则生命周期:serving 晋升永远证据门禁,revision 追加式留痕。
规则提案状态机:accepted / rejected 为终态,preview 是不改变状态的自环。

安全模型

账号隔离、凭证、网络出口与审计,四层防线默认就位。

账号与隔离

Argon2 密码哈希;逻辑项目路径经 SHA-256 摘要映射到 账号隔离的数据目录,最后一个管理员账号受删除保护。 导入侧支持脱敏:SNI、远端地址与 QUIC SCID 可哈希化, 保留存在性语义而不暴露真实值。

凭证

API Token 采用 fls_ 前缀格式,存储侧只保留哈希与前缀, 完整 token 仅在创建时显示一次;每个请求重新认证,吊销即时生效。

网络出口

AI 调用经受限 HTTPS 客户端发起:host 白名单、强制 HTTPS、 私网地址默认拒绝;发往 AI provider 的内容只含脱敏摘要 (finding 标题 + 字段路径 / 值),不发完整原始 body; 日志 span 不落原始 body 与密钥等敏感字段。

审计

audit_log 追加式写入、永不覆盖;HTTP 请求的 correlation id 贯穿 tracing span 与审计行,操作可追溯到来路。

四入口对比

同一套编排核心,不同的定位与认证模型。

入口定位认证方式适用场景
桌面工作台图形化主入口账号登录(会话在进程内存)日常交互式分析
HTTP 服务浏览器模式 API账号登录(sessionStorage token)团队协作或 IDE 内嵌
MCP 服务AI 与自动化工具面(122 个工具)stdio 无认证;HTTP 模式支持账号 API TokenAI agent 集成
CLI批处理与脚本无账号体系(直接打开项目目录)CI 与一次性分析

上手试试

从导入第一份抓包到跑通第一次 Pair Diff,只需几分钟。