前言¶
DeepSeek Harness(DSH)裏的 agent 跑長任務時,常見兩種尷尬:額度用盡停在半路,充完值還得回到電腦前重新交代;或者任務明顯跑偏,卻只能等這一輪結束。郵件提醒只能「看一眼」,不能真正改運行狀態。
dsh-mail-command 做的是收信側:你在手機上回復通知郵件,帶一次性口令校驗通過後,任務可以繼續、可以立刻停止,正文裏還可以寫新的要求。它不負責發信,必須和 dsh-qq-mail-notify 一起裝;口令隨通知郵件發出,單獨安裝本插件不會有任何效果。
這是什麼¶
- 倉庫: yashua233/dsh-mail-command
- 維護者: yashua233
- 分類: 工作流(社區目錄 SkillHub)
- 當前插件版本(package.json):
1.3.17 - 聲明兼容的 DSH 版本:
0.2.1-rc.5(作者僅實測該版本,未寫版本範圍) - 許可證: MIT
兩個插件通過 cordis 服務協作,代碼上互不 import:通知插件發信並在郵件裏掛上口令;本插件輪詢 IMAP、校驗口令後,把「繼續 / 停止 / 自定義要求」注入 agent 隊列。
核心功能¶
繼續與停止¶
通知郵件末尾會說明可用指令。你直接回復該郵件,保留主題裏的 [CONT:xxxxxxxx](8 位一次性口令),正文即指令:
| 你回的正文 | 結果 |
|---|---|
| 空 | 按原計劃繼續 |
繼續 |
繼續 |
停止 / stop / 取消 |
停止當前輪 |
繼續,但把測試也跑一遍 |
繼續,要求 = 整句原文 |
把 README 補完再提交 |
繼續,要求 = 這句 |
引用區(> 開頭的行、-----原始郵件----- 之後的內容)會自動剝掉,不會當成指令的一部分。
繼續時,插件往 DSH 內部的 next-turn 隊列追加消息並喚醒驅動,效果類似在界面裏再發一條輸入。停止時走 agent.cancel(),與界面點停止同一路徑。
審批迴信(可選,默認關)¶
在通知插件裏打開 approvalMailEnabled 後,工具等待授權時會另髮帶獨立口令的郵件。回信只認明確表態:允許 / 同意 / ok / 1 放行;拒絕 / no / 2 拒絕。認不出來按「沒回」處理,超時交回界面。審批口令與「繼續」口令分表存儲,不會串。
收件節奏(三段自適應)¶
剛發通知時查得勤,越久越稀疏,超過 30 分鐘暫停檢測,下一封通知發出時再喚醒。可調字段見 $DSH_HOME/mail-command.json(或與 README 中表格一致):fastWindowMs、fastIntervalMs、slowIntervalMs、stopAfterMs。mail_command action=status 可查看當前檔位。
安全¶
SMTP 發件人可僞造,因此不能只看 From。口令隨主題發出、一次性、命中作廢;同一會話在未回覆前複用同一口令;存活默認 30 分鐘(tokenTtlMs),每發一封通知重新計時。動作需同時滿足:發件人在允許列表、口令存在且未用過且未過期。口令落盤於 $DSH_HOME/mail-command-tokens.json,DSH 重啓後仍可用。
安裝與啓用¶
前置要求:必須先裝 dsh-qq-mail-notify,並在其設置裏配好發件郵箱與 SMTP 授權碼;本插件複用同一份憑據。
建議兩個一起裝(desktop 換成你 ~/.dsh/profiles/ 下實際的 profile 名):
dsh plugin --profile desktop add github:yashua233/dsh-qq-mail-notify
dsh plugin --profile desktop add github:yashua233/dsh-mail-command
僅裝本插件時,官方提供的命令爲:
# 從 GitHub
dsh plugin --profile desktop add github:yashua233/dsh-mail-command
# 本地目錄
dsh plugin --profile desktop add link:/path/to/dsh-mail-command
裝完重啓一次生效。發一封測試通知,確認能收到且末尾帶口令,再回複試一次。
典型用法¶
- 確認
dsh-qq-mail-notify已配置並能收到通知。 - 任務因額度等原因停住、或你想遠程改方向時,在手機上回復最近那封通知郵件;主題保留
[CONT:...],正文寫繼續、停止,或寫完整的新要求。 - 需要排障時:
mail_command action=status
mail_command action=check
status 可看開關、IMAP、待用口令數、lastError;待用口令一直爲 0 時,先確認通知插件已裝且能取到 mailCommand 服務。
配置說明¶
郵箱憑據默認從 $DSH_HOME/qq-mail-notify.json 讀取。本插件自有配置在 $DSH_HOME/mail-command.json:
| 字段 | 默認 | 說明 |
|---|---|---|
enabled |
true |
總開關 |
traceImap |
false |
IMAP 過程打日誌,排障用 |
tokenTtlMs |
1800000 |
口令存活 30 分鐘 |
host / port |
imap.qq.com / 993 |
未填時按 user 域名推斷(QQ / 163 / Gmail 等) |
user / authCode |
取自通知插件 | 僅當要用另一個郵箱收信時單獨填 |
舊配置項 intervalMs 已移除,無效。收件節奏以 fastWindowMs、fastIntervalMs、slowIntervalMs、stopAfterMs 爲準。
適用場景與注意¶
適合誰:已經用 QQ 郵箱(或 README 支持的域名)做 DSH 通知、又希望離開電腦也能繼續或叫停任務的用戶。
依賴關係:通知插件可單獨做純提醒;本插件單獨裝等於空轉。升級其中一個不必強制同步另一個,但功能上本插件離不開通知插件。
權限與信任:插件以當前 DSH 進程權限運行,繼續指令會讓 agent 按你的正文操作本機文件與工具。安裝前建議閱讀源碼與 MIT 許可證,自行評估是否用於生產環境。
兼容性:作者只聲明 0.2.1-rc.5。DSH 預覽期可能有破壞性變更,其他版本需自行改 dsh.compatibility.dsh 後試裝,行爲不保證。
隱私(據 README):除連接你的 IMAP 外不聯網;郵件正文解析後不落盤;僅口令與會話 id 寫入本機 JSON,約 30 分鐘後作廢。
結尾¶
dsh-mail-command 把「看通知」延伸成「回郵件就能指揮任務」:繼續、停止、或附帶一句新需求,都建立在通知插件發出的口令之上。社區目錄與 GitHub 如下,issue 請走倉庫 Issues 並打碼授權碼與完整郵箱。