T-constraint (dsh-tlock): Equipping per-round generation with a token and time dual-gate

前言

在 DSH 里让模型写草稿或答一个问题,有时一轮会拉得很长:输出字数失控,或在工具调用链里一路改到半个项目。宿主侧往往要等服务结束才能收束,开跑前也很难用一句话说清楚「写到这儿就停」。

T约束(dsh-tlock)是面向 DSH 桌面工作流的一类插件:按 token 或按时间为「当前这一轮」设硬上限,到量或到点调用取消并可选归档;还可从断点继续生成。下面按安装、配置与归档结构说明用法与边界。

这是什么

T约束(包名 dsh-tlock,当前版本 0.3.2)由维护者 FenrisGe-RIS 发布,归类为工作流插件,采用 MIT 许可。形态为 DSH 插件(宿主 lib/index.mjs + Web 客户端 lib/client.js),无独立桌面程序;运行环境要求 DSH ≥ 0.2.1、Node ≥ 22,不引入第三方运行时依赖。

社区目录页:skillhub 上的 dsh-tlock。源码与文档:GitHub FenrisGe-RIS/dsh-tlock。DSH 生态强调「一切皆插件」;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。

核心功能

双闸:到量即断、到点即断

闸 量程 精度
Token 5 千 ~ 100 万 / 轮 流式过程估算,尝试结束时校准
时间 1 分钟 ~ 2 小时 / 轮 从按下发送起计(含工具调用耗时)

达到上限 80% / 90% 时会询问是否继续;选「到此为止」立刻断,选「继续」则不再打扰。硬断在安全点生效:正在执行的工具调用不会被强行截断,在下一个可中断点停下。

面板与发送前确认

DSH 页面右下角有 46px 黑色悬浮球(仅页面内,不在系统桌面),点开为可拖动的面板,位置会记住。硬断时边框变为橙色,提示有待处理的轮次。

面板页签包括:约束模式(滑条、归档模式、进度、继续/结束)、历史归档浏览与清单、设置(插件开关、悬浮球、面板尺寸、中/英等)。

约束默认关闭时,按发送会先问「要不要开约束」;确认后开启并弹面板,若不开可再按一次 Enter 直接发送。

Token 与时间各有一条滑条,刻度可吸附(如 token:5 千 / 5 万 / 20 万 / 40 万 / 70 万 / 100 万;时间:1 / 10 / 30 分钟,1 / 1.5 / 2 小时),也可手动输入任意合法值。用量进度条为绿色,便于对照本轮消耗。

归档

断档后若开启归档,会在桌面创建目录,结构示例:

桌面\DSH限定生成内容\token限定版\20261107-214503_重构登录模块\
├── 生成说明.md
├── 完整记录.md
├── 完整记录.json
└── meta.json

archiveMode 支持 brief(生成说明)、full(完整记录 md/json)、both(二者加 meta.json)。可点「解除归档」:到量仍断,但不写文件。

本地行为与数据

按 README 说明,插件不联网、不上报;主要依赖 Node 内置模块,读会话事件算用量、调用 agent.cancel() 断生成、将归档写入桌面。设置与状态落在 %USERPROFILE%\.dsh\storages\dsh-tlock\(如 settings.json),修改后约 500ms 内生效,无需重启 DSH。

安装与启用

推荐从 GitHub 拉取指定版本安装:

# 安装(从 GitHub 拉取,推荐)
dsh plugin --profile desktop add https://codeload.github.com/FenrisGe-RIS/dsh-tlock/tar.gz/v0.3.2

也可从 Releases 下载压缩包并按仓库说明安装。本地开发可用:

dsh plugin --profile desktop add file:C:/path/to/dsh-tlock

安装后重启 DSH 或刷新页面,右下角应出现悬浮球。点开面板设定本轮 token / 时间上限后关闭面板,照常提问即可;到量会硬断、可选归档并询问是否继续。

配置项

设置键与默认值(见 settings.json):

键 默认 说明
enabled true 插件总开关
tokenLimit 20000 每轮 token 上限(5000 ~ 1000000)
timeLimitSec 300 每轮时间上限(60 ~ 7200 秒)
archiveEnabled true 是否归档
archiveMode brief brief / full / both
warnPct [0.8, 0.9] 预警阈值
ball true DSH 内悬浮球
panelSize m 面板尺寸 s / m / l
lang zh zh / en

典型用法

  1. 安装并刷新 DSH,确认悬浮球出现。
  2. 在「约束模式」拖动滑条或手动输入本轮 token / 时间上限,选择归档模式。
  3. 发送问题;接近 80% / 90% 时按需选择继续或停止。
  4. 硬断后到桌面 DSH限定生成内容 下查看对应文件夹;需在面板内继续时选「继续生成」。

与 dsh-ration 可同时使用,二者独立计量;README 称需要更严格时可同时开启,T约束 的闸会先触发。

适用场景与注意

适合谁:需要在一轮对话内封顶输出规模或墙钟时间、并保留断点快照的 DSH 桌面用户;长任务里工具调用多、时间闸常先于 token 闸触发的情况,README 有明确说明。

权限与安全:插件以当前 DSH 进程权限运行,归档写入用户桌面目录。安装前宜自行查看源码与 MIT 许可证,确认符合环境策略。

已知边界(摘自官方文档):

  1. Token 为 quasi 实时,流式阶段用字符估算,实际可能略超上限一个尝试的量级。
  2. 时间含工具调用;子代理、后台任务不计入父轮,需单独发消息开新轮。
  3. 上限是每轮 ceiling,不是必须写满;短答会早停,下一轮重新计量。

结尾

T约束在 DSH 里为「当前这一轮」提供 token 与时间双闸,断档内容可本地归档并继续生成,适合把失控的长轮次收束在可预期的边界内。

  • 目录页:https://www.skillhub.cn/plugins/FenrisGe-RIS/dsh-tlock
  • 仓库:https://github.com/FenrisGe-RIS/dsh-tlock
羽毛球分组比赛记分
小程序二维码

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

Xiaoye