dsh-plugin-heartbeat:给 DeepSeek Harness 的 agent 加一个定时心跳

前言

在 DeepSeek Harness(DSH)里,agent 通常由用户消息触发。你不问,它一般也不会主动开口。对于长时间运行、等待外部事件,或者用户暂时离开的会话,这种模式容易让人错过进展、风险和卡点。

下面介绍的 dsh-plugin-heartbeat 是一个 DSH 插件,用来给 agent 加一个定时唤醒机制。它让 agent 在空闲或任务间隙按设定节奏主动说一句:有进展说进展,有风险说风险,没有内容就简短说明。

这是什么

dsh-plugin-heartbeat 由 LittleBlackTong 维护,采用 MIT 许可证。它是一个 Host 平面的 Cordis 插件,监听 agent/created 事件,并为每个 root agent 挂一条独立定时器。

它通过 agent.followup() 注入一条合成 user 消息,消息来源标记为 source.kind === 'plugin'。这个机制用于让 agent 主动汇报状态,而不是让它自行开启新任务。

核心能力

定时唤醒

插件按设定周期唤醒 agent。agent 空闲时,会立即开始新一轮;agent 忙时,消息进入队列,等当前轮结束再处理。连续忙时,队列中只保留一条待处理,不堆积。

退避与硬停

心跳间隔支持退避:初始为 10 分钟,如果没有真人回复,后续间隔按 [base, 2×base, 3×base] 增加。

连续 pauseAfterMissed 拍没有真人回复时,插件会硬停定时器。用户下一条消息到达后,心跳再复活。

投递前压缩

支持 compactBeforeBeat。开启时,插件会在投递心跳前把历史压缩成 checkpoint 摘要,减少每拍注入的上下文量。

频控与展示

支持 maxBeatsPerHour,为 60 分钟窗口设置心跳上限。

注入的心跳消息在对话流里渲染为折叠的 context 小行,不是一整块用户气泡。

安装与启用

安装命令如下:

dsh plugin --profile <profile> add dsh-plugin-heartbeat

安装后重启 DSH 生效。插件运行依赖:

@deepseek-ai/cordis ^4.0.1
@deepseek-ai/schemastery ^3.18.1
Node >=18

插件以当前 DSH 进程权限运行。安装前建议先检查源码和 MIT 许可证,再决定是否加入自己的 profile。

运行期配置走 <dshHome>/heartbeat.json。如果覆盖 composition 键,例如 prompt,使用不带 insert 的 id 覆盖条目。

不要往 profile 的 cordis.patch.yml 里手写:

- insert:
    id: dsh-heartbeat

这可能导致 duplicate loader entry id "dsh-heartbeat",进而启动失败。

典型用法

安装并重启 DSH 后,可以进入设置 → 心跳 Heartbeat 面板,调整频率、开关和暂停阈值,保存后立即应用,无需重启。

如果只想改默认提示词,可以用 composition 覆盖 prompt。示例如下:

- id: dsh-heartbeat
  config:
    prompt: |
      当前时间 {{time}}。
      汇报进展、风险或卡点;没有内容就简短说明。
      总长不超过 5 句。

上面的 {{time}} 会被替换为当前时间。该示例只用到已确认的模板变量和不超过 5 句的限制。

使用边界

下面几点在使用时需要注意:

  • 心跳只在 DSH 进程活着时存在;DSH 应用关闭后停止。
  • 每个会话(root agent)各自一条定时器;子 agent 不挂心跳。
  • 心跳不打断正在执行的任务;任务结束后会补一句。
  • 默认提示词要求 agent 别自作主张开新活,心跳定位是汇报,不是新任务。
  • 硬停前已经排队的一条心跳,会在当前轮结束时被消费;此后不会再产生新拍。
  • dsh-plugin-memory 零依赖;同时安装时,两者消息在同一个 inbox 队列里排队。
  • 插件宿主自建 GET/POST /api/heartbeat/config 路由,设置面板直连该路由。

结尾

dsh-plugin-heartbeat 的价值很简单:把“用户问,agent 答”变成“agent 在冷场时主动说一句”。它适合需要长时间运行 agent、希望获取状态更新的 DSH 用户和开发者。

社区目录页:
https://www.skillhub.cn/plugins/LittleBlackTong/dsh-plugin-heartbeat

GitHub 仓库:
https://github.com/LittleBlackTong/dsh-plugin-heartbeat

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

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

小夜