前言¶
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