变更记录
English | 中文
按版本记录新增功能、调整和修复。使用方法见 README。
v0.10.0 - 2026-10-19
新增
-
新增真实 DeepSeek 调查与修复示例,沿同一原生会话和子 Agent 展示两次执行、测试、 AppArmor/seccomp 决策、文件变化、搜索、对比及选择性离线分享。命名单个示例时一并加载 配套执行记录;Linux 采集脚本在导出后执行独立导入校验。
-
执行概览分别提供审计记录、实际状态、配置声明和采集观测入口。图下并列展示操作尝试、 机制决定和实际结果;对比窗口新增访问控制视图。在线与离线阅读沿用同一套证据接口。
-
会话搜索、事件列表和图谱定位纳入通过既有工具/运行时证据唯一配对的审计决定, 单独标记推断的阅读范围;冲突和未配对记录保留在 Run 范围。 部分回放冻结原会话成员,省略被排除的支持引用,原审计身份保持不变。
-
对比 API 将访问控制配置声明、实际状态、审计决定、采集观测和运行时结果分别投影为 已保存的观测集合,附原阅读引用。PID 和时间变化不产生值差异,保留原文阅读入口。
-
telemetry follow-audit持续读取已有 audit 文本或 journal JSON 文件。 有界批次将证据和断点一起提交,支持中断续读、等待半条日志补齐,并报告文件替换或截断。 采集观测沿用遥测查询和签名 Bundle 链路;机器输出固定英文,原文留存沿用 Run 设置。 -
原生 Sensor 默认开启、可独立关闭 AppArmor 和 seccomp 状态读取,保存标签、模式、过滤器数量、时间及独立的线程身份。有界采样队列报告丢失。K8s informer 追加保存结构化字段和旧注解中的配置声明,保留历史 Pod 元数据。状态、配置、审计决定和 syscall 结果分别记录,并通过签名 Bundle 往返保留。
-
审计关联接入后台服务和 Dashboard 查询 API、远程 CLI、Python SDK、AI/MCP,统一分页校验和错误处理。新网页回放保留冻结的候选,部分导出会省略缺少支持证据的关联。接口字段、状态和生成的错误信息统一英文。Python HTTP 客户端支持既有后台服务令牌并拒绝重定向。
-
telemetry audit-associations查询审计与运行时证据的关联候选,分别展示进程和操作关联, 保留歧义及尝试、实际返回、进程退出的引用。原生事件新增来源主机身份和粗粒度时钟分辨率, 与启动实例、任务生命周期和审计时间精度共同参与关联。迟到证据会重新参与分析,原记录保持不变。 -
telemetry ingest-audit读取已有 AppArmor、seccomp audit 文本或 journal JSON。 保留按实际 ABI 解析的决定和原始引用,按来源主机/启动实例及记录标识去重, 使用有界事务批次并沿用 Run 固定的原文留存设置。签名 Bundle 保留这些记录; 导入不修改主机策略,也不推测 Agent 会话归属。 -
原生 open/connect 采集保留实际返回结果,并与入口共用调用标识。有界线程状态防止身份复用后串联; 异步连接待完成、内核重启调用与成功/失败分别记录,结果记录不重复产生尝试级风险决策。
-
launch在采集前保存内核 Sensor、工作区快照、TLS 完整正文和 Agent 上下文的独立设置。 Dashboard 将这些选项与上下文留存档位分开展示,签名 Bundle 和所选回放副本保留原值; 旧 Run 未保存的设置显示为“未记录”。 -
Dashboard 会话、搜索、对比和回放显示已记录的上下文留存设置。 按设置省略的正文与不可用内容分别统计,冻结导出清单保留来源 Run 的档位。
-
launch和context import支持--capture basic|detailed,默认详细档, 可用--capture-tool-results单独覆盖工具结果留存。启动前固定本次 Run 的设置, Claude hook 日志在写盘前完成留存筛选与脱敏,并限制大小、串行写入。 内核、TLS 和工作区文件采集继续独立配置。 -
使用
dashboard export --run RUN --output replay.zip导出完整本地 Run。 未签名的单 Run 分享包可解压后直接离线打开,复用图谱、会话和正文阅读器,并附固定文件清单。 命令默认包含该 Run 全部已保存内容,不附带原始数据库或 Bundle。 独立的记录清单列出来源 ID、类别和历史版本,与回放使用同一份冻结快照。 -
CLI、Dashboard 和本地 API 支持按原生会话导出,以及按记录或类别排除。图谱、搜索、原始记录、正文 和历史版本共用冻结选择清单;跨范围引用与省略的分析保留说明,部分副本标为“所选证据”。
-
Dashboard 支持先准备冻结预览,再确认下载 ZIP。窗口展示范围确认、来源数量、 文件清单和压缩包体积,可直接打开同一份回放检查内容。每个本地服务只保留一份预览, 到期自动清理,正常停止服务时清理临时文件。
-
导出窗口可选择整个 Run 或当前会话、保留类别,并通过现有正文阅读器逐条检查和排除记录。 冻结预览展示实际包含与排除数量、关联排除和同文复核提示;修改选择时丢弃原预览。
-
在 Dashboard 临时窗口中对比两个 Run 的配置字段、文件证据、网络目标和外发数据类型。 保留双方已记录的任务、采集信息及字段类型,区分缺失值;可分别查看正文和图谱证据。 新导出的公开 Demo 使用相同的分页对照记录与阅读能力。
-
在 Dashboard 的临时窗口中搜索已保存的消息、工具输入输出、配置、文件正文及运行时记录。 可选择当前 Run 或原生会话范围,查看高亮片段、分页正文和来源引用;支持取消、继续搜索, 以及定位到图谱后返回原搜索位置。公开 Demo 的静态导出包含相同的搜索目录和阅读能力。
调整
- Run 概览和每个原生会话都提供常显的“关联会话”按钮。点击后直接展示当前会话的关系,按需加载证据;返回时保留图谱状态与键盘焦点。
- 说明审计读取器的独立启动方式和 seccomp 日志动作字段。新增受控 Linux 验收,覆盖 AppArmor/seccomp 混合决定、带审计的 ERRNO、普通权限失败,以及基础/详细两档的签名包和离线网页回放。
- 本地数据库 schema 20 新增审计采集断点表。升级前请备份数据目录;读取断点属于本地运行状态, 不随证据 Bundle 导入。
- 上下文证据可记录固定于 Run 的版本化留存配置,并区分主动省略与采集失败。 存储层在省略原始会话记录时保留精简的 Claude 意图投影及来源引用; 签名 Bundle 和所选回放导出保留对应的留存与分享边界。
- 会话目录展示跨 Run 的同一会话、已记录的父子关系,以及 Codex 的委派、分叉和消息请求, 每条关系保留来源引用。查看关联会话后可返回原图谱和阅读位置;静态导出只查找已选 Run 的关系。
- 保留图谱与右侧风险列表,将节点摘要、关联事件和已保存正文合并到图下证据详情区。 辅助区域默认收起并保留计数,原有正文分页和放大阅读继续可用。
- 新增按 harness 和原生会话身份组织的会话来源目录,展示已记录的父会话引用、关系冲突, 并支持按确切来源查看上下文。处理诊断与原生会话分开展示。
- 公开 Demo 的静态导出同步包含统一阅读区和会话来源目录。
- 按原生会话筛选图谱、已关联事件和对话,重新计算范围内摘要并保留推断边的置信度。 返回整个 Run 时恢复此前的图谱和阅读位置;风险与辅助区域标明整个 Run 范围。 静态回放使用相同投影,上下文查询支持 harness 与 Session ID 联合筛选。
修复
-
seccomp 拒绝或等待中介处理的动作不再关联邻近的已执行调用。仅由时间支持的操作关联保留为候选,并更新关联规则版本;历史回放继续使用原规则。
-
基础档留存 Codex 分叉关系的结构化元数据,无需保留完整配置正文。关系类型、端点与来源引用随签名 Bundle 和所选回放保留。
-
对比扫描截断时,将未完成枚举范围中的单侧记录标为未知,不计入确定差异;保留正文省略、缺失与扫描截断各自的原因。
-
离线导出从冻结快照完整分页枚举会话,不再复用概览的 256 个来源上限。导出前核对会话索引,支持取消并在超过资源预算时明确报错。
-
修复静态回放打开无运行时归属节点的会话时出错的问题。示例的 Run 选择框和对比窗口 使用中英文可读名称,原始证据 ID 保持不变。
-
运行对比优先展示本次执行中主会话的可读任务正文。正文缺失只影响对应来源, 其他来源的已知值仍可正常比较;保存的文件变化和审计决策优先展示。
-
便携导出为必要的溯源对象提供独立的 16 MiB 上限,普通快照文件仍保留 4 MiB 上限。 必要对象超过限额时明确报错,避免生成缺少图对象的离线回放。
-
记录清单校验与对象生成使用相同的脱敏规则,修复含凭据变量表达式时的误报, 并继续检测实际命令变更。
-
审计 CLI 和 AI 工具的错误输出保持英文,不再追加本地化帮助。 审计 JSON 模式下的 daemon 提示也使用英文;显式帮助和普通终端输出仍支持中文。 新增实际启动 CLI、HTTP、Python SDK 与 MCP 的端到端检查,覆盖双档留存、分页和原文语言。
-
原生生命周期绑定、Hook 归属、TLS 交换、模型命令关联和进程图共同保留主机及 boot/PID/启动时间身份。 缺失 exec、父进程 PID 复用或无关退出不再沿用旧进程归属,只有数字 PID 的退出记录不关闭原生生命周期。 新图与派生规则使用新版本,历史签名图沿用原语义;进程查询和回放保留相同证据引用。
-
未关联遥测不再因缺少执行绑定而误报完整性错误;声明了正置信度关联的事件仍须具备绑定证据。
-
区分原生线程身份与进程 TGID,保留退出信号。主线程先退出时保持工作线程的进程关联, 没有存活线程时才关闭进程生命周期。相关字段保留到入库和签名 Bundle,新增受控 Linux 结果测试。
-
部分 Node.js 二进制的普通字符串表过大时,改用有界动态符号表解析 OpenSSL 导出符号,按已校验的可执行文件偏移挂载探针,保留原有元数据大小限制。
-
上下文导入在读取留存设置前取得 SQLite 写锁,避免实时遥测写入使读取快照失效。上下文记录与诊断保持原子提交,提交失败时清理对应连接。
-
切换证据或时间线页后忽略旧请求的响应。新证据加载期间清除上一项记录;请求失败时显示加载失败与未知计数。
-
Endpoint 重分析在一个事务中替换正文对象、事件、策略决策和信号。正文缺失、元数据损坏或写入失败时保留上次图谱;重试时替换本轮所属的策略计数,避免重复累加。
-
意图差异、关联边、信号及本次新增的工具归属一起提交。模型证据无法读取时终止重分析;重复分析保留协作消息的契约标识。
-
策略重评估改为事务替换,失败时保留原决策和会话状态,重试时清理已失效的计数信号。
-
重分析提交失败后丢弃对应数据库连接,避免未结束的 SQLite 事务影响后续请求。复用内容未变的对象,替换文件先写入临时文件,再改名落位。
-
打开已升级的证据库时跳过重复写入数据库版本。原生缓冲分段提交,遇到短暂的 SQLite 写锁争用会重试;中断后保留已提交的行回执,让采集和调查命令可以同时使用证据库。定时封存独立运行,每批处理后重新检查队列,避免待重试批次拖延新事件。
-
会话日志出现损坏行时,先报出行号并保留上次图谱,避免把解析失败当作空结果覆盖已有分析。
-
Dashboard 概览重新校验当前证据,导入的执行记录也走同一检查流程,不再按事件数量或旧证据包状态复用结果。
-
未知的运行环境置信值保持为空;六份固定的 v0.8.2 Demo 保留原有进程视图。
-
OpenSSL 实机测试从采集到的启动事件识别测试进程,适配 WSL 的 PID 命名空间。
-
保留作用域绑定、进程生命周期继承及统一信号中的显式零置信值;省略字段继续使用来源默认值,非法数值被拒绝。图谱区分未知置信值与零值,并在只读回放和签名 Bundle 往返中保持一致。
-
验证器传播数据库查询失败,不再误报证据缺失。CLI JSON 和 daemon API 返回带错误原因的
status: unavailable,API 使用 HTTP 503;Dashboard 单独显示验证不可用,概览检查使用当前数据库和对象内容。 -
区分 cgroup/容器作用域归属与工具调用、应用进程归属。进程匹配同时检查采集时间和已有作用域键,父进程不再借用子进程绑定中的工具身份。
-
重叠绑定保留共同上下文及有界候选诊断,不再选择最近开始的调用。后续修改绑定后,关联报告仍保留事件当时记录的歧义。
-
有歧义的作用域匹配不再生成原生进程生命周期锚点。历史事件和签名 Bundle 保留原有信息。
-
模型决策与后续执行按完整参数、两分钟窗口和采集作用域匹配;多个决策或执行候选保留为未关联,截断命令与进程采样不再作为命令执行锚点。
-
Transcript 通过工具调用 ID 和当前版本的直接工具/执行关联接入图谱,保留原始时间与身份。新建模型执行连线携带推断规则版本和证据引用。
-
TLS/transcript 重分析采用事务替换,读写失败时保留上次图谱。Endpoint 导入继续保存上传与策略证据,移除按最近聊天序号推定的模型因果连线。
-
新运行时图的节点、父进程/线程组引用、名称和数据流推断保留原生进程生命周期。PID 复用与不同内核启动实例分开;缺少有效生命周期的记录保存为事件级进程观察。历史签名图保留原有标识。
-
进程详情、事件分页和静态回放按图节点身份定位;校验新进程边时检查来源事件,签名导出/导入保持相同节点和关系。
-
TLS 采集解析出的 HTTP/1.x、HTTP/2 元数据及 stream ID 完整保留到入库、查询和签名导出/导入。重组正文不再重新当作 HTTP 头解析;端点元数据移除 URL 用户信息、查询参数和片段,只保留白名单字段。
-
OpenSSL 读取探针按线程与任务生命周期配对,避免同进程并发覆盖。有界栈保留嵌套调用,校验返回长度,在线程退出或成功 exec 时清理未返回的上下文;栈溢出和无效输出指针计入采集丢失诊断。同步生成双架构传感器,新增嵌套、清理及 32 线程逐字节比对的实机测试。
-
OpenSSL 的 HTTP/HPACK 状态按进程生命周期和内核采集代次隔离,地址复用、重置、重新绑定和迟到读取不再继承旧缓冲或动态头表。可选连接标识保留到入库和签名 Bundle,丢弃的未完成状态计入缺口诊断。移除“新请求自动结束旧响应”的判断,保留同代次的 HTTP/2 多路复用和长连接,新增真实 OpenSSL 生命周期测试。
-
TLS 请求/响应改用带版本的连接与流配对。HTTP/1 串行推断跳过重叠、截断、歧义序列及已记录的采集缺口;HTTP/2 按 stream 身份处理多路复用。未知或歧义原因与可选正文一同保留。
-
摄取时不再按时间邻近生成“响应导致系统调用”的连线。TLS 重分析原子撤回失效配对,保留 transcript 和 endpoint 对象,配对诊断随签名证据包回放。
v0.9.0 - 2026-10-09
保存 Agent 会话、配置历史和完整正文,导出后可在其他机器上离线查看。 发行说明:v0.9.0。
新增
-
完整的在线只读 Demo、中英文使用指南和
demo export静态导出命令。 在线版沿用现有 Dashboard,保留图谱、会话、文件正文及证据跳转, 与便携 CLI 包一起验证和发布。 -
Claude Code 与 Codex 共用上下文采集链路,保存消息、工具输入与结果,以及来源提供的 任务、审批和配置。DeepSeek Harness 0.1.7-rc.2 的原生 v4 Zstandard 会话接入同一链路, 继续读取明确支持的 v3 会话及已有 Kimi/Grok 格式。
-
会话发现、显式来源选择、恢复前缀核验、真实子会话标识、记录修订与来源级覆盖报告。 无法确定归属时,不把猜测的会话绑定到执行记录。
-
context命令及版本化 HTTP 查询,提供记录分页、已保存正文、配置比较、覆盖情况和图谱关联。 -
默认折叠的双语 Agent 会话区域、会话与图谱双向定位、配置历史,以及独立的分页正文查看器。
-
一份真实 DeepSeek 开发任务的签名回放,通过
agentprov demo deepseek-context打开, 无需模型账号或联网。 -
launch --file-diff可选择保存变化文件的最终文本,并提供本次上下文、原生采集、 文件内容及运行时关联的诊断报告。
调整
- 较长的会话、文件和 Agent 协作消息正文分段保存,离线导出和导入不再受旧的单对象内嵌上限影响, 也不提高该上限。原始来源记录仍可单独查看。
- 启动时说明已配置的采集方式,退出后报告实际覆盖情况;Hook 与选中的会话共用输入和记录预算。
- 运行时展示区分探针/TLS 覆盖与采集完整性诊断;节点丢失和待处理批次保留各自的统计范围。
- 数据库版本 19 保存同一物理行内的来源顺序。历史上下文与本次执行分开,不能用于授权或归属新的操作。
修复
-
补齐子进程出生 cgroup 修复对应的 amd64 预编译探针,并将 clone3、cgroup 迁移 与持久化归属实测设为 amd64 CI 必过项。
-
review 分支只验收和构建,发行说明在构建前检查;旧版兼容 CI 使用校验值固定的 v0.8.2 原生程序,自动验证六份历史证据与数据库升级。
-
就绪检查读完日志后再判断,避免 KVM/K3s 日志量较大时因管道提前关闭而误报失败。
-
配置覆盖识别 Codex 原生模型服务商和权限配置字段,不推断缺失的具体限制,也不改写历史报告。
-
Dashboard 对未知路径返回 404,不再悄悄显示某次执行;Demo 指南仍由
agentprov demo提供。 -
Linux TLS overlay 测试按设备与 inode 识别同一文件,接受
/proc/1/root别名, 继续拒绝无关文件与被上层遮蔽的文件。 -
保留新版 Claude 原生附件与会话状态,以及 Codex 消息完成事件、命令/文件变更报告和 续跑线程配置;保持来源身份,不将执行报告当成模型提议。
-
保留配置变化、来源消息的不同表示、明确的工具失败、缺少起点的分发结果与迟到结果各自的语义。
-
保留原生参数边界及进程生命周期关联限制;无法唯一归属的运行时事件不强行连线。
-
通过启动 ID、PID 与内核出生时间锚定进程生命周期,保留内核采集时间和跨 cgroup 迁移 的进程级归属;fork 记录子进程实际出生 cgroup,包括
clone3(CLONE_INTO_CGROUP)。 -
在启动后数据库写入之前开始 record 进程采样,缩小短命子进程的采样空窗。
-
原生采集关闭时有界排空;未归属事件保留原 TTL 和持久队列,不通过删除待处理证据 报告队列已清空。
-
导出遥测批次成员与原有哈希,使离线回放保留源存储已有的批次校验能力。
兼容性
- 六份历史签名 demo 的证据包、签名与公钥不变;历史上下文缺失继续显示
legacy_not_recorded。 - 签名有效、图谱完整和采集完整分别判断。会话采集不等于 TLS 或内核覆盖完整。
- 外部 LLM/Jev 评估器保持可选,不进入采集主路径。
v0.8.2 - 2026-09-26
下载即用的回放体验、中文文档与网页界面。发行说明:v0.8.2。
新增
- Linux/macOS 的 amd64/arm64 预编译包,附带校验文件、构建信息、全部示例源码和中英文入门指南。回放无需安装 Go。
- 一条命令打开示例首页和阅读页,集中展示六份签名采集记录与两个可选评估器示例,沿用 Dashboard 样式。
- 中文 Dashboard、示例页面、评估器工作台、文档、接口和 SDK 指南,以及中文图示和回放动画。
- CI 检查中文文档缺页、链接、界面词条和双语 OpenAPI 契约;四个平台的压缩包验收覆盖双语指南。
调整
- 网页首次访问时跟随浏览器语言,手动选择后保留偏好。英文继续作为回退语言和命令行、工具输出的默认语言;已有的
--lang zh-CN选项继续可用。 - 切换语言时保留当前页面状态和复核草稿,原始证据与协议字段值保持不变。
修复
- 为健康接口的响应说明补上 YAML 引号,避免解析器将句子中的逗号识别为额外字段。
v0.8.2-rc.2 - 2026-09-26
预发布:示例首页沿用 Dashboard 风格,提供排版后的文档阅读页。发行说明:v0.8.2-rc.2。
调整
- 示例首页和指南阅读页与 Dashboard 统一主题,支持响应式布局、章节目录、表格、内嵌图片和代码复制。
- 更新中英文介绍、全部示例入口、产品与部署指南、截图和包内说明,介绍预编译包的使用流程。
- 各平台压缩包验收覆盖八个指南入口及阅读页资源。
v0.8.2-rc.1 - 2026-09-26
预发布:预编译 CLI 与全部示例回放。发行说明:v0.8.2-rc.1。
新增
- Linux/macOS 的 amd64/arm64 预编译包、单文件及汇总 SHA-256 校验和、源提交与构建元数据,以及
agentprov --version。 agentprov demo内嵌六份签名采集记录和两个可选评估器指南;回放前校验证据,使用隔离的临时存储。- 四个平台在 PATH 不包含 Go 的环境下验收实际解压后的压缩包。全部原始示例源码随 CLI 分发。
v0.8.1 - 2026-09-22
在 demo/jev-judge/ 增加可选的外部评估器接入示例。发行说明:v0.8.1。已有证据与信号接口不变,不增加核心模块或必需的运行时依赖。
新增
- Jev 参考适配器。 有界 TypeSafe/Jev 客户端对选定的行动声明、运行时一致性和秘密传输证据进行评估,保留原始请求响应、概率、模型标识和哈希。
- 独立演示页面。 单独启动工作台,比较人工编写的 v1/v2 评估标准,记录独立参考标签和批准/拒绝结果。已评审信号通过现有接口显式导入,工作台不嵌入主证据 Dashboard。
- 评审边界。 使用固定的运行时覆盖缺失检查、逐问题回归检查和只追加的本地评审修订;参考评审变化后使旧批准失效。没有优化器、自动提升或自动处置。
- 无密钥回归测试。 覆盖可选示例;实际 API 调用与本地浏览器验收按日期另行记录,不混作 CI 结果。
v0.8.0 - 2026-09-20
完善 Linux、KVM 客体和 Kubernetes 的原生证据采集可靠性,入门流程从已有证据回放开始。详细验收与限制见 v0.8.0 发行说明。
新增
- 原生 Linux amd64 传感器。 按架构选择独立 eBPF 对象,处理 amd64 C 和 Go ABI,增加旧版 open/unlink 探针、内核采集时间,以及系统调用、OpenSSL 和 Go TLS 实机验收。保留已有 ARM64 绑定。
- KVM 客体与 K3s 部署。 客体内 systemd 采集、节点归属控制器,以及多工作负载、语义一致性、进程重启、正常重启、导入导出和数据库升级验收。KVM 使用
local-record。 - 容器 TLS 自动发现。 根据可见进程和 rootfs 发现目标,去重共享库,并随目标生命周期核对挂载状态。受支持的 amd64 Go 1.23–1.26 程序通过解码返回位置及 goroutine/栈帧配对采集响应;移除符号或不受支持的目标报告覆盖缺口。
- 原生流持久化。
sensor stream使用有界持久批次、迟到绑定重试、中断批次恢复、事务去重,以及丢失和积压报告。 - 就绪接口。
/v1/live与数据库、格式就绪状态分开。存储失败返回 503,未知队列计数为 null;报告历史采集丢失时,不会把当前可用的存储误报为不可用。 - 回归验收。 冻结格式的升级测试、真实 HTTP 就绪故障检查、Go 1.23–1.26 的 amd64 实机测试,以及 Linux amd64/arm64 静态构建。
修复
- 关联按真实时刻比较不同小数精度和时区偏移的时间,能看到当前事务中的绑定变化,排队事件保留采集时间。record 在启动工作负载前发布绑定。
- 共用摄入路径以原子方式写入事件、关系、证据及关联状态,错误向上传递,不留下部分记录。JSONL 行级保存点隔离失败事件,同批有效行仍可提交。
- CPU 样本清理按解析后的真实时刻比较,正确排序不足一秒的样本;遇到无效时间时回滚本次清理。
- 健康接口的 OpenAPI 3.1 定义使用明确的 integer/null 联合类型,并对照健康和存储不可用时的 HTTP 响应检查。
- 原生恢复保留文件缺失诊断,拒绝无法重放的超大行;载荷清理失败可稍后重试,不阻塞采集器重启。
调整
- 中英文 README 先介绍签名证据包回放,再介绍实时采集。回放和本地 record 无需 Docker;launch 签名明确为可选。保留已有真实示例和图片。
- 能力说明、架构 SVG、示例索引、部署指南和收尾标准同步到 KVM 与当时 TLS 覆盖状态。旧路线图标为历史设计。
- Falco 专用缓冲的重启恢复不变。共用摄入修复适用,但原生流恢复保证不能直接套用于 Falco。
v0.7.2 - 2026-08-05
加固证据采集与调查能力。Kubernetes 生产者从采集预览发展为经过测量、能处理生命周期变化的节点配置;增加有界的大批量摄入,并将外发数据作为通用可查询证据。
新增
- Kubernetes 生命周期归属。 带过滤条件的
client-goinformer 将 Pod、容器生命周期映射到内核 cgroup 绑定,处理容器重启和 Pod 删除。一个特权节点传感器可观测多个独立工作负载,无需修改工作负载 Pod。 - 本地与 Kubernetes 语义一致性验收。 相同的
id + ls /工作负载分别经过主动local-record和被动k8s-daemonset。两份图校验错误和警告均为 0,保留相同的execve -> runtime_process -> runtime_event规范化语义,以及各自不同的归属置信等级。 - 有界遥测摄入。 服务磁盘缓冲限制批次数、总字节数和单批大小,明确拒绝、丢弃行为及生产者健康计数。保存的 10 万事件报告包含吞吐、查询与健康接口延迟、内存、队列状态、丢弃和关联覆盖。
- 外发数据视图。 端点采集、规范化外发证据、意图偏差、风险/响应关系和通用调查卡片,覆盖敏感上下文、源码包上传尝试和第三方行为遥测。
- Grok CLI 调查场景。 可回放示例分别展示秘密进入模型上下文、源码上传调查和产品遥测三类外发路径;各路径的实际证据范围见示例说明。
调整
- 能力状态以验收为依据。 生产者配置报告
validated或planned。microvm-guest-init仍可查询,但在客体运行器和 KVM 实机验收完成前,报告无覆盖、置信度为 0;本地与 Kubernetes 配置已验证。agentprov sandbox profiles --json提供机器可读报告。 - 补全被动运行时关系。 即使没有应用层进程标识,按 PID 建立的运行时进程节点也能连接到对应事件,支持无需 SDK 的 Kubernetes 采集。
- 中心服务仍为设计。 该版本验证有界单节点生产者,并说明横向扩展边界,不包含多租户控制面。
v0.7.1 - 2026-07-09
增加无需侵入 Pod 的 K8s 归属和多 Agent 框架应用上下文接入。Pod 采集可一条命令完成或自动发现;外发目标可显示域名,节点侧响应采集得到修复。应用上下文从 Claude Code 扩展到 Kimi Code 和 Codex 的会话记录,并完成相应端到端验证。
新增
agentprov sandbox capture:单次 Pod 归属采集。 将节点侧 PID/cgroup 解析、Pod 元数据获取、bind-cgroup、传感器启动和摄入合成一条命令。--container可选择多容器 Pod 中的特定容器。libssl/libc uprobe 指向 Pod 自身的/proc/<pid>/root,在节点侧采集模型意图和 DNS。agentprov sandbox watch:自动归属的第二阶段预览。 节点循环发现 Pod,并分别绑定到执行记录,无需逐 Pod 操作。agentprov.io/run注解指定执行记录,否则按 UID 自动创建。当时使用 kubectl 轮询,尚非 client-go informer;每轮共用一个传感器,模型意图覆盖弱于capture,需要该层证据时使用后者。- 外发显示域名。 getaddrinfo uprobe 指向 Pod 自身 libc,采集 DNS 查询;Dashboard 将
dns_query主机名与后续连接关联,显示api.deepseek.com等域名。 - 多框架应用上下文:
hooks bridge --harness kimi|codex|claude。 轻量适配器将会话记录规范化后送入已有桥接器。支持 Kimi Code 的wire.jsonl,将单 Agent 和多 Agent 委托合并到同一实际时间线;支持 Codex 的rollout-*.jsonl,将exec_commandshell 工具规范为 Bash 以进行命令匹配。三种框架均用真实执行完成端到端检查。
修复
- 节点侧
tls_read可靠性。 以连接关闭为边界的 HTTP 响应没有正文内终止标志,在复用 SSL* 连接的长期工作负载中可能一直缓冲并丢失。现在新请求会刷出待处理响应;当时节点测试的读取采集从 0 改善到与 tls_write 的 1∶1。部分 TLS 探针挂载失败也会明确报告。
v0.7.0 - 2026-07-08
引入跨环境生产者配置,沿用原证据图和格式,将本地/虚拟机采集扩展到 Kubernetes Pod。核心从 SQLite 读取规范化遥测,不依赖具体运行环境。不同生产者分别说明传感器位置、归属方式、传输方式及可采集层次。一个节点传感器可观测多个 Pod cgroup,并将它们分别绑定到签名执行记录。microVM 客体配置先作为能力声明提供,实际集成仍在进行中。
新增
- 生产者配置:
internal/producer/profile.go。 声明传感器位置、归属模式及系统遥测、模型意图、应用上下文三层覆盖,将降级明确记录为数据。提供local-record、k8s-daemonset、microvm-guest-init;最后一项当时仅声明能力,运行器和客体镜像集成尚未完成。 - k8s-daemonset 归属。
agentprov sandbox bind-cgroup将节点观测到的 Pod cgroup 以被动k8s_cgroup来源绑定到执行记录,置信度为 0.8,主动 record 的内核验证等级为 1.0。可把集群、节点、命名空间、Pod、容器、镜像、服务账号、Pod IP 和标签作为上下文事件补充,无需改格式,当时也无需 client-go informer。 - 运行环境视图:Dashboard 与
graph lens --lens substrate。 展示配置 → 节点传感器 → 工作负载 → Pod cgroup → 执行范围 → 执行记录。某 Pod 的外发目标匹配另一 Pod IP 时,可建立pod_influences_pod关系。执行概览展示证据来源、归属来源和置信度;底层网络连接与派生的 Pod 影响关系应区分理解。 - 节点侧 Pod 模型意图。 libssl uprobe 按 inode 挂载,指向 Pod 的
/proc/<pid>/root/.../libssl.so.3即可在节点侧采集对应 TLS 请求响应,无需改镜像。自动发现 Python 模块加载的 OpenSSL(_ssl.so)。 - 一致性验收:
scripts/accept_k8s_pod_parity.sh。 检查节点观测的 Pod 遥测归属到执行记录,校验结果errors=0。Pod 由外部调度,未经record包装,也能生成可校验记录。
调整
- 被动绝对路径写入生成文件节点。 原先文件节点仅来自 record 的工作区差异,使用工作区相对路径。节点侧被动采集没有该差异,绝对路径写入因此缺少文件节点。摄入现在将有意义的绝对路径连接到
workspace_file/<abspath>,过滤/dev/null、/proc、/sys、套接字和管道,并关联写入进程,供文件、原始证据和污点视图查询。
示例
demo/k8s-substrate/:展示 k8s-daemonset 的完整流程。在节点侧采集真实 LLM Agent Pod 的系统遥测和模型意图,按 cgroup 归属,提供签名回放包run-claude-demo。demo/k8s-cross-pod-a2a/:通过真实跨 Pod A2A 网络调用,展示 Pod A 的alice影响 Pod B 的bob;一个节点传感器将bob的秘密读取、暂存文件和元数据 IP 连接归到其 cgroup,两个 cgroup 汇入签名记录run-a2a-demo。采集过程见示例指南。
v0.6.0 - 2026-07-06
增加一条命令的采集流程和意图一致性分析。agentprov launch -- <agent> 将 Agent 纳入溯源记录;意图分析开始比较行动声明与实际效果,区分越界、拒绝后仍执行和覆盖缺口。提示词及可见说明从会话记录读取,无需修改 Agent。
新增
agentprov launch -- <agent>:internal/launch。 创建执行范围、启动实时 Dashboard,通过--settings注入本次运行专用的 Claude Code hook 配置,不修改用户的~/.claude;主机满足条件时启动内核传感器,否则报告降级;在专用 cgroup 中执行 Agent,结束后封存证据图、按签名配置签名并输出结论。启动时分别报告应用侧证据(hook/会话记录或仅 record)与系统侧证据(内核遥测或无)。增加隐藏的internal命令组,开始区分日常入口与底层工具。agentprov doctor -- <agent>:启动前检查。 无需启动 Agent 即可检查程序位置、Claude hook 注入兼容性、Dashboard 端口、cgroup v2 范围和内核采集能力。明确报告降级原因;--json供安装脚本读取。- 意图与运行时比较:
internal/intent、agentprov intent diff。 将工具调用、同伴消息或拒绝对应的 IntentContract,与归属到其范围的 RuntimeEffects 比较。结果包括declared_vs_effect_mismatch、refused_but_runtime_happened、decided_and_executed和intent_coverage_gap。无法关联到已捕获意图的效果报告为缺口,不凭空补成发现。效果分类复用策略引擎,区分目标秘密和 Agent 自身凭据;是否越界依赖具体声明,例如只读工具不应连接网络,而 Bash 可允许。结果进入统一信号的intent_conformance维度,并影响 launch 结论;peer_message_intent_mismatch表示来自同伴消息的意图与效果不符。 - 会话记录提取。 从 Claude Code hook 标准输入指向的 JSONL 提取模型提示词、可见说明和工具决策,接入与 TLS 采集共用的
llm_call模型。在不同平台无需插桩,沿用 Agent 意图视图。 - 意图一致性视图。 展示约束范围 → 比较结论 → 观测效果,按状态着色,同时展示委托和对等 Agent 关系。
调整
- Agent 意图图汇总大量派生事件。 一次模型响应引出大量系统调用时,超过阈值后聚合为“引发 N 次系统调用”,保留清楚的提示词、决策、行动主线。具体调用仍可在进程或安全视图中查看。
- 用
launch重新采集示例。 贪吃蛇供应链和 Agent 团队的证据包改用一条命令采集,并附带会话记录。恶意安装的秘密读取和元数据地址连接被标为超出install声明范围,关联到执行该调用的子 Agent。
同一版本还将 LLM 流量证据接入签名图:传感器捕获支持范围内的 TLS 明文,重组、解析后关联模型调用与实际命令。Agent 意图视图改为基于证据节点的有向无环图;新增外部 LLM 评估示例,评估过程本身也可审计。
新增
- TLS 正文采集:
internal/sensor。 SSL_write/SSL_read uprobe 将明文按 TLS 连接和方向拆成有序片段;此前只保留哈希与有界元数据。 - TLS 重组与 LLM 语义:
internal/tlsintent。 用户态将片段重组为完整 HTTP/1.1 消息,支持 Content-Length、分块和 SSE 正文。当时通过客户端前言识别 HTTP/2 后按原始数据传递,避免误解析。兼容 Anthropic Messages 和 OpenAI Chat Completions 的最小语义:模型、消息数、系统提示词是否存在、可用工具、工具调用、声明的 shell 命令及停止原因。模块不依赖 eBPF,可在非 Linux 平台单元测试。 - 签名图中的 LLM 调用:
graph materialize-llm、internal/provenance.MaterializeLLMCalls。 正文存为内容寻址的llm_message;请求响应对生成llm_call节点,包含llm_request、llm_response、llm_body关系。操作幂等,纳入graph verify和scripts/accept_llm_intent_causality.sh检查。 llm_caused限于匹配的命令。 只有实际执行命令匹配模型响应中的tool_command,才建立llm_call到系统调用的关系。旧的摄入期llm_intent_caused不再渲染,改用生成的llm_caused。- Agent 意图视图改为因果图。 用真实证据节点展示
llm_call→ 声明命令 → 进程 → 运行时事件 → 风险;拒绝或被策略标记的意图作为独立节点,按提出它的 Agent 分组。执行概览中的工具调用和 LLM 意图入口可直接进入该图。 - Dashboard 的 LLM 主线与可读性。 存在模型调用时,
summary优先展示其生命周期路线,发送消息步骤对应协调者委托;改进 execve 标签,支持 tool_call/event 内容预览,保留展开状态,并将节点标签限制在边框内。 - LLM 评估示例:
demo/llm-judge/judge.py,第 3 阶段。 单文件、仅依赖 Python 标准库的评估器,通过通用 EvalContext、AI 工具和图视图读取完整轨迹,不按事件类型预筛选;超出上下文预算时分块归纳,并记录覆盖情况。兼容 Anthropic/OpenAI 协议的模型返回agentprovenance.llm_judge/v1结构化判断,再导入为带图引用的信号。评估器自身在record下运行,其请求响应成为评估记录中的llm_call;没有密钥时可使用离线测试数据。 - 示例包中的真实模型调用:
demo/shared/llm-intent-curl.sh。 两套采集脚本通过 curl/OpenSSL 发起一次真实的模型与工具意图请求,密钥放在请求头,不写入脚本或正文。重新采集并签名的第 1、2 阶段包包含选择恶意安装命令的模型调用,按llm_call→llm_caused关联到匹配系统调用。
调整
- README 按证据层介绍。 使用统一的
record -- <cmd>入口,以内核/运行时事实为基础,再补充 hooks bridge、MCP 上下文写入等应用声明。ai_asserted的置信度不高于 0.5。去除原白盒/无 SDK 两套入口的表述,并同步docs/product.md。 - 完整命令参考移入文档。 分别放到
docs/security-commands.md、docs/graph-commands.md、docs/compliance.md;Python 自定义规则并入外部评估器协议,减少重复说明。 - Falco 改为兼容入口。 README 中的对应章节移到
docs/falco-receiver.md。原生 eBPF 传感器作为主要内核证据来源,Falco/Tetragon 接收器保留兼容维护,不再扩展。
修复
- 大范围
graph explain崩溃。 遥测批次改在 Go 中按事件标识匹配,避免每个事件各拼一条 SQLLIKE,触发 SQLite 约 1,000 层的表达式深度上限,影响--attempt/--tool-call/--process/--file。 - 图渲染结果可重复。 参与因果图的
created_at排序增加标识作为并列条件;视图摘要按(created_at, node id)遍历,/api/graph的节点输出排序。BFS 顺序、page_hash、evidence_refs 和每视图 32 项截断结果在重建前后保持稳定,两个示例包分别验证 3 次。 - 子 Agent 身份。 Agent 工具启动的子 Agent 从
name字段读取名称,不再回退为通用标识。 - 性能。 图关系增加
(run_id, created_at, id)索引,缓存视图元数据。
v0.5.0 - 2026-07-03
增加多 Agent 编排溯源:在同一签名图中,将 Claude Code 团队的委托和同伴关系关联到真实内核系统调用。另增加策略重放、配置导出及应用上下文加固,为 record 自身范围建立内核关联键。
新增
- 多 Agent 编排溯源:
agentprov hooks bridge、internal/hooksbridge。 将 Claude Code 或兼容框架的团队 hook 转为图数据:agents表使用PRIMARY KEY (run_id, id),使不同执行的main协调者独立;增加tool_calls.agent_id;用agent_spawn表示委托,agent_message表示同伴消息,SendMessage正文存成内容寻址对象;每个行动形成与执行 Agent 绑定、经过策略评估的工具调用。子 Agent 共享 cgroup,外发系统调用通过命令匹配的agent_syscall关系归属。新增orchestration视图,渲染 Agent、A2A 消息和refused节点,运行时标签显示secret_path .aws/credentials、metadata_ip 169.254.169.254等目标。在demo/multiagent-provenance的签名虚拟机采集中完成端到端验证。 agentprov security reevaluate --run [--rules]。 对已保存事件重跑当前或自定义策略,重新生成决策、风险、响应、统一信号和对应图关系。原始事件不变,重复执行结果幂等,graph verify保持通过;修改策略后无需重跑 Agent 或传感器。agentprov policy rules [--out]。 导出内置策略为可编辑 YAML,再通过policy test --rules或security reevaluate --rules使用。- 默认
self_credential_access规则。 Agent 读取自己的.claude/.credentials.json或模型 API 环境凭据时,仍保留完整事件,但允许规则排在 kill 规则之前,不再触发高等级secret_path告警,以突出目标秘密读取。可通过导出的规则文件调整。 SelfLaunched与CorrelationClass分开。 事件可同时为kernel_correlated和self_launched,分别说明内核独立观测和进程由本项目启动。该标记依据事件来源和匹配绑定的binding_source推导,经新增的events.binding_source字段传递,并在 Dashboard 关联类别旁展示。- Linux record 每范围一个真实 cgroup。 使用
SysProcAttr.UseCgroupFD,将子进程及其后代放入专用 cgroup v2 叶节点;独立遥测按cgroup_id以 0.98 关联整个子树,不靠 PID 轮询。非 Linux 或缺少 cgroup v2/委派权限时,回退到原合成逻辑标识。Ubuntu 24.04、6.8 内核、arm64 实验虚拟机的端到端检查表明:子进程进入/agentprov/<attempt>,保存的 cgroup 标识等于目录 inode,与bpf_get_current_cgroup_id一致;没有上下文的传感器事件通过cgroup_time_window以 0.98 关联,标为内核关联且由本项目启动。父叶节点按需创建,各范围叶节点退出时删除。 agentprov sensor stream:节点常驻采集。 一条长期运行的命令启动 eBPF 传感器,按 cgroup 关联并将事件写入存储,替代手工agentprov-sensor | telemetry ingest-jsonl管道。排除本项目的数据目录快照和数据库 I/O,避免自反馈;当时丢弃无执行范围的主机事件,以免破坏逐执行记录的图校验。需要CAP_BPF与CAP_PERFMON,可用 setcap 或 root。后续有界暂存与持久化变化见 v0.8.0。- record 自动保存产物对象。 将变更文件正文存为
workspace_file/<path>,侧栏可直接预览 Agent 产物,替代容易遗漏的采集后手动步骤。
调整
CorrelationClass按事件来源分类。 不再根据合成的agentprov-record-容器标识把事件归为self_observed。真实内核事件匹配 record 绑定后仍为kernel_correlated,另附self_launched标记。- 应用声明的置信度降低。
bind_scope产生的ai_asserted绑定上限为 0.5,不再默认 1.0;模型声明的范围不应与内核验证匹配具有同等确定性。当时的匹配等级维持 cgroup 0.98、container 0.92、pid 0.85、process 1.0,Dashboard 按区间着色。
修复
- 图中的说明节点不再孤立。 此前从全部过滤后关系构建可见节点,但只返回有上限的部分关系,导致
policy_decision、response_action、risk_signal、file、artifact节点的边被大量运行时关系挤掉。现在优先保留较少见的语义关系,只从实际返回的边构建节点集合;当时九种视图检查均无孤立节点。 - 进程显示名称。 通过
comm/tgid补充runtime_process和线程组标签;进程树合并base64 -d ×72这类重复叶命令,改善大量子进程的可读性。 - Dashboard 性能。 按轻量指纹缓存
graph verify,执行概览首次加载后的耗时明显下降;按拓扑缓存 Sugiyama 布局,选择、悬停、缩放不再重排;调整边数量上限和实时刷新间隔。时间轴的edgeVisible改为同时考虑边自身时间。 - 重新采集供应链示例。 用受监督流程生成并签名
demo/snake-supply-chain/run-snake-supervised.forensics.json.gz,替换旧的 cgroup 绑定前版本。snake.py已保存为可预览对象,供应链行为以 0.98 关联并标注self_launched,图校验通过。
v0.4.1 - 2026-07-01
在 v0.4.0 基础上整理合规映射、统一 CLI 与 Dashboard 模型,并修复两处展示问题,不增加新的功能入口。
调整
- 合规映射改为按规则报告四种状态,不再仅看“是否存在某类证据”:
enforced表示记录了拒绝、隔离或终止类决策,detected表示命中但没有这类决策,not_triggered表示有映射规则但未命中,no_rule表示没有映射检测器。 - Dashboard 与
compliance map、gaps、explain共用compliance.MapRunRules。展开控制项可查看每次命中的时间、决策和原因,并跳转到对应图节点。 security.Rule增加mode(enforce/detect)和controls:,使自定义 YAML 规则能映射到框架控制项。detect 模式只记录,参见examples/policies/agentic-security.yaml。
修复
- 时间线详情和证据载荷不再截断到 160 字符;保留全文,默认收起,可展开。
- 图视图按标识前缀识别
tool_call、session、attempt、rollout、process,不再把这些端点显示为通用未知节点,概览计数也相应正确。
移除
- 旧的按证据类别映射的合规模型,包括
MapRun、ResolveEvidence和internal/compliance/evidence.go加载器,由按规则映射的模型替代。
v0.4.0 - 2026-06-30
从以 CLI 为主的证据原型,发展为可在在线回放沙箱 Agent 执行的溯源 Dashboard。相比 v0.3.0,主要新增证据图浏览器和沙箱内 Agent 示例:可直接导入签名供应链采集包,离线查看,无需 Linux/eBPF 虚拟机。
新增
- 签名示例包:
demo/snake-supply-chain/。 保存真实 Coding Agent 在沙箱内的执行,展示依赖安装钩子读取模拟秘密、尝试连接元数据 IP。通过forensics import导入后在 Dashboard 回放。 - 证据图视图。 包含执行概览、安全、进程、文件/产物、网络外发、数据流/污点、Agent 意图、信任/来源和沙箱边界。
- 有界细节层次。
summary展示分组摘要,expanded展示选定的重要细节,raw用于原始证据追查,不作为默认渲染。 - 证据追查。 从节点和风险信号定位相关证据;局部展开上游、下游、子节点和原始记录。
- 产物预览。 Dashboard 支持有大小限制、经过脱敏的内容预览。
- 取证导入。 支持签名可移植包,并增加导出后再导入的往返测试。
- 合规规则映射。 增加
examples/policies/agentic-security.yaml、internal/compliance的规则到控制项映射、Dashboard 合规 API 和面板,以及执行处置/仅检测两种规则模式。 - 展示测试。 增加 Dashboard 预览和图视图测试。
调整
- Dashboard 按查询组织证据,不再默认倾倒整张标准图。
- README 围绕执行可观测、Git 式溯源、Dashboard 回放和签名证据介绍项目。
- 原始遥测仍可查询,但默认不把每个系统调用或事件都画成图节点。
- 收窄污点推导:敏感数据流结合高风险外发目标判断,不把所有网络连接都当作数据泄露。
- 从采样进程数据补充名称,使图节点更易辨认。
- 遥测格式和 eBPF 文档同步到已交付的原生传感器能力。
- 路线图与状态文档同步到当时实际实现的 Dashboard、MCP、原生传感器、回放和合规接口。
修复
- 修正 Dashboard 视图的图摘要聚合计数。
- 点击风险信号时定位对应图路径,而非只列原始事件。
- 修正大量进程事件分组后的展开,使其返回预期证据集合。
- 区分“聚焦证据”和“执行时间线”的界面标签。
- 修复示例的正常回放校验,并补全信号面板。
示例
该版本示例无需重跑 Agent 或 eBPF 传感器,导入签名包即可:
go build -o /tmp/agentprov ./cmd/agentprov
/tmp/agentprov --data-dir /tmp/snake-replay forensics import \
demo/snake-supply-chain/run-snake-supervised.forensics.json.gz \
--pub-key demo/snake-supply-chain/attestation.pub
/tmp/agentprov --data-dir /tmp/snake-replay dashboard serve --addr 127.0.0.1:7396
然后打开 http://127.0.0.1:7396,选择 run-snake-supervised。
只有在兼容虚拟机中重新采集原始 Linux/eBPF 场景时,才需要 demo/snake-supply-chain/capture/ 下的脚本。回放已有包无需这些步骤。
验证
go test ./...- Dashboard JavaScript 语法检查。
- 签名取证包导入和回放流程。
- 图视图与 Dashboard 预览测试。
当时的已知边界
- 技术预览,不是生产级主机入侵检测系统。
- 提供本地完整性校验和签名证据导出,尚无采集时建立的主机外可信锚点,不能据此抵御恶意宿主机 root 对全部本地数据的重写。
- 中心证据服务、通知接入、长期多租户部署和生产级 eBPF 打包仍列为后续工作。