前言¶
在 DeepSeek Harness 的开发与调试过程中,需要精确掌握请求从发起到完成的完整生命周期。传统的日志记录往往包含大量敏感文本,不适合直接用于诊断。下面介绍一个插件,它可以在不保留提示词或响应内容的前提下,记录请求的精确坐标与结构化元数据。
是什么¶
dsh-request-flight-recorder 是一个由 abinzhao 维护的插件,属于 admin-security 类别。它是一个 Privacy-safe request flight recorder,通过观察官方 Agent Loop 请求,将请求组装与流式完成进行关联,并在内存中维护有限的飞行记录历史。
核心功能¶
该插件提供以下能力:
- 精确坐标:记录 Session、Turn、Step 和 request-attempt 的精确坐标。
- 结构化元数据:包含 Provider、model、generation settings、structural message counts 以及 tool schema sizes。
- 结构化名称:记录 Prompt section、context、tool 和 variable 的名称,但不包含具体值。
- 性能与状态:记录 Time to first chunk、total duration、token usage、finish reason 和结构化的失败状态。
- 进程健康:提供 Process health counters、retained-record queries 和确定性无内容差异。
- 人类命令:当 Profile 提供 Commands 服务时,提供可选的官方
/flight命令。
安装与启用¶
通过官方 DSH 插件命令进行安装:
dsh plugin --profile web add dsh-request-flight-recorder
安装后,插件会自动添加默认配置:
- insert:
- id: request-flight-recorder
name: dsh-request-flight-recorder
config:
capacity: 128
slowFirstChunkMs: 1000
slowTotalMs: 2000
说明:capacity 限制当前进程中保留的记录数;slowFirstChunkMs 和 slowTotalMs 用于分类诊断请求,不会改变请求执行语义。
典型用法¶
当当前 Profile 包含 Commands 服务时,可以使用以下命令:
- 查看最新记录:
/flight或/flight latest - 列出记录:
/flight list(默认 10 条)或/flight list [limit](1-20) - 按状态筛选:
- 失败记录:
/flight list failed [limit] - 慢请求:
/flight list slow [limit] - 截断记录:
/flight list truncated [limit]
- 失败记录:
- 查看详情:
/flight show <request-id-prefix> - 对比差异:
/flight diff或/flight diff <from-prefix> <to-prefix> - 健康检查:
/flight health - 解释说明:
/flight explain <request-id-prefix> - 统计信息:
/flight stats
说明:ID 解析为当前 Session 内的唯一前缀。输出为纯文本,限制在 4,096 UTF-16 代码单元。
适用场景与注意¶
- 隐私边界:插件不保留提示词文本、消息内容、工具参数、工具结果或提示词变量值。它只保留结构化名称、计数和计时信息。上游异常消息中的提供方细节也不被保留。
- 无持久化:插件不将记录写入磁盘。Ring Buffer 在进程退出、HMR 处置或服务处置时被清除。
- 运行环境:该插件在同一个 Node.js 进程中与其他 Profile 插件一起运行,不是安全边界。
- 语义不变:插件不会注册模型 Tool、Skill、prompt section 或 context provider,也不会改变 Agent Loop 或 prompt 语义。
短结尾¶
该插件通过结构化数据辅助开发者定位问题,同时严格遵守隐私边界。更多细节与源码,可参考插件目录或 GitHub 仓库。