User Attention and Todo Inbox: DSH Human-Interaction Gating and Timeout Todos

前言

在 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:

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

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

Xiaoye