前言¶
在 DeepSeek Harness(DSH)开发智能体时,经常会遇到需要延迟决策的场景:例如等待异步任务完成、检查服务健康状态,或者在当前环境发生变化后重新评估旧计划。简单的提醒或通知无法解决核心问题——Agent 需要真正地“回来”,基于最新的证据重新做决定,而不是机械地执行两分钟前的指令。
dsh-delayed-task 是一个 DSH 插件,旨在解决这个问题。它提供持久化的延时任务能力,支持在页面关闭后唤醒 Agent,并基于当前证据重新评估决策,而非机械执行历史计划。
插件概述¶
dsh-delayed-task 由开发者 m-guo-2 维护,采用 MIT 许可证。它将任务和授权信息存储在 DSH storage domain 中,不依赖浏览器环境,确保后台进程可正常调度。
核心功能¶
持久化与唤醒¶
插件将任务持久化存储。只要 DSH 后台进程存活,页面关闭后任务到期即可唤醒原会话。如果 DSH 或机器在任务期间停止,恢复运行后会补触发逾期任务。
基于证据的重新评估¶
任务到期时,Agent 会收到一条事件,提示其基于当前证据重新判断,而非机械执行历史计划。这避免了在环境已变化的情况下盲目执行旧指令。
授权模式¶
插件提供两种授权模式:
- 仅重新判断(默认):Agent 只能使用观察型工具(如
read、search),无法执行写入、删除或网络 fetch 等操作。 - 有限后台执行:用户在创建时确认 bounded grant,限制授权失效时间、工具白名单、最大调用次数等。过期或耗尽的 grant 会自动退回“仅重新判断”模式。
提供的工具¶
插件为 Agent 提供以下工具:
* delayed_task_create:创建延时决策。
* delayed_task_list:查看当前会话的任务。
* delayed_task_cancel:取消任务。
* delayed_task_revoke_authorization:撤销授权(保留任务为仅重新判断)。
安装与启用¶
前置要求:
* Node.js 22.19+
* pnpm 10
* 可运行的 DSH 开发者预览版
安装命令:
dsh plugin --profile web add github:m-guo-2/dsh-delayed-task
dsh --profile web --dump-config
建议锁定 commit 安装以确保安全:
dsh plugin --profile web add github:m-guo-2/dsh-delayed-task#<commit-sha>
典型用法¶
Agent 可以在当前会话中创建延时任务,指定在未来的某个时间点重新评估。
例如:
* 120 秒后重新检查 README.md 是否存在,并报告能否以只读方式取证。
* 部署后隔几分钟重新检查健康状态。
* 等待异步任务、CI 或数据处理进入下一状态。
* 在限流或暂时故障后,根据最新情况决定是否重试。
注意事项¶
- 非 Cron 服务:该插件不是 cron 或系统通知服务,不会发送邮件或系统通知。结果保存在原会话中。
- 进程依赖:DSH 后台进程必须存活。进程或机器停机期间不会执行任务,恢复后会补触发。
- 会话管理:原会话不存在或用户中止延时 turn 时,任务会自动取消。
- 权限继承:如果原会话是
danger-full-access,即使使用了 bounded grant,也不会额外收窄文件与进程边界。
总结¶
dsh-delayed-task 提供了一种在 DSH 中实现延时决策的机制。它通过持久化存储和明确的授权控制,让 Agent 能够在环境变化后安全地重新评估,适合需要等待外部状态、异步操作或持续监控的场景。