DeepSeek Harness 插件介绍:dsh-context-lens 语义压缩与骨架化

前言

DeepSeek Harness (DSH) 的核心版本(>= 0.1.5)原生管理上下文预算和 Token 计数,负责工具结果的剪枝和溢出策略。dsh-context-lens 插件专注于语义层面的压缩,解决的是“发送什么内容给模型”的问题。它将冗长的源代码文件转化为结构化的 AST 骨架,将巨大的测试或构建日志压缩为关键错误和摘要,从而在保持语义完整性的前提下降低 Token 消耗。

插件定位

  • 名称:goodandready/dsh-context-lens
  • 简介:Semantic AST Code Skeletonizer & Test Log Condenser for DeepSeek Harness
  • 维护者:GooDAnDReaDY
  • 许可证:MIT

核心功能

1. 多语言 AST 结构骨架生成器

该功能支持 TypeScript、JavaScript、Python、Go、C/C++、Rust、Java 以及 SQL DDL。它通过纯正则表达式实现,不依赖重型解析器。

处理逻辑如下:
- 保留内容:导入语句、类/结构体/接口定义、导出类型、函数签名、文档注释。
- 移除内容:函数或方法内部的实现体。

这允许 AI 在不阅读具体实现细节的情况下,理解代码的结构、类型定义和依赖关系。

2. 智能测试与构建日志压缩

针对 Jest、Vitest、Pytest、Go test、Cargo、Webpack、Vite、TSC、Maven、Gradle 等工具的输出,插件提供三种压缩模式:

  • raw:移除噪声行,保持执行顺序。
  • balanced:保留失败部分及其周围的上下文窗口(默认模式)。
  • aggressive:仅提取错误行和堆栈帧。

无论日志大小如何,插件都会自动提取失败信息、断言差异(Expected ... Received ...)以及测试摘要,而忽略成功的运行记录。

3. 路径焦点管理

在进行代码编辑任务时,可以指定当前活跃的目标文件或文件夹。

  • 焦点文件:返回完整的实现代码。
  • 非焦点文件:应用 AST 骨架化处理。

焦点状态严格限定在当前会话内(sessionId),用于在处理大型项目时,将上下文聚焦在当前修改的文件上。

Agent 工具使用

该插件提供两个工具,严格遵循 DSH 工具规范,返回结构化输出。

1. context_lens_code

Action 说明
skeleton (默认) 生成 AST 骨架。可指定 code、language、maxDepth、filePath。
focus 设置当前会话的焦点路径。
get_focus 获取当前会话的焦点路径。
clear_focus 清除当前会话的焦点路径。

2. context_lens_log

用于压缩测试或构建日志。可指定 text (或 log)、mode (raw/balanced/aggressive)、maxLines、auto、command。

  • 在 auto: true 模式下,仅对识别为测试/构建输出的文本进行处理。

配置项

配置通过 DSH 设置页面(plugins.row.config / plugins.item)管理:

属性 类型 默认值 描述
compressionMode string 'balanced' 日志压缩的激进程度。
astSkeletonMaxDepth number 3 AST 骨架生成的最大深度。
autoCompressThreshold number 4000 触发自动压缩日志的字符阈值(0 为禁用)。

注意事项

  • 核心版本依赖:上下文预算和 Token 计数由 DSH 核心(>= 0.1.5)管理,本插件仅负责语义压缩。
  • 实现方式:基于纯正则表达式,无原生依赖。
  • 会话隔离:路径焦点状态是会话隔离的。

生态信息

羽毛球分组比赛记分
小程序二维码

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

小夜