dsh-ai-curfew:让 AI 也有下班时间

前言

DeepSeek Harness (DSH) 采用了插件化架构,这使得扩展功能变得灵活。在构建智能体应用时,AI 往往处于“永远在线”的状态。dsh-ai-curfew 插件将这种状态改写为“按班表工作”。它通过两个独立的逻辑轴控制 AI 的行为:一个是基于时段的“峰谷班表”,另一个是基于时间的“宵禁曲线”。插件会取两者中更严格的一条规则生效。

核心功能

该插件通过 llm/stream waterfall 的短路机制实现下班控制,核心行为如下:

  1. 行为阶段:AI 的状态分为“上班中”(满血)、“打烊倒计时”(maxTokens 2048→64)、“已下班”(只回“。”)和“熄灯”(只回“明天再说。”)。
  2. 成本控制:下班后不再发起 API 请求,实现 0 token、0 成本和毫秒级返回。
  3. 双重控制轴:
    • A 峰谷班表:高峰时段不上班,低谷时段上班(如工作日的特定时段)。
    • B 宵禁曲线:到点后预算沿锚点表从 2048 滑到 64。
    • 取谁更严谁生效。
  4. 短路回复:下班回复不触网,直接合成流式输出,避免因请求失败导致用户看到“AI 死了”的情况。
  5. 灵活性:闸门 A 可以单独关掉,退化成纯宵禁插件。

安装与启用

DSH 通过 profile 隔离插件环境。请将 --profile desktop 替换为你实际使用的 profile。

从 GitHub 安装(推荐固定版本):

dsh plugin --profile desktop add github:qiz42144-web/dsh-ai-curfew#v0.1.0

从本地目录安装(用于开发调试):

dsh plugin --profile desktop add link:/绝对路径/ai-curfew

配置文件位于 $DSH_HOME/dsh-ai-curfew/config.json。修改后按 mtime 热读生效,无需重启 DSH。

配置说明

配置文件支持以下键值(其余走默认值):

{
  "enabled": true,
  "timezone": "Asia/Shanghai",
  "wakeUp": "09:00",
  "curfewStart": "23:00",
  "lightsOut": "03:00",
  "peakShift": true,
  "offDutyReply": "。",
  "lightsOutReply": "明天再说。",
  "anchors": [23, 2048, 24, 64],
  "curve": "linear",
  "debugNow": "01:30"
}
  • anchors:预算锚点表,格式为 [时刻, tokens]。
  • curve:插值方式,支持 linear(线性)、step(阶梯)、easeIn(先稳后崩)。
  • debugNow:时间机器功能,可手动指定时间进行测试。

使用方式

插件提供了一系列命令行指令,不经过模型,确保在下班状态下也能使用。

  1. /curfew:查看当前判定、预算与依据。
  2. /curfew overtime 30m:强制加班 30 分钟(暂停宵禁,期间正常上班)。
  3. /curfew off:立刻下班。
  4. /curfew auto:恢复自动班表(取消加班、强制下班和时间机器)。
  5. /curfew debug HH:MM:时间机器,测试任意时段。
  6. /curfew debug clear:回到真实时间。

术语说明:插件中“加班”指的是你命令 AI 加班,而不是 AI 请求请假;off 指令只管“AI 下班”,不兼职表示“关闭宵禁”。

注意事项

  • 尚未发布到 npm:目前只能通过 GitHub 安装。
  • 重启生效:改完代码后需要重启 DSH 才能生效。
  • 默认关闭 safetyMaxTokens:下班回复由插件逻辑直接生成,无需额外硬上限。若自行开启,需根据模型的 reasoning effort 调整,否则可能导致请求失败。
  • 权限:插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证。
羽毛球分组比赛记分
小程序二维码

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

小夜