dsh-message-datetime:DeepSeek Harness 每轮时钟上下文插件

前言

在 DeepSeek Harness (DSH) 的开发与调试过程中,让大模型准确感知当前时间、计算跨轮对话的闲置时长,是提升体验的关键细节。如果仅依赖模型自行推断或进行复杂的日期运算,不仅消耗 token,还容易产生错误。

dsh-message-datetime 插件正是为了解决这一具体痛点而生。它通过在每轮对话开始时注入简短的时间戳与闲置时长信息,让模型始终知晓“现在几点”、“上一轮何时结束”以及“闲置了多久”,从而无需模型自行计算历史耗时。

插件简介

名称:dsh-message-datetime
维护者:john-walks-slow
类别:模型推理
许可证:MIT

这是一个轻量级插件,主要功能是在每个对话 turn 的起始阶段,向模型上下文追加一条时间通知。它覆盖了用户 turn、自动续跑 round 以及 subagent turn,且完全保护 DSH 原生的分支功能(不破坏 Web UI 中的 turn-tail 约束)。

核心功能

  1. 每轮时钟注入:在每轮对话的第一个 step(step === 1)时,自动注入当前时间。后续的 step 不会重复注入。
  2. 跨轮闲置感知:在后续轮次中,自动显示上一轮的结束时间与闲置时长(如 idle for 25m)。
  3. 零权限与中断安全:插件不涉及外部服务、网络请求或文件系统写入。任何注入失败仅降级为 warn,绝不打断当前的 turn。
  4. 全场景覆盖:支持用户对话、目标自动续跑以及 subagent 调用,确保所有场景下的模型都能获得时钟信息。

安装

通过 DSH CLI 进行安装:

dsh plugin --profile web add dsh-message-datetime

安装后,插件会自动通过自带的 cordis.patch.yml 挂载生效。

配置与输出

基本配置

在 DSH 的配置文件中,可以指定一个可选的回退时区:

- id: message-datetime
  name: dsh-message-datetime
  config:
    timeZone: Asia/Shanghai   # 浏览器时区不可用时采用此配置

输出示例

插件会在每轮对话的第一个 step 后追加通知。模型看到的格式如下:

首轮(无上一轮记录):

Current time: Tue 2026-09-15 01:04:34 +08:00 (Asia/Shanghai)

后续轮次(包含上一轮结束时间):

Current time: Tue 2026-09-15 01:04:34 +08:00 (Asia/Shanghai) | Last turn ended: Tue 2026-09-15 00:39:34 +08:00 (idle for 25m)

在 Web UI 中,该通知会渲染为折叠的 context chip,点击展开可查看完整文本。

注意事项

  1. 依赖版本:插件依赖 @deepseek-ai/cordis 4.0.2 和 @deepseek-ai/dsh-llm 0.1.2-rc.1。
  2. 与官方插件冲突:不建议同时启用官方的 @deepseek-ai/dsh-time-context 插件,因为两者机制同源,同时启用会导致双重时间注入。
  3. 时区回退:时区解析优先级为:浏览器时区 → 配置的 timeZone → 进程时区。无效值会静默回退,不影响流程。
  4. 安全机制:插件仅追加 user/message 类型的通知,位于 step 窗口内,满足 token-meter replay 约束。

总结

dsh-message-datetime 是一个专注于提供时钟上下文的工具,它通过轻量级的单行注入,解决了模型在多轮对话中感知时间流逝和计算耗时的问题,非常适合需要精确时间控制的智能体场景。

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

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

小夜