dsh-result-cap:DeepSeek Harness 工具结果确定性字节截断插件

前言

在 DeepSeek Harness (DSH) 的插件化架构中,当工具(如网页抓取)返回过大的结果时,往往会直接消耗掉对话上下文窗口,导致任务中断。dsh-result-cap 作为一个模型推理类插件,解决的是单条工具结果的长度控制问题。它不管理整体上下文窗口,而是对单次工具返回进行确定性截断。

什么是 dsh-result-cap

这是一个由 jwilson411 维护的插件,核心是对工具结果进行确定性 UTF-8 字节限制。它保留结果的前 N 个字节,同时返回完整原始内容的 SHA256 哈希值,确保截断后的结果能被识别为非完整内容。

核心功能

该插件提供以下功能:

  1. 确定性截断:按 UTF-8 字节对结果进行截断,保留前 N 个字节。
  2. 明确标记:返回 truncated 布尔标志和 omitted_bytes(被丢弃的字节数)。
  3. 完整哈希:返回完整原始内容的 SHA256 哈希值,而非截断后内容的哈希。
  4. 配置与优先级:支持配置 maxBytes(默认 8192),支持通过环境变量 DSH_RESULT_CAP_MAX_BYTES 设置。配置优先级为:配置文件 > 环境变量 > 默认值。
  5. 直接调用:支持直接使用 capResult 函数进行单元测试。
  6. 类型限制:当前版本仅限制字符串类型(text 字段),不处理 Buffer 或图片。

安装与启用

安装插件需要 @deepseek-ai/dsh-tools 依赖。

  1. 安装:
    dsh plugin --profile default add github:jwilson411/dsh-result-cap
  1. 配置:
    - id: result-cap
      config:
        maxBytes: 32000

典型用法

在代码中可以直接使用 capResult 函数进行测试:

import { capResult } from 'dsh-result-cap'

capResult('short enough', 8192)
// → 'short enough'   (未截断)

capResult('x'.repeat(20000), 8192)
// → { text: 'xxxx…', truncated: true, omitted_bytes: 11808, sha256: '…' }

适用场景与注意

  • 适用场景:当工具返回的内容远超上下文窗口时,作为最后一道防线,只保留头部内容并标记截断,防止整个任务因单条结果过大而中断。
  • 注意:
    • 它不是 Headroom、压缩模型、语义压缩或总结器,只是简单的字节切片。
    • 当前版本 v1 仅支持字符串类型,不支持 Buffer 或图片。
    • 配置时,id-targeted patch 会替换整个 config 块,不能合并。
    • 不静默截断,必须返回 truncated: true 标志。
    • 配置参数必须为整数且至少为 1。无效值(如浮点数、负数、布尔值或未知键)会被拒绝,抛出 InvalidResultCapConfigError(代码 RESULT_CAP_CONFIG)。

结尾

dsh-result-cap 提供了可控的字节截断能力,配合 SHA256 哈希值,解决了工具结果溢出上下文的问题。更多细节可查阅 GitHub 仓库 或 技能中心目录。

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

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

小夜