前言¶
DSH 在每一轮对话中都会注入运行时上下文快照。如果模型没有直接的时间信息,它只能依赖工具输出、日志行或文件时间戳来推断时间。这会导致诸如“今晚”实际上是明天下午、或者“今天”的报告中日期跨度错误等问题。这个插件在上下文中增加了一行当前日期和时间,并在每次组装时重新评估,提供权威时钟值。
这是什么¶
这是一个 DeepSeek Harness (DSH) 插件,由 apex-mochen 维护。
- 核心功能:给 DSH 代理注入当前日期和时间,使其能读取时间而非推断时间。
- 解决的问题:解决语言模型没有时钟、依赖历史时间戳导致时间感知错误的问题。
核心功能¶
- 动态注入:在每次组装时注入当前日期和时间。
- 权威时钟:提供权威时钟值,减少模型对时间的猜测。
- 高度可配置:支持配置时区、语言环境、标签、精度等。
- 零依赖:插件本身不依赖外部库(仅依赖 DSH 运行时环境)。
安装与启用¶
通过 npm 或 GitHub 安装插件:
# 通过 GitHub 安装
dsh plugin --profile web add github:apex-mochen/dsh-clock-context
# 通过 npm 安装
dsh plugin --profile web add dsh-clock-context
安装后,重启配置文件或使用 patchReload: live 生效。
配置¶
在 cordis.patch.yml 中配置选项。所有选项均为可选,默认值如下:
- id: dsh-clock-context
config:
timeZone: Asia/Shanghai # IANA 时区,默认为主机时区
locale: zh-CN # 语言环境,默认为主机 locale
label: 当前时间 # 注入行的前缀
includeUtc: true # 是否包含 UTC 时间,默认 true
includeEpoch: false # 是否包含 Unix 时间戳,默认 false
precision: minute # 精度:'second'(默认,每轮更新)或 'minute'(每分钟更新)
hint: true # 是否添加“权威时钟”提示句,默认 true
order: 105 # 上下文快照中的排序顺序,默认 105
enabled: true # 是否启用,默认 true
关于 precision 的说明:DSH 只有在快照文本发生变化时才会重新记录。设置为 second 时,快照每轮都会更新;设置为 minute 时,文本最多每分钟更新一次,可以减少上下文变更的频率。
验证¶
询问代理读取其自身的运行上下文来验证:
Quote the line from your runtime context that gives the current date and time, verbatim.
如果插件生效,回答中应包含 Current date/time: 行,且时间戳与当前时间一致。如果回答中没有该行,请检查:
1. dsh plugin --profile web ls - 确认插件已安装。
2. cordis.patch.yml - 确认配置条目已生效。
注意事项¶
- 无 Config Schema:插件未声明 Config schema,依赖默认值。
- 函数属性:
text属性是函数而非字符串,确保每次组装时获取最新值。 - 依赖版本:依赖
@deepseek-ai/cordis(>= 4.0.1)。 - 更新频率:精度为
second时,每轮都会更新上下文快照;精度为minute时,每分钟更新一次。
结尾¶
通过注入权威时钟,这个插件消除了模型对时间推断的不确定性,使其在处理当前时间、日期跨度等任务时更加准确。适合需要精确时间感知的 DSH 工作流。
- 插件目录:https://www.skillhub.cn/plugins/apex-mochen/dsh-clock-context
- GitHub 仓库:https://github.com/apex-mochen/dsh-clock-context