dsh-session-audit:DSH Session 执行审计插件

前言

DSH session 日志会记录一次运行中的事件,但原始事件本身并不能直接回答几个实际问题:这次跑了多久?有多少 Turns 和 Steps?哪些工具调用失败?有没有重复调用或重复读取同一文件?最后有没有观察到 test、build、lint、typecheck 这类验证命令?

下面介绍 dsh-session-audit。它针对单个 DSH session 输出执行分析和审计报告,帮助你查看 Agent 实际是如何工作的。

这是什么

dsh-session-audit 是 DeepSeek Harness(DSH)的 session 执行分析插件,由 bwndlct 维护。

它解决的问题是:把一次 session 中的步骤、工具调用、失败情况、重复动作、token 用量和验证信号,整理成一份可读报告。许可为 MIT。

核心功能

Session 指标

报告包含 session 级执行指标:

  • 时长
  • Turns
  • Steps
  • assistant 消息数
  • 工具调用总数
  • 按工具分布
  • 成功 / 失败拆分

Token 用量

Token 用量按 turn:step 折叠为 input / output / cache 桶,语义与官方 session-stats 投影一致。

如果 provider 没有上报 token 信息,报告会显示 Unavailable,不会进行估算。

确定性审计信号

dsh-session-audit 使用纯规则判定审计信号,不用 LLM 打分。已核实的信号包括:

  • 连续失败
  • 失败率
  • 高频工具
  • 完全相同的重复调用
  • 重复读取同一文件

验证命令识别

插件可以识别 shell 工具调用中的 test / build / lint / typecheck 命令,并报告实际观察到的结果。

输出格式

报告支持三种格式:

  • text:默认格式
  • Markdown
  • JSON:带稳定 schemaVersion

当前或历史 Session

默认审计当前内存中的 session,也可以按 id 审计任一持久化 session,并支持列出最近的 session。

健壮性

以下情况会被安全处理,并在报告的数据质量说明中呈现:

  • 空会话
  • 畸形事件
  • 未来新增的事件类型
  • 孤儿 result
  • 崩溃尾部残帧

安装与启用

先确认 DSH 版本要求:

@deepseek-ai/dsh 0.1.0-rc.6+

下面按步骤安装并启用。

1、执行安装命令:

dsh plugin --profile web add dsh-session-audit

2、编辑 ~/.dsh/profiles/web/package.json,把包加进 dsh.profile.bundles。上面的安装命令不会做这一步。

例如:

{
  "dsh": {
    "profile": {
      "bundles": [
        "dsh-session-audit"
      ]
    }
  }
}

如果已有其他 bundles 条目,保留现有条目,并把 dsh-session-audit 加入数组。

3、重启 dsh:

dsh web

4、验证挂载:

dsh --profile web --dump-config | grep -A2 session-audit

经过上面的步骤,插件应在当前 profile 中完成启用。

典型用法

审计当前会话

可以直接用自然语言:

审计当前会话

也可以指定格式:

用 markdown/json 格式审计当前会话

交互式 profile 中还可以使用斜杠命令:

/session-audit [text|markdown|json]

其中,空参数默认使用 text 格式。

审计历史 session

如果已经知道 session id,可以按 id 审计:

审计 session session-abc123

要列出可审计的持久化 session,可以使用:

列出最近的 session

对应的斜杠命令是:

/audit-list

适用场景与注意

适合谁

如果你需要复盘一次 DSH Agent 运行,检查工具调用失败、重复动作、token 用量和验证命令结果,dsh-session-audit 适合作为本地审计工具使用。

权限与安全检查

插件以当前 dsh 进程权限运行。它会读取本机 DSH home 的 session 日志和内存中的 live session 注册表。

安装前建议检查源码和许可证,确认其符合你的安全要求。

本地性

dsh-session-audit 只做本地分析:

  • 不发起任何网络请求
  • 不调 LLM API
  • 不发遥测
  • 不收集任何用户数据

报告只留在本地,作为工具结果返回给你和模型阅读,不写盘。

限制

已核实的限制包括:

  • 验证命令识别基于模式;包在特殊脚本名里的验证器无法识别。
  • 子 Agent 的 session 需按 id 单独审计;暂无跨 session 汇总。
  • Reasoning token 在 provider 上报时展示,但部分 provider 的逐步值无法重建。
  • 暂无时间序列 / 上下文增长分析。

结尾

dsh-session-audit 的价值在于把 DSH session 的执行过程整理成可检查的信息:步骤、工具调用、失败、重复动作、token 用量和验证信号都会出现在报告中。

仓库地址:

https://github.com/bwndlct/dsh-session-audit

目录页可搜索插件名:

dsh-session-audit
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