dsh-todos:类 Todoist 的待办管理 + 仪表盘

前言

DeepSeek Harness(DSH)的核心理念是“一切皆插件”。在智能体开发场景中,任务管理往往是断点:模型无法直接读写外部任务列表。dsh-todos 插件解决了这个问题,它为 DSH 提供了一个类 Todoist 的待办管理界面,挂在 Web GUI 的侧边栏与主面板上。同时,它将待办事项开放给 Agent,允许 DeepSeek 直接读写这些任务,从而实现任务流与对话流的结合。

核心功能

该插件主要包含以下能力:

  • 仪表盘:主面板展示 6 个 KPI、完成/新增趋势、优先级与项目/标签分布,以及 90 天热力图和每周目标。
  • 自然语言快速添加:支持直接在输入框或通过指令使用自然语言添加任务。
  • Agent 工具:提供 7 个工具接口,供 Agent 调用。
  • 到点提醒:使用 shell.overlay 渲染全局浮层提醒,支持一键完成或推迟到明天。
  • 导入导出:支持 JSON 整库备份与 Markdown 清单导出。

安装与启用

安装需要使用 plugin_manager 工具。

plugin_manager install_bundle target=<本目录的绝对路径>

安装完成后,cordis.patch.yml 会自动插入插件行 id: todos。重启 DSH 后,侧边栏会出现「待办」图标,点击进入主面板。

典型用法

自然语言添加

在对话框中直接输入自然语言即可创建任务:

明天下午3点 交报告 #Q4汇报 @写作 p1

Agent 工具调用

Agent 可以通过以下工具管理任务:
* todos_list:列出任务
* todos_create:创建任务
* todos_update:更新任务
* todos_complete:完成任务
* todos_delete:删除任务
* todos_stats:获取统计信息
* todos_projects:获取项目列表

架构与配置

数据存储

数据存储在 $DSH_HOME/dsh-todos/todos.json。插件采用单文件 JSON 持久化,写入使用“临时文件 + rename”的原子操作,并在读坏时自动备份现场。

配置项

在配置文件中可以调整以下参数:
* weekGoal:每周目标
* remindEnabled:是否启用提醒
* dailyDigest:每日摘要

设计取舍

  • 零依赖:宿主半不依赖 @deepseek-ai/* 包,客户端半仅依赖平台冻结的 react。因此不需要构建工具链。
  • 提醒机制:不使用 agent.inject 循环调用模型,而是渲染到 shell.overlay。这避免了在无用户输入时模型自动发起一轮对话,同时让用户可以直接在浮层中操作任务。
  • 鉴权:路由鉴权委托给官方 connection。回环请求不再免鉴权,与官方 /api 保持一致,这比单纯校验 Host 更安全。
  • 客户端构建:客户端 bundle 手写,不使用 JSX。宿主 HMR 每 500ms 轮询 bundle 状态,修改 lib/client.js 可即时生效。

开发与测试

测试命令

运行插件自带的测试套件:

node test/quickadd.mjs      # 自然语言解析:26 例
node test/smoke.mjs         # 数据层 + 路由处理函数:25 例
node test/tools.mjs         # Agent 工具:19 例
node test/client-render.mjs # 客户端渲染测试:49 例
node scripts/preflight.mjs  # 发布前自检

开发注意事项

  • 客户端半支持热重载,宿主半修改需要重启 DSH。
  • 主题样式需引用真实存在的 token,否则会静默失效导致显示异常。
  • 修改 package.json 或包名后必须重启 DSH。

适用场景与注意

该插件适合需要在 DSH 环境中统一管理待办、并希望让 Agent 能够直接参与任务流转的开发者。由于插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。

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

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

小夜