用戶注意力與待辦收件箱:DSH 人類交互門控與超時待辦

前言

在 DeepSeek Harness(DSH)裏,批准(approval/request)和向用戶提問(user-questions/request)都必須等人回應。用戶一旦暫離界面,會話往往長時間掛在這兩類交互上;即使用戶已經離線,Host 側仍可能反覆等待。被超時或策略最終拒絕的交互,若只返回一條拒絕說明,用戶事後很難集中複覈,AI 也缺少「用戶補批後再續辦」的固定入口。

社區插件 dsh-user-attention-and-todo-inbox(維護者 DX12xyz,分類:工作流,MIT,當前 bundle 版本 1.5.0)把「用戶是否在界面旁」做成可門控的三態,並把被最終拒絕的批准/提問收進持久化待辦收件箱,供右欄複覈後由 AI 通過 todo_list / todo_get / todo_execute 一次性續辦。目錄頁:https://www.skillhub.cn/plugins/DX12xyz/dsh-user-attention-and-todo-inbox。

這是什麼

一張插件卡下有兩個可獨立開關的組件包,沒有共享模塊,關掉其中一個另一個仍可單獨加載:

組件 Loader 行 包名 職責
用戶注意力 user-attention @local/dsh-user-attention-core online / away / offline 狀態機;對批准與提問做門控、暫離多輪提醒、最終拒絕;提供 userAttention 服務
待辦收件箱 todo-inbox @local/dsh-todo-inbox 收下被最終拒絕的交互;右欄待辦頁與三個 AI 工具;todoInbox 服務

倉庫根目錄即 bundle 包 @local/dsh-user-attention-and-todo-inbox;兩個組件通過 bundledDependencies 隨 bundle 分發,根目錄 npm pack 可產出單個自包含 tgz。技術細節見倉庫內 TECHDOC.md。

核心功能

人類交互門控

  • 在線:批准與提問按 DSH 默認流程呈現。
  • 暫離:對 approval/request、user-questions/request 按配置多輪提醒(等待間隔次數爲 awayRetryCount + 1);重試耗盡後按 approvalTimeoutAction / questionTimeoutAction 做最終拒絕,策略爲 reject 或 enqueue。
  • 離線:立即拒絕,不呈現、不提醒、不重試。

當策略爲 enqueue 且待辦組件可用時,最終拒絕與入隊同時發生:交互在拒絕的同時寫入待辦收件箱,模型側說明會追加提示——已進待辦,用戶批准/回答後應調用 todo_execute,不要自行重試。

僅啓用用戶注意力、關閉待辦時:門控照常,但 enqueue 不生效,設置頁不顯示自動入隊相關選項。

待辦收件箱與 AI 工具

  • todo_list:列出當前會話(或按工具參數)待辦。
  • todo_get:查看單條詳情。
  • todo_execute:在用戶於右欄完成複覈後,由 AI 執行批准或取回答案;支持批量,一次最多 10 條,默認串行,首個失敗即停。

一次性授權:todo_execute 執行前通過 registerGrant(callId, todoId, sessionId) 登記 grant;門控側 takeApprovalGrant(callId) 命中後對本次新 callId 直接放行(allowed-once),不再彈出第二張審批卡;TTL 5 分鐘,取出即刪。

界面與配置要點

  • 輸入框下方狀態膠囊:在線/暫離/離線、手動標記、暫離倒計時,可點擊切換。
  • 暫離重試與最終拒絕時頁面頂層提醒條(含提示音)。
  • 輸入框上方待辦高亮條;右側欄待辦頁分「待審覈 / 已操作 / 失敗 / 歷史」,四個分段共用「本會話 / 全部會話」作用域。
  • 插件卡詳情合併設置頁:自動入隊、批准/提問超時策略、優先推薦;待辦可用且自動入隊開啓時可見「釋放並刪除待辦緩存」(對應 POST /api/todo-inbox/purge)。

常用配置(bundle 補丁默認值,保存後寫入 profile 覆蓋層;Loader 對 config 爲整體替換,覆蓋塊須寫全該行字段):

