前言¶
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 进程权限运行,安装前应检查源码与许可证。