前言¶
DeepSeek Harness (DSH) 的理念是“一切皆插件”,可以通过插件扩展工作流。Wayfinder 是一种任务管理概念,任务可能分散在 dex、Jira、GitHub Issues 或 Markdown 文件中。如果通过独立的 DSH 会话来处理这些任务,手动管理依赖关系和状态同步会变得困难。此插件旨在为每个就绪任务生成一个顶级 DSH 会话,并在聊天 GUI 中可视化依赖关系图。
插件概览¶
- 名称:
dsh-wayfinder-ui - 所有者:
andrepontesmelo - 类别:工作流
- 许可证:MIT
- 核心功能:为每个就绪的 Wayfinder 任务生成一个实时会话,并在聊天 GUI 中绘制依赖关系图。
安装与启用¶
该插件需要 Node.js >= 22 和 DSH 的 Web 配置文件。安装需要手动克隆并链接,然后重启 GUI。
- Clone 代码仓库
在任意位置克隆仓库:
git clone https://github.com/andrepontesmelo/dsh-wayfinder-ui.git
- 链接到 Web 配置文件
将克隆的目录链接到 DSH 的 Web profile:
ln -s /path/to/dsh-wayfinder-ui ~/.dsh/profiles/web/node_modules/dsh-wayfinder-ui
- 注册插件
打开~/.dsh/profiles/web/cordis.patch.yml,在文件末尾添加以下行以注册插件:
- insert:
- id: wayfinder
name: 'dsh-wayfinder-ui'
- 重启 GUI
保存配置后,必须重启 DeepSeek Harness GUI 以加载插件工具和地图面板。
核心功能¶
插件提供了一组可由模型调用的工具,用于管理 Wayfinder 任务的生命周期:
- wayfinder_snippet:打印协议,提议就绪的 Wayfinder 任务,请求用户批准,然后调用
wayfinder_spawn_session。它还记录了种子消息格式和路由继承规则。 - wayfinder_spawn_session:为每个就绪任务并行生成一个顶级 DSH 会话。种子消息包含任务定位器,以便工人找到其真实票据(例如 Jira、GitHub)。每个生成的会话继承调用者的工作区路由,但可以通过参数覆盖。
- wayfinder_map_create:将新地图验证并持久化到注册表中的
<root>/.wayfinder-runner/state.json,并将其设为所选打开的地图。 - wayfinder_task_resolve:标记任务完成(由工人报告的路径),并将报告会话的 ID 链接到任务行。
- wayfinder_task_set_status:手动覆盖任务状态(
todo|done|running|waiting|blocked)。建议优先使用wayfinder_task_resolve进行工人完成报告。 - wayfinder_map_sync:通过名称创建或替换地图,包含完整的任务列表。它还注册为恢复工具
/wayfinder-map-sync。 - wayfinder_grilling_start:报告一个“grilling”任务的会话已开始 grilling 批处理并等待用户。它在任务行上标记
grillingSince,并在面板中显示火焰图标。
工作原理¶
工作流程分为四个主要阶段:
- Chart(图表):调用
wayfinder_map_create以验证任务列表并持久化地图。 - Spawn(生成):调用
wayfinder_spawn_session为每个已批准的任务生成一个顶级会话。种子消息以/wayfinder开头,以便 Harness 注入技能内容。 - Report(报告):工人通过调用
wayfinder_task_resolve来报告完成。 - Derive & Restart(推导与重启):状态(
done、blocked、running、waiting)是根据报告和依赖关系推导出来的。重启 GUI 会重新加载状态文件并重新关联会话与其任务行。
注意事项¶
- 配置文件限制:插件仅适用于 Web 配置文件。地图卡片、右侧边栏和侧边栏徽章位于 DSH GUI 中。
- 会话目标:生成的会话的目标是注册表中的所选打开地图(
selectedMapId),如果未选择,则回退到最新打开的地图。 - 系统要求:需要 Node.js >= 22 和 DSH web profile。
- 重启要求:必须重启 GUI 才能加载工具和地图面板。
总结¶
该插件为 DSH 工作流提供了一个结构化的方式来管理 Wayfinder 任务。通过将任务映射到独立会话并在 GUI 中可视化进度,它简化了跨多个追踪源的任务管理。