2huy4n/roleplaytimer:在沉默后主动唤醒角色扮演智能体

在 DeepSeek Harness(DSH)的插件生态中,扩展智能体行为的标准方式是编写插件。做角色扮演时,用户长时间不说话会导致智能体陷入沉默,造成对话断层。2huy4n/roleplaytimer 这个插件就是为了解决这个问题:它在检测到用户长时间未回复时,会自动投递一条 follow-up 消息,把说话权交还给智能体。

插件简介

这个插件由开发者 2huy4n 维护,开源协议为 MIT。它的核心价值在于模拟用户行为:当用户沉默达到设定时长后,插件会向该会话投递一条 user 角色的消息,由可编辑的「唤醒提示词」渲染内容。智能体收到消息后,会按角色卡继续以角色身份发言,而不是被动等待用户输入。

核心功能

  • 投递 follow-up 消息:检测到沉默后,通过 DSH 的 agent.followup() 接口投递消息。
  • 角色身份继续发言:唤醒后智能体按角色卡逻辑继续对话。
  • 不打断当前回合:投递动作只在智能体处于空闲时通过 agent.runMaintenance() 执行,不会打断正在进行的对话。
  • 模糊随机唤醒:支持设置模糊区间。例如设定间隔 180 分钟 + 模糊 30 分钟,实际唤醒时间会在 150~210 分钟之间随机发生。
  • 新会话默认静音:插件不会自动往新会话里写东西,默认关闭唤醒,需在控制面板手动开启。

安装与启用

安装插件需要使用官方的插件管理命令。

dsh plugin --profile <profile> add "git+https://github.com/2huy4n/roleplaytimer#v0.2.0"

安装完成后,重启 DSH 应用。在「设置」里找到 roleplaytimer 控制面板:勾选「启用主动唤醒」,再对着你想唤醒的会话点「取消静音」。

配置与用法

插件提供以下关键配置项:

  • intervalMinutes:用户沉默多久后唤醒一次,默认 150 分钟。
  • jitterMinutes:模糊区间(±分钟),设为 0 则精确计时。
  • dailyMaxWakes:每日唤醒上限,0 为不限。
  • quietStart / quietEnd:静默时段,例如设为 23:30 到 08:00,该时段不唤醒。
  • wakePrompt:唤醒提示词,支持 {minutes}、{count} 等占位符。
  • defaultMuted:新会话是否默认静音,默认为 true。

一个典型的用法是:设置 intervalMinutes 为 180,jitterMinutes 为 30。这意味着系统会在用户最后一次发言后,等待 150 到 210 分钟之间的随机时间,然后投递唤醒消息。

注意事项

使用前需注意几点硬约束:

  • 必须有活着的根 agent:只有 DSH 应用正在运行且该会话已打开时才可能投递,应用关闭期间不补发。
  • 空闲才投递:用户正在对话时不会插话;runMaintenance 占用中会退避重试。
  • 计时起点:倒计时以最后一次真实用户消息为起点,插件自己的唤醒消息不计入用户活动。
  • 新会话默认静音:插件第一次看到某个会话时默认不唤醒,必须在面板里对该会话点「取消静音」。

结语

这个插件通过在后台模拟用户发言,解决了长时间无人互动时智能体“卡死”的问题,特别适合需要长时间保持角色活跃度的场景。更多细节和源码可以参考 GitHub 仓库。

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

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

小夜