設置 行 補丁默認 說明
自動入隊 user-attention.todoAutoEnqueue 開 關則超時不再入隊
批准超時 user-attention.approvalTimeoutAction enqueue reject / enqueue
提問超時 user-attention.questionTimeoutAction enqueue reject / enqueue
優先推薦 user-attention.preferRecommended 關 識別 (Recommended) / (推薦) 時按推薦項回答
空閒判定 user-attention.idleTimeoutMs 300000 毫秒,判定暫離
暫離重試 user-attention.awayRetryCount 5 0–5
輪詢間隔 todo-inbox.pollIntervalMs 2000 待辦 Client 輪詢
待辦上限 todo-inbox.maxTodos 200 超出後不再自動入隊

持久化路徑(Host):$DSH_HOME/.user-attention/state.json、$DSH_HOME/.dsh-todo-inbox/state.json,只讀歷史 $DSH_HOME/.dsh-todo-inbox/history.json。

安裝與啓用

裝完後刷新頁面(Client 模塊在重載後生效);首次安裝或新增 Loader 行需重啓一次 DSH。下文以 Web profile(web)爲例。

方式一(推薦):DSH 插件頁 →「安裝插件」,安裝源填 https://github.com/DX12xyz/dsh-user-attention-and-todo-inbox,或 git 簡寫 github:DX12xyz/dsh-user-attention-and-todo-inbox,按提示重啓/刷新。

方式二:命令行從 git 源安裝

dsh plugin --profile web add github:DX12xyz/dsh-user-attention-and-todo-inbox

方式三:本地目錄(改代碼或離線目錄樹):

dsh plugin --profile web add "link:<倉庫根目錄絕對路徑>"

方式四:離線 tgz(在倉庫根執行 npm pack,再安裝產出文件):

cd <倉庫根目錄>
npm pack
dsh plugin --profile web add "file:<倉庫根目錄>/local-dsh-user-attention-and-todo-inbox-1.5.0.tgz"

卸載:

dsh plugin --profile web remove @local/dsh-user-attention-and-todo-inbox

卸載後若 profile 的 cordis.patch.yml 仍殘留 - id: user-attention 或 - id: todo-inbox 覆蓋行,Loader 會報找不到包並跳過,建議手動刪除這些行。

典型用法

  1. 按上一節安裝並刷新;確認插件列表出現一張插件卡、其下 user-attention 與 todo-inbox 兩行可獨立開關,且輸入框下方出現狀態膠囊。
  2. 用戶暫離時,AI 發起的批准/提問經門控提醒;耗盡後若配置爲 enqueue,條目進入右欄「待審覈」。
  3. 用戶在待辦頁批准、拒絕或回答;需要 AI 續辦時,在來源會話讓模型調用 todo_list / todo_get 瞭解隊列,再在用戶完成複覈後調用 todo_execute(批量 ≤10)。
  4. 在合併設置頁調整超時策略、自動入隊與優先推薦;僅改待辦行 pollIntervalMs、maxTodos 時,可改 profile 補丁或調 POST /api/todo-inbox/config(待辦行字段暫無合併設置頁 UI)。

適用場景與注意

適合:長時間開着 DSH Web 界面、會話裏頻繁出現批准與提問;希望暫離/離線時有確定拒絕結果,而不是無限等待;希望超時拒絕的交互可集中複覈,並由 AI 在一次性授權下續辦。

注意:

  • 插件 Host 半身以當前 DSH 進程權限運行,安裝前請閱讀源碼與 MIT 許可證,並理解上述數據文件落盤位置。
  • 社區目錄 skillhub.cn 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態遵循「一切皆插件」,本 bundle 是社區工作流類擴展,非官方應用商店預裝項。
  • 只開待辦、關注意力時,待辦仍可工作,bundle 設置頁頂部會有橙色說明;只開注意力、關待辦時無待辦消費者,enqueue 策略無效。

結尾

用戶注意力與待辦收件箱把「人在不在」變成三態門控,並把最終拒絕的人類交互收進可複覈隊列,補齊 DSH 裏「等人回話」與「事後續辦」之間的缺口。進一步瞭解實現與 API 見 GitHub 倉庫 README 與 TECHDOC:

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

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

小夜