前言¶
在 DeepSeek Harness (DSH) 的開發與調試過程中,讓大模型準確感知當前時間、計算跨輪對話的閒置時長,是提升體驗的關鍵細節。如果僅依賴模型自行推斷或進行復雜的日期運算,不僅消耗 token,還容易產生錯誤。
dsh-message-datetime 插件正是爲了解決這一具體痛點而生。它通過在每輪對話開始時注入簡短的時間戳與閒置時長信息,讓模型始終知曉“現在幾點”、“上一輪何時結束”以及“閒置了多久”,從而無需模型自行計算歷史耗時。
插件簡介¶
名稱:dsh-message-datetime
維護者:john-walks-slow
類別:模型推理
許可證:MIT
這是一個輕量級插件,主要功能是在每個對話 turn 的起始階段,向模型上下文追加一條時間通知。它覆蓋了用戶 turn、自動續跑 round 以及 subagent turn,且完全保護 DSH 原生的分支功能(不破壞 Web UI 中的 turn-tail 約束)。
核心功能¶
- 每輪時鐘注入:在每輪對話的第一個 step(
step === 1)時,自動注入當前時間。後續的 step 不會重複注入。 - 跨輪閒置感知:在後續輪次中,自動顯示上一輪的結束時間與閒置時長(如
idle for 25m)。 - 零權限與中斷安全:插件不涉及外部服務、網絡請求或文件系統寫入。任何注入失敗僅降級爲 warn,絕不打斷當前的 turn。
- 全場景覆蓋:支持用戶對話、目標自動續跑以及 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,點擊展開可查看完整文本。
注意事項¶
- 依賴版本:插件依賴
@deepseek-ai/cordis4.0.2 和@deepseek-ai/dsh-llm0.1.2-rc.1。 - 與官方插件衝突:不建議同時啓用官方的
@deepseek-ai/dsh-time-context插件,因爲兩者機制同源,同時啓用會導致雙重時間注入。 - 時區回退:時區解析優先級爲:瀏覽器時區 → 配置的
timeZone→ 進程時區。無效值會靜默回退,不影響流程。 - 安全機制:插件僅追加
user/message類型的通知,位於 step 窗口內,滿足 token-meter replay 約束。
總結¶
dsh-message-datetime 是一個專注於提供時鐘上下文的工具,它通過輕量級的單行注入,解決了模型在多輪對話中感知時間流逝和計算耗時的問題,非常適合需要精確時間控制的智能體場景。