在 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 倉庫。